本篇文章给大家分享的是有关怎么使用PCA去除数据集中的多重共线性,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
多重共线性是指自变量彼此相关的一种情况。当你拟合模型并解释结果时,多重共线性可能会导致问题。数据集的变量应该是相互独立的,以避免出现多重共线性问题。
多重共线性高度影响与问题相关的方差,也会影响模型的解释,因为它削弱了自变量的统计显著性。
对于一个数据集,如果一些自变量彼此高度独立,就会导致多重共线性。任何一个特征的微小变化都可能在很大程度上影响模型的性能。换句话说,模型的系数对自变量的微小变化非常敏感。
要处理或去除数据集中的多重共线性,首先需要确认数据集中是否具有多重共线性。有各种各样的技术来发现数据中存在多重共线性,其中一些是:
得到非常高的回归系数的标准误差
整体模型显著,但系数均不显著
在添加预测因子时,系数有很大变化
高方差膨胀因子(VIF)和低容错
以上是一些在数据中发现多重共线性的技术或技巧。
在这篇文章中,我们将看到如何使用相关矩阵和主成分分析来发现数据中的多重共线性,并使用主成分分析来去除它。基本思想是对所有的预测器运行一个主成分分析。如果存在多重共线性,它们的比率(条件指数)将会很高。
数据
为了进一步分析,使用的数据集是从Kaggle下载的Diamonds数据集。这个经典数据集包含近54000颗钻石的价格(目标变量)和其他9个自变量。
数据集预处理
数据集有9个独立的特征和' price '是目标类标签。在进行统计相关性分析之前,我们需要对分类变量进行编码,如“cut”、“color”和“clarity”。
相关性分析
要找到数据集中所有变量之间的person相关系数:
data.corr(method='pearson')Method of correlation:
* pearson (default)
* kendall
* spearman
从上面的相关热图,我们可以观察到自变量:' x ', ' y ', ' z ', '克拉'之间高度相关(人系数> 0.9),从而得出数据中存在多重共线性的结论。
我们也可以删除一些高度相关的特征,去除数据中的多重共线性,但这可能会导致信息的丢失,对于高维数据也是不可行的技术。但是可以使用PCA算法来降低数据的维数,从而去除低方差的变量。
主成分分析(PCA)是数据科学中常用的特征提取技术,它利用矩阵分解将数据降维到更低的空间。
为了使用主成分分析技术从数据集中提取特征,首先我们需要找到当维数下降时解释的方差百分比。
符号,λ:特征值d:原始数据集的维数k:新特征空间的维数
从上图,np.cumsum(PCA .explained_variance_ratio_),第一主成分分析获得的数据总方差为0.46,对于前两主成分分析为0.62,前6主成分分析为0.986。
对于捕获的个体方差,第1个PCA捕获的数据方差为4.21,第2个PCA捕获的数据方差为1.41,第3个PCA捕获的数据方差为1.22,最后一个PCA捕获的数据方差为0.0156。
由于总方差的98.6%是由前6个主成分分析本身捕获的,我们只取6个主成分分析的组成部分,并计算一个相关热图来克服多重共线性。
从上面的相关热图可以看出,现在没有一个自变量是不相关的。
我们可以观察到自变量“x”,“y”,“z”,“克拉”之间高度相关(person系数> 0.9),从而得出数据中存在多重共线性的结论。
因此,利用主成分分析对数据进行降维,可以使数据的方差保持98.6%,并消除数据的多重共线性。
以上就是怎么使用PCA去除数据集中的多重共线性,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。