小白学Python数据分析之降维

[编者按] Python是大数据分析的常用技术之一,用Python进行数据分析的众多优势使得越来越多的人开始走上Python数据分析之路。后台也常常有读者来信,希望我们分享关于Python数据分析的知识。从本期开始,我们推出“小白学Python数据分析”专栏,本专栏邀请到一位Python数据分析的初学者小白,记录他学习Python数据分析的历程。大家可以和小白一起学习,并完成每期专栏中的实例,就可以掌握Python数据分析的常用方法和技术。教材方面,我们参考的是王宏志老师编著的《大数据分析原理与实践》。由于小白也在学习过程中,所以文中难免会有认识和理解不当之处,欢迎大家批评指正,更欢迎大家通过后台留言与我们进行讨论交流,大家共同向Python数据分析高手的目标前进!

有时候我们会遇到很大规模的数据,直接对这些数据进行处理会非常麻烦,所以要先对数据进行缩减,这就是降维。降维的目的之一是减少数据的数目;目的之二是减少描述数据的属性。接下来我们将围绕降维介绍如下内容:

特征工程的概念

如何进行特征变换

如何进行特征选择

利用随机森林法则进行特征重要性评估

实现主成分分析

1.特征工程

优质的特征可以在使用不是最优的模型参数的情况下得到不错的预测结果,这样用户就不必费力去选择最适合的模型和最优的参数了。特征工程的目的就是获取优质特征从而有效地支持大数据分析,其定义是将原始数据转化为特征,更好表示预测模型处理的实际问题,提升对于未知数据的准确性。特征工程包含特征重要性评估、特征提取、特征选择、特征构建、特征学习几个方面的问题。

2. 特征变换

2.1 定义

特征变换,从统计的观点来看,就是减少变量之间的相关性,用少数新的变量尽可能反映样本的信息。从这个角度来看,特征变换包括主成分分析 PCA、因子分析 FA和独立成分分析ICA。而从几何的观点来看,特征变换指通过变换到新的表达空间,使得数据可分性更好。从这个角度看来,特征分析包括线性判别分析 LDA 和核方法等。

2.2 案例学习

我们先来看看一些简单的特征变换实现方法吧~

考虑如下数据,最后一列表示用户的评价,前几列表示酒的各项成分数据

导入数据:

针对“proline”列,进行特征标准化与归一化,这里对数据进行z-score标准化。

标准化后前五个数据如下:

我们也可以进行特征尺度变换。尺度变换有五种选项:log2,log10,ln,abs以及 sqrt,我们利用 ln方法进行举例。

3. 特征选择

3.1 定义

特征选择是指选择获得相应模型和算法最好性能的特征集。特征选择有很多不同的方法,比如计算相关性、应用随机森林等。在介绍机器学习的书里一般找不到关于特征选择的内容,因为特征选择要解决的问题往往被视为机器学习的一种副作用,一般不会单独拿出来讨论。所以这里就依据案例简单了解一下特征选择的实现方法。

3.2 案例

我们拥有一个病房里十名病人的数据,包括特征 id、病症特征 f1和 f2,以及是否能够出院特征 f3。

先导入数据。

1)偏好计算

偏好计算是计算 a特征某类别下另一特征 b的类别分布情况。选取 f2作为 a特征,f1作为b特征进行数据偏好计算,即求 x与 y类别下 a、b和 c的数据分布情况。由于没有找到相应的包,可以通过以下函数间接地得知分布情况。

2)过滤式特征选择

过滤式特征选择与目标变量相关性较强的特征,但缺点是忽略了特征之间的关联性。以lasso法为例,代码中把字符类数据变换为了数值型数据。

4. 特征重要性评估

4.1 定义

特征提取的一种重要方法就是对特征的重要性进行评估,以便基于其重要性选择恰当的特征。特征选择方法中,有一种方法是利用随机森林进行特征的重要性度量,选择重要性较高的特征。

4.2 随机森林原理

随机森林的算法可以用如下几个步骤概括:

1.用有抽样放回的方法(bootstrap)从样本集中选取n个样本作为一个训练集。

2.用抽样得到的样本集生成一棵决策树。在生成的每一个结点:

随机不重复地选择d个特征

利用这d个特征分别对样本集进行划分,找到最佳的划分特征(可用基尼系数、增益率或者信息增益判别)。

3.重复步骤1到步骤2共k次,k即为随机森林中决策树的个数。

4.用训练得到的随机森林对测试样本进行预测,并用票选法决定预测的结果。

4.3 案例

我们用第一个案例的酒水数据来实现相关算法。

先拆分数据集为训练集和测试集,构造随机森林分类器。

分别用列表和图表形式展示重要性。

基于GBDT的重要性评估与随机森林类似,只是构造分类器的部分有所不同,小伙伴们可以自己试着探索一下哦。

5.主成分分析(PCA)

PCA的思想是将 n维特征映射到k维上(k

依然使用酒水的数据,先对数据进行标准化与归一化。

使用PCA算法,这里我们给定了降维后的特征数为2。

得到新的两个特征前五个如下。注意PCA降维后,我们无法对产生的特征做合理的描述,只能说这些特征是原始数据在某个超平面上的投影结果,最大限度地保留了原始数据的信息,又降低了特征维数。

由于刚好采用了两个维度的特征,所以可以试着作图来直观地观察实验结果。

“大数据与数据科学家”公众号

主编:王宏志

特邀副主编:朱劼

副主编:丁小欧

责任编辑:齐志鑫,宋扬,王雨茁、魏龑,张荣恩

编辑: 陶颖安

-精彩内容,记得分享到朋友圈-

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180813G1UTIX00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券