您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關怎么使用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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。