在表格數據集上創建任何機器學習模型之前, 通常我們會檢查獨立變量和目標變量之間是否存在關系。這可以通過測量兩個變量之間的相關性來實現。在 python 中, pandas 提供了一個函數 dataframe.corr() ,僅用于查找數字變量之間的相關性。

在本文中, 我們將了解如何找到分類變量和連續變量之間的相關性。

案例 1: 當獨立變量只有兩個值時

點雙性關聯

如果分類變量只有兩個值 (即 true/false), 則我們可以將其轉換為數字數據類型 (0 和 1)。由于它成為一個數值變量, 我們可以使用該函數找出相關 dataframe.corr()

讓我們創建一個數據框架, 它將由兩列組成: “員工類型 (空類型) ” 和“工資“。

有希望, 我們將分配更多的工資給 Empip1。這樣我們就會得到 “空型” 和 “工資” 之間的相關性。

創建具有以下屬性的數據框:

  • 平均 (平均) 工資為 EmpType1 60, 標準差為5。

  • 平均 (平均) 工資為 EmpType2 50, 標準差為5。

import pandas as pd
import numpy as np

num1=np.random.normal(loc=60,scale=5,size=100)
df1=pd.DataFrame(num1,columns=['Salary'])
df1['Type']='EmpType1'

num2=np.random.normal(loc=50,scale=5,size=100)
df2=pd.DataFrame(num2,columns=['Salary'])
df2['Type']='EmpType2'


df=pd.concat([df1,df2],axis=0)
# Since Categorical variable 'Type' has only 2 values we will convert it into numeric (0 and 1) datatype.

df['TypeInt']=(df['Type']=='EmpType1').astype(int)
df.corr()

輸出

工資 類型
工資 1 0.736262
類型 0.736262 1

“空” 和 “工資” 之間的相關性為0.7。所以我們可以確定它是相關的。

案例 2: 當獨立變量具有兩個以上值時

方差分析 (方差分析)

我們將分配更多的工資 EmpType1 , 分配給 EmpType2 平均工資, 分配給 EmpType3 低薪。這樣, 我們就會得到 “空型” 和 “工資” 之間的一些相關性。

  • 平均工資為 EmpType1 90, 標準差為5。

  • 平均工資為 EmpType2 70, 標準差為5。

  • 平均工資為 EmpType3 50, 標準差為5。

num1=np.random.normal(loc=90,scale=5,size=100)
df1=pd.DataFrame(num1,columns=['Salary'])
df1['Type']='EmpType1'

num2=np.random.normal(loc=70,scale=5,size=100)
df2=pd.DataFrame(num2,columns=['Salary'])
df2['Type']='EmpType2'

num3=np.random.normal(loc=50,scale=5,size=100)
df3=pd.DataFrame(num3,columns=['Salary'])
df3['Type']='EmpType3'

df=pd.concat([df1,df2,df3],axis=0)

from scipy import stats

F, p = stats.f_oneway(df[df.Type=='EmpType1'].Salary,
                      df[df.Type=='EmpType2'].Salary,
                      df[df.Type=='EmpType3'].Salary)

print(F)

我們得到的輸出是: 14436261

  • 由于三種雇員的平均工資為90、70和 50 (標準差為 5), f 分為 1444
  • 而如果三種員工類型的平均工資為 5 1、5 0、4 9 (幾乎相同), 那么f 分將接近 0, 即沒有相關性。
  • F 分數值越大, 相關性就越高。
  • 您可以從此鏈接下載并運行完整代碼.

    Comments are closed.