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