掘金 人工智能 前天 10:12
机器学习入门(七)PCA
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文介绍了PCA降维算法,用于解决高维数据带来的问题,如多重共线性、数据稀疏性和计算量激增等。PCA通过保留重要特征、去除冗余特征来降低数据维度。文章详细阐述了PCA的原理,强调其最小化的是投射误差,而非像线性回归那样预测结果。此外,文章还提供了使用sklearn库进行PCA降维的Python代码示例,包括数据标准化、方差比例可视化以及降维后的数据可视化,展示了PCA在实际应用中的效果。

📊高维数据问题:维度过高导致多重共线性、数据稀疏、模型难以查找特征、变量间关系被忽略以及计算量激增等问题,因此需要降维。

💡PCA降维原理:PCA旨在找到一个方向向量,将数据投射到该向量上,并最小化投射平均均方误差。PCA与线性回归不同,PCA最小化投射误差,不作预测。

⚙️Sklearn实践:通过`sklearn.preprocessing.StandardScaler`进行数据标准化,使用`sklearn.decomposition.PCA`进行降维,并可视化各主成分的方差比例,选择保留方差比例较高的主成分。

在之前的文章中,我们做了很多示例,比如房价预测、鸢尾花分类等。这些示例的训练模型的维度都不高,但是在实际运用中,模型的维度一般都在 100 以上,有的甚至达到了亿级。

像这种高维的模型会带来很多的问题,比如

因此我们需要数据进行降维操作。

降维

降维是指通过保留一些比较重要的特征,去除一些冗余的特征,减少数据特征的维度。

常用的降维算法有:PCA(主成分分析)、LDA(线性判别分析)、MDS(多维尺度变换)等。这里将介绍如何使用 PCA 来进行数据的降维。

在PCA中,我们要做的是找到一个方向向量(Vector direction),当我们把所有的数据都投射到该向量上时,我们希望投射平均均方误差能尽可能地小。

需要注意:主成分分析与线性回归是两种不同的算法。主成分分析最小化的是投射误差(Projected Error),而线性回归尝试的是最小化预测误差。线性回归的目的是预测结果,而主成分分析 不作任何预测。下图是线性回归的计算示意图,可以看到两者是不同的。

使用 PCA 降维

我们可以使用 sklearn 库来实现 PCA 降维,代码示例如下:

# 数据标准化处理,让新的数据均值是0,标准差是1from sklearn.preprocessing import StandardScalerx_norm = StandardScaler().fit_transform(x)# 进行与原数据等维度的PCA,查看各主成分的方差比例from sklearn.decomposition import PCApca = PCA(n_components=4)x_pca = pca.fit_transform(x_norm)var_ratia = pca.explained_variance_ratio_# 可视化方差比例fig2 = plt.figure(figsize=(20,5))plt.bar([1, 2, 3, 4], var_ratia)plt.xticks([1, 2, 3, 4], ['PC1', 'PC2', 'PC3', 'PC4'])plt.ylabel('variance ratio of each PC')plt.show()

效果如下图所示

从图中可以看到后面的数据相关程度比较低,只保留前面的两项就可以了。代码示例如下:

pca = PCA(n_components=2)x_pca = pca.fit_transform(x_norm)# 可视化数据fig3 = plt.figure(figsize=(10, 10))setosa=plt.scatter(x_pca[:, 0][y==0], x_pca[:, 1][y==0])versicolor=plt.scatter(x_pca[:, 0][y==1], x_pca[:, 1][y==1])virginica=plt.scatter(x_pca[:, 0][y==2], x_pca[:, 1][y==2])plt.legend((setosa, versicolor, virginica), ('setosa', 'versicolor', 'virginica'))plt.show()

把数据降维到二维(之前是四维)后,我们就可以可视化数据了,如下图所示:

同时也可以拿 PCA 处理后的 x_pca 数据来训练模型。

参考

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

PCA 降维 数据分析 机器学习 Sklearn
相关文章