1. 项目简介
在此项目中,我们会将 k-均值聚类应用于安然财务数据。当然,我们最终的目标是识别相关人员;既然我们有了已标记数据,调用 k-均值聚类这种非监督式方法就不成问题。
尽管如此,在此项目中,你仍然会获得 k-均值的一些实际操作经验并尝试特征缩放,这会让你预先了解下一课的材料。
可在此处找到安然数据集。
2. 聚类特征
可以在 k_means/k_means_cluster.py 中找到初始代码,该代码会读入电子邮件 + 财务 (E+F) 数据集,让我们为聚类做好准备。首先你将基于两个财务特征开始执行 K-means,请查看代码并确定代码使用哪些特征进行聚类。
运行代码,这将创建数据的散点图。仔细思考如果创建两个聚类,你预期会产生哪两个聚类。
答:salary,exercised_stock_options
3. 部署聚类
在 financial_features 数据上部署 k-均值聚类,并将 2 个聚类指定为参数。将聚类预测存储到名为 pred 的列表,以便脚本底部的 Draw() 命令正常工作。在弹出的散点图中,聚类是否是你预期的?
4. 使用 3 个特征聚类
向特征列表(features_list)中添加第三个特征:“total_payments”。现在使用 3 个,而不是 2 个输入特征重新运行聚类(很明显,我们仍然可以只显示原来的 2 个维度)。将聚类绘图与使用 2 个输入特征获取的绘图进行比较。是否有任何点切换群集?多少个点?这种使用 3 个牲的新聚类无法通过肉眼加以猜测——必须通过 k-均值算法才能识别它。
(你需要更改创建散点图的代码,以便容纳 3 个特征而不是 2 个,有关操作说明,请参阅初始代码中的注释。)
5. 股票期权范围
在下一课中,我们将讨论特征缩放。它是一种特征预处理,应在执行某些分类和回归任务之前执行。这里只是快速预览,概述特征缩放的功能。
本例中使用的“exercised_stock_options”特征取的最大值和最小值是什么?
(注意:如果查看 finance_features,会发现有些“NaN”值已被清理并被零值取代——因此尽管那些值可能看起来像是最小值,但却具有欺骗性,因此它们更像是你不具有其相关信息而必须填入一个数字的点。对于此问题,请返回 data_dict 并查找显示的最大值和最小值,忽略所有“NaN”条目。)
6. 薪酬范围
“salary”取的最大值和最小值是什么?
(注意:与上一个测试题中的注意事项相同。如果查看 finance_features,会发现有些“NaN”值已被清理并被零值取代——因此尽管那些值可能看起来像是最小值,但却具有欺骗性,因此它们更像是你不具有其相关信息而必须填入一个数字的点。对于此问题,请返回 data_dict 并查找显示的最大值和最小值,忽略所有“NaN”条目。)
7. 聚类更改
下一张幻灯片上的绘图会显示你刚刚编写的聚类代码,但在本例中,我们在执行聚类之前应用了特征缩放。
我们希望你将(下一张幻灯片上)使用缩放的聚类与在聚类算法中使用*两个特征时生成的第一个聚类可视化效果进行比较。
请注意,特征范围现在已更改为 [0.0, 1.0]。这是我们所做的唯一更改。
在下一课中,你将详细了解特征缩放的含义,但现在,只需查看对聚类产生的影响–哪个/哪些点会切换它们关联的聚类?
8. 源码分享
https://github.com/voidking/ud120-projects
9. 书签
机器学习入门
https://cn.udacity.com/course/intro-to-machine-learning--ud120