楼主: 时光人
1160 3

[网帖精选] python机器学习: 监督学习回顾无监督学习预处理 [推广有奖]

  • 3关注
  • 34粉丝

院士

23%

还不是VIP/贵宾

-

威望
1
论坛币
26907 个
通用积分
428.9260
学术水平
95 点
热心指数
109 点
信用等级
91 点
经验
39960 点
帖子
1629
精华
3
在线时间
579 小时
注册时间
2019-2-25
最后登录
2023-4-26

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

CDA网校:数据科学、人工智能从业者的在线大学。

数据科学(Python/R/Julia)数据分析、机器学习、深度学习

在学习无监督预处理之前我们先对前面学过的监督学习进行回顾。对于监督学习而言,我们主要讨论了一些列分类和回归的机器学习模型,以及各自的应用范围、优缺点等,我们现在来简单回归下:

最近邻(K近邻算法):适用于小型数据,是很好的基准模型且容易理解。

线性模型:非常可靠的首选算法,适用于非常大的数据集,也适用于高维数据。

朴素贝叶斯:只适用于分类问题。比线性模型速度快,适用于非常大的数据和高维数据。但是精度一般要低于线性模型。

决策树:速度快切不需要进行数据缩放,可以可视化,易于理解。

随机森林:几乎总是比单棵决策树的表现好,鲁棒性不错,同时也不需要进行数据缩放,不过不适用于高危稀疏矩阵。

梯度提升决策树:精度通常比随机森林要高,与随机森林相比,训练速度慢但是预测速度快、需要的内存也较小。但是比随机森林需要更多的参数调节。

支持向量机:对于特征含义相似的中等大小的数据集很强大。但是需要对数据进行缩放且对参数敏感。

神经网络:可以构建非常复杂的模型,特别是对于大型数据集而言。对数据缩放和对参数选择敏感,大型网络需要很长的训练时间。

我们在使用的时候,对于新数据而言,一般最好从简单的模型开始,如线性模型、朴素贝叶斯或K近邻费雷器,看能得到什么效果。在对数据集有了进一步的了解之后,可以考虑用于构建更为复杂的模型,如随机森林、梯度提升机等。

无监督学习:无监督学习包含了没有已知输出、没有老师指导的各种机器学习。在无监督学习中,学习算法只有输入数据,并需要在这些数据中提取知识,是人工智能的高端表现。

无监督学习的类型:本章我们主要介绍的无监督学习主要是两类,数据变换与聚类

数据集的无监督变换:是创建数据新的表示的算法,与其原始数据相比,新的表示可能更容易被人或机器学习理解。无监督变换的一个常见的应用是降维,他接受包含许多特征的数据的高维表示,并找到表示该数据的一种新方法。用较少的特征就可以概括其重要性。常见的方法是将数据可视化并将数据降为二维。

聚类算法:聚类算法是数据划分为不同的组,每个组包含相似的物项(相当于将类别相似的放到了一起)。

无监督学习的挑战:无监督学习算法的一个主要挑战是评估算法是否学到了有用的东西。无监督学习算法一般用于不包含任何标签信息的数据,所以我们不知道正确的输出应该是什么!因此很难判断一个模型的表现如何。通常来说,评估无监督算法结果的唯一方法就是人工检查。

预处理与缩放:前面我们提到,一些算法(如神经网络和SVM)对数据缩放非常敏感。因此,通常我们的做法是对特征进行调节,使得数据表示更加适合于这些算法。通常来说,这是对数据的一种简单的按照特征进行缩放和移动。如下代码给出一个简单的例子:

mglearn.plots.plot_scaling

运行后结果表示如下:

对数据缩放和预处理的各种方法

上述运行结果中:第一张图显示的是一个模拟的有两个特征的二分类数据集。第一个特征位于10-15之间,第二个特征位于1-9之间。另外的四张图显示了4种数据变换方法,都生成了更加标准的范围。scikit-learn中standardscaler确保了每个特征的平均值为0,方差为1。使得所有特征处于同一数量级。但是这种缩放不能保证特征任何特定的最大或最小值。robusscaler的工作原理与standardscaler类似,确保,每个特征的通技术型都位于同一范围。但是使用的是中位数和四分位数(对于一组数据来说,中位数指的是这样的x,有一半值小于x,另一半值大于x。较小四分位数表示的是这样的数值x,有1/4的数值小于x。较大四分位数指的是这样的数值有1/4数值大于x)。这样RobustScaler会忽略与其他店有很大不同的数据点(比如测量误差)。这些不同的数据点也叫异常值。可能会给其他缩放方法造成麻烦。

与之相反,MinMaxScaler移动数据,是所有特征刚好位于0-1之间。对于二维数据集来说,所有的数据都包含到x轴0-1与y轴0-1组成的矩阵中。

最后的Normalizer用到一种完全不同的缩放方法。它对每个数据点进行缩放,使得特征向量的欧式长度等于1.也就是说,他将一个数据点投射到半径为1的圆上,每个数据点的投放比例都不相同(乘以其长度的倒数)。如果只有数据的方向(或角度)是重要的,而与向量长度无关或关系很小,那么通常会使用该方法进行归一化。


关注“AIU人工智能”公众号,回复“白皮书”获取数据分析、大数据、人工智能行业白皮书及更多精选学习资料!


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:python 机器学习 预处理 scikit-learn standards

沙发
jinlu310 在职认证  发表于 2019-10-15 10:33:29 |只看作者 |坛友微信交流群
感谢

使用道具

藤椅
逐梦的太阳 在职认证  发表于 2019-10-15 10:38:56 |只看作者 |坛友微信交流群

使用道具

板凳
水墨观澜 发表于 2019-11-2 05:36:04 |只看作者 |坛友微信交流群

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-20 02:36