為什麼特徵相關性非常的重要?

2021-02-20 小小挖掘機

作者:Will Badr

編譯:ronghuaiyang

鸛會接生孩子嗎?雖然它已經在相關性和因果關係的背景下得到了理論上的證明,但本文探討了相關性以及它與因果關係的不同之處。

器學習模型的好壞取決於你所擁有的數據。這就是為什麼數據科學家可以花費數小時對數據進行預處理和清理。他們只選擇對結果模型的質量貢獻最大的特徵。這個過程稱為「特徵選擇」。特徵選擇是選擇能夠使預測變量更加準確的屬性,或者剔除那些不相關的、會降低模型精度和質量的屬性的過程。

數據與特徵相關被認為是數據預處理中特徵選擇階段的一個重要步驟,尤其是當特徵的數據類型是連續的。那麼,什麼是數據相關性呢?

數據相關性:是一種理解數據集中多個變量和屬性之間關係的方法。使用相關性,你可以得到一些見解,如:

那麼,相關性為什麼有用?

讓我們更仔細地看看這意味著什麼,以及相關性是如何有用的。相關性有三種類型:

正相關:表示如果feature A增加,feature B也增加;如果feature A減少,feature B也減少。這兩個特徵是同步的,它們之間存在線性關係。

負相關(左)正相關(右)

負相關:表示如果feature A增加,feature B減少,反之亦然。

無相關性:這兩個屬性之間沒有關係。

這些相關類型中的每一種都存在於由0到1的值表示的頻譜中,其中微弱或高度正相關的特徵可以是0.5或0.7。如果存在強而完全的正相關,則用0.9或1的相關分值表示結果。

如果存在很強的負相關關係,則表示為-1。

如果你的數據集具有完全正或負的屬性,那麼模型的性能很可能會受到一個稱為「多重共線性」的問題的影響。多重共線性發生在多元回歸模型中的一個預測變量可以由其他預測變量線性預測,且預測精度較高。這可能導致歪曲或誤導的結果。幸運的是,決策樹和提升樹算法天生不受多重共線性的影響。當它們決定分裂時,樹只會選擇一個完全相關的特徵。然而,其他算法,如邏輯回歸或線性回歸,也不能避免這個問題,你應該在訓練模型之前修復它。

我該如何處理這個問題?

有多種方法來處理這個問題。最簡單的方法是刪除完全相關的特性。另一種方法是使用降維算法,比如PCA。

Spearman VS Pearson相關矩陣:

Spearman和Pearson是計算兩個變量或屬性之間相關性強弱的兩種統計方法。Pearson相關係數可用於線性關係的連續變量。舉個例子:

from scipy.stats import pearsonr

import matplotlib.pyplot as plt

#Create two random variable

X = [1,2,3,4,5,6,7,8,9,10,11,12,13]

Y = [7,8,8,11,10,11,12,15,20,14,16,15,19]

#plot the variables to show linearity

plt.scatter(X,Y)

plt.show()

上面代碼的輸出

要列印Pearson係數評分,只需運行 pearsonr(X,Y),結果為: (0.88763627518577326,5.1347242986713319e-05),其中第一個值為Pearson相關係數,第二個值為p值。0.8表示變量呈高度正相關。

如果變量之間存在非線性關係,則可以使用Spearman 相關係數來度量相關性。也可以與ordinal categorical variables一起使用。可以通過運行 scipy.stats.spearmanr(X,Y)來獲得Spearman係數得分。

這聽起來可能很複雜特別是對於高維數據集。在這種情況下,最好在矩陣中可視化相關關係。下面是如何使用panda實現這一點,我使用的是Porto Seguro的Kaggle安全駕駛預測數據集:

import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

import seaborn as sns

train = read_csv("./train.csv")

def correlation_heatmap(train):

correlations = train.corr()

fig, ax = plt.subplots(figsize=(10,10))

sns.heatmap(correlations, vmax=1.0, center=0, fmt='.2f',

square=True, linewidths=.5, annot=True, cbar_kws={"shrink": .70})

plt.show();

correlation_heatmap(train)

從上面的矩陣中可以看出,psreg03和psreg02變量之間以及pscar12和pscar13之間具有很高的相關性。

還有一種很流行的方法叫做Kendall’s Tau係數,它也是基於可變等級的,但與Spearman係數不同,它沒有考慮等級之間的差異。由於本文的重點是Pearson和Spearman的相關性,所以Kendall方法不在本文的研究範圍之內。

誤解(鸛會接生孩子嗎?):

相關性經常被解釋為因果關係,這是一個很大的誤解。變量之間的相關性並不表示因果關係。任何高度相關的變量都應該仔細檢查和考慮。這是一篇(幽默的)德語文章,它使用相關性來證明嬰兒是由鸛來接生的理論。研究表明,城市周邊鸛類數量的增加與城市醫院外接生數量的增加之間存在顯著的相關性。

左邊的圖表顯示鸛的數量增加(粗體黑線),醫院分娩的數量減少。另一方面,右邊的圖表顯示,醫院外分娩的數量(白色方塊標記)遵循鸛數量增加的模式。雖然這項研究並不是為了科學地證明(嬰兒鸛理論),但它表明,通過高相關性,一種關係可能看起來是因果關係。這可能是由於一些未觀察到的變量。例如,人口增長可以是另一個因果變量。

總之:相關性在許多應用中都非常有用,尤其是在進行回歸分析時。然而,它不應與因果關係混在一起,並以任何方式被誤解。你還是應該始終檢查數據集中不同變量之間的相關性,並在探索和分析過程中收集一些見解

英文原文:https://towardsdatascience.com/why-feature-correlation-matters-a-lot-847e8ba439c4

推薦閱讀:

我在美團的這兩年,想和你分享

通俗易懂!使用Excel和TF實現Transformer!

帶答案分享-算法面試中的趣味題目

我的推薦系統入門經驗~(文末有福利)

【通俗易懂】手把手帶你實現DeepFM!

相關焦點

  • 使用Seaborn和Pandas進行相關性分析和可視化
    要想了解這些故事的展開,最好的方法就是從檢查變量之間的相關性開始。在研究數據集時,我首先執行的任務之一是查看哪些變量具有相關性。這讓我更好地理解我正在使用的數據。這也是培養對數據的興趣和建立一些初始問題來嘗試回答的好方法。簡單地說,相關性是非常重要的。Python的最大好處就庫多,有很多庫已經為我們提供了快速有效地查看相關性所需的工具。
  • 使用Seaborn和Pandas進行相關性檢查
    作為一個很好的開始,可以檢查變量之間的相關性。研究數據集以查看哪些變量具有相關性時,這是我首先執行的任務之一。這使我更好地了解我正在處理的數據。這也是培養對數據的興趣並建立一些初步問題以嘗試回答的好方法。
  • 為什麼有相關性的事物不一定有因果性?
    但相關性和因果性是兩個不同的概念,換句話說,如果兩個事物之間有因果關係,那麼它們必然具有相關性;但如果兩個事物之間具有相關性,它們不一定具有因果關係。因此,這個例子闡述了一個道理,因果關係是相關性的必要條件,但不是充分條件。而要證明麥克喝水與加州火災沒有因果關係,只需要控制溫度,然後增加麥克喝水量,同時觀察他的每天尿液量和加州火災的變化。事實上,無論麥克喝多少水,都不會導致加州火災的變化。
  • 智商可能沒有你認為的那麼重要:與成就相關性並不大
    不過,特曼隨後想到了一個絕妙的主意:為什麼不研究量表中得分最高的那些孩子呢?更進一步,為什麼不追蹤這些孩子進入青春期和成年之後的情況呢?這些在智力上有天賦的孩子長大後會成為天才嗎?特曼讓數百名學齡兒童參加了他新制定的智商測試。顯然,他並不想要過於龐大的樣本數量,因為追蹤他們的智力發展並不現實。人口中前2%的人群規模顯然比前1%大了一倍,而且,挑選不夠嚴格的人群可能更不容易成為天才。
  • 深入探討:為什麼要做特徵歸一化/標準化?
    文 | shine-lee源 | CSDN本文解讀了一項數據預處理中的重要技術——特徵歸一化,提出並解答了5個相關問題,同時分析了相關方法和適用場景。在問為什麼前,先看是什麼。從幾何上觀察上述方法的作用,圖片來自CS231n-Neural Networks Part 2: Setting up the Data and the Loss,zero-mean將數據集平移到原點,unit-variance使每維特徵上的跨度相當,圖中可以明顯看出兩維特徵間存在線性相關性,Standardization操作並沒有消除這種相關性
  • 解讀:為什麼要做特徵歸一化/標準化?
    本文解讀了一項數據預處理中的重要技術——特徵歸一化,提出並解答了5個相關問題,同時分析了相關方法和適用場景。
  • 比特幣與標準普爾500指數高相關性並不是壞事,分析師這樣解釋
    在3月和4月,BTC和標準普爾500指數的交易關聯度非常高。每當股市反彈時,比特幣也會反彈,其價格走勢以一種詭異的方式相關聯。許多人認為這種情況是悲觀的,因為事實證明,比特幣的與傳統市場獨特的「不相關」特徵被證明是錯誤的。從另一個角度看,這種相關性實際上也可能是一件好事。這是為什麼。
  • 重複性、相關性和GRR難嗎?
    質量是企業在市場競爭中生存和發展的重要因素,而競爭離開不產品質量的競爭,如何保證過硬的產品質量?無疑是檢測設備或儀器的精度要高,如何保證設備或儀器的精度,那麼下面來看一下幾個影響設備或儀器精度的關鍵因素。
  • 相關矩陣、特徵、預測、股市!
    這些特徵旨在捕捉相關矩陣的幾個重要屬性:相關性(例如相關係數平均值、第一特徵值)有多強。相關性的多樣性(例如,相關係數std,第一特徵向量std)。相關性結構的層次結構如何(例如,同態相關)。系統的複雜程度和互聯程度(例如,MST中心度分位數和平均最短路徑長度)。我們保存特徵以供未來使用。
  • 代碼類似的代幣價格存在相關性嗎?
    為什麼?這可能僅僅是因為投資者搞混了它與流行視頻會議軟體 Zoom ( $ZM )的代碼,雖然它們其實沒有任何關係。甚至連證券監管委員會都已經注意到這一點,並且為了保護投資者而暫停了 $ZOOM 的交易。如此一來,我們不由會感到好奇,有時候,加密投資者會不會搞混那些代碼類似的代幣。
  • R-相關性分析
    相關偏相關相關關係可視化第一部分: 相關性分析方法選擇相關分析是研究兩種或兩種以上隨機變量之間的關係的一種統計學方法,可以分析變量間的關係情況以及關係強弱程度等,如身高和體重之間的相關性。對於不同類型的變量,需選擇合適的相關性分析方法,我們常用的相關性分析方法及適用條件如下:1.1 Pearson相關係數最常用,又稱積差相關係數,適用於連續變量之間的相關性分析;使用條件:變量都需符合正態分布1.2 Spearman秩相關係數  適合含有有序分類變量或者全部是有序分類變量的相關性分析;但其屬於非參數方法,檢驗效能較Pearson係數低1.3 無序分類變量的相關性
  • 特徵選擇介紹及4種基於過濾器的方法來選擇相關特徵
    特徵選擇是面試中一個非常受歡迎的問題。 這篇文章能帶你了解這方面相關的知識。 為什麼要使用特徵選擇 你熟悉鳶尾花的數據集嗎?
  • 專業解讀:為什麼要做特徵歸一化和標準化?
    本文解讀了一項數據預處理中的重要技術——特徵歸一化,提出並解答了5個相關問題,同時分析了相關方法和適用場景。
  • 2018考研數學:矩陣特徵向量的無關性和正交性
    矩陣的特徵值和特徵向量,是考研數學中線性代數部分的最重要知識點之一,也是最重要的考點之一,屬於每年必考的內容,同學們除了需要掌握特徵值和特徵向量的基本計算方法外,還需要理解特徵值和特徵向量的基本性質,包括特徵向量的線性相關性和正交性。
  • 2017考研數學:向量組相關性概念和幾何意義分析
    在考研數學中,向量組的線性相關性是線性代數的一個基本概念和基本考點,幾乎每年都會涉及到,下面本文對向量組的線性相關性的概念及其幾何意義做些分析,供大家複習2017考研數學時參考。   一、線性相關性的概念
  • 說說各類資產之間的相關性
    來源:中歐基金分散投資是降低風險的重要方法,而能否真正實現風險分散的關鍵是投資標的相關性如何。相關性越低,風險分散的效果越好。投資標的相關性是指兩個投資標的在某個區間內漲跌相似性,如果二者同漲同跌,表示它們高度相關,二者漲跌越不同步,表示相關性越低。
  • 相關性熱圖還能玩出什麼花樣?
    關於相關性,表示數據之間的相互依賴關係,但需要注意,數據具有相關性不一定意味著具有因果關係。
  • 用Excel做相關性分析
    相關性分析:對變量之間相關關係的分析,即相關性分析。其中比較常用的是線性相關分析,用來衡量它的指標是線性相關係數,又叫皮爾遜相關係數,通常用r表示,取值範圍是[-1,1],四、為什麼要做相關分析1、簡單的相關性分析——如QC做相關性分析,首先,很明顯的一點是,了解兩個或幾個變量之間的關係,在做QC(質量管理)的時候,在要因確認這一項中會用到相關性分析,我們想要知道我們分析出來的末端因素和目標值之間有無相關關係,從而判斷該末端因素對癥結的影響程度。
  • 相關性 ≠ 因果性
    相關性 ≠ 因果性即便是假設常吃海參的組平均智商真的更高,並且調查對象人數真的多到了具有統計意義,「專家」的聲明仍然有一個致命的邏輯缺陷:相關性並不代表因果性!這是一個經常被人混淆,也經常被一些團體故意混淆已達到他們自己的目的。兩個變量A和B具有相關性,其原因是有很多種的,並非只有A→B或者B→A這樣的因果關係。
  • 觀點 | 三大特徵選擇策略,有效提升你的機器學習水準
    「輸入垃圾數據,輸出垃圾結果」——每個機器學習工程師什麼是特徵選擇?面對試圖解決的實際問題之時,什麼特徵將幫助你建模並不總是很清晰。伴隨這一問題的還有大量數據問題,它們有時是多餘的,或者不甚相關。特徵選擇是這樣一個研究領域,它試圖通過算法完成重要特徵的選取。為什麼不把全部特徵直接丟進機器學習模型呢?