在表格数据集上创建任何机器学习模型之前, 通常我们会检查独立变量和目标变量之间是否存在关系。这可以通过测量两个变量之间的相关性来实现。在 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.