Python特征工程系列

一、引言

相关性分析提供了一种简单而直观的方法来初步筛选特征。通过计算特征与目标变量之间的相关系数,我们能够快速地评估各个特征与预测目标之间的线性关系强度。

在统计学中,最常用的相关系数有两种:皮尔逊相关系数(Pearson correlation coefficient)和斯皮尔曼等级相关系数(Spearman’s rank correlation coefficient)。皮尔逊相关系数用于衡量两个连续变量之间的线性相关程度,而斯皮尔曼相关系数则适用于评估两个变量的等级间的单调相关关系,特别适用于非线性关系的数据。

应用注意事项:

  • 相关性分析只能捕捉到线性关系或单调关系,对于复杂的非线性关系可能无法有效识别。
  • 高相关性并不意味着因果关系,有时候两个特征之间的高相关性可能只是因为它们共同受到第三个因素的影响。

二、实现过程

2.1 准备数据

data = pd.read_csv(r'dataset.csv')df = pd.DataFrame(data)

图片

2.2 目标变量和特征变量

target = 'target'features = df.columns.drop(target)

 特征变量如下:

图片

2.3 划分训练集和测试集

X_train, X_test, y_train, y_test = train_test_split(df[features].values, df[target].values, test_size=0.2, random_state=0)

2.4 重构训练集数据

进行训练集数据重构:

train_X = pd.DataFrame(X_train, columns=features)train_y = pd.DataFrame(y_train, columns=[target])train = pd.concat([train_X, train_y],axis = 1)print(train)

打印结果:

图片

2.5 相关性分析并可视化

代码:

sns.set(font_scale=1.2)plt.rc('font',family=['SimSun'], size=12)plt.figure(figsize=(10, 8))plt.subplots_adjust()ax = sns.heatmap(train.corr(), annot=True, xticklabels=False, fmt=".2f")ax.set_title('相关性热力图')  # 图标题plt.xticks(rotation=45)plt.tight_layout()plt.show()

结果:

图片

计算了这些属性之间的相关系数,并通过热力图的方式进行了可视化。通过热力图,我们可以直观地看到各属性与标签之间的相关性如何。

原创文章,作者:guozi,如若转载,请注明出处:https://www.sudun.com/ask/90411.html

Like (0)
guozi的头像guozi
Previous 2024年6月5日
Next 2024年6月5日

相关推荐

  • 如何设置网关ip来保护服务器安全?

    如何设置网关IP来保护服务器安全?网络安全一直是我们关注的焦点,尤其是在如今信息技术高速发展的时代。而网关IP作为保护服务器安全的重要措施,更是备受瞩目。那么,什么是网关IP?它又…

    行业资讯 2024年3月24日
    0
  • 爱建站

    云服务器,这个词已经不再陌生。它是当今互联网时代的主力军,也是各大企业和个人建站的首选。但是,什么是云服务器?它有着怎样的优势和应用场景?今天,我们将带您走进爱建站平台,一起探索这…

    行业资讯 2024年3月23日
    0
  • 如何免费制作网页?

    想要拥有属于自己的网页,却又不想花费大量的金钱和时间?那么,免费网页制作工具将是您最佳的选择!但是,在众多的免费网页制作工具中,如何选择适合自己的呢?接下来,我将为您介绍什么是网页…

    行业资讯 2024年4月17日
    0
  • 金融服务的app,金融app是干什么的

    随着互联网的快速发展,金融APP服务已经成为人们生活中必不可少的一部分。然而,金融应用服务遭受攻击的风险也在增加。那么什么是金融应用服务呢?它们为什么容易受到攻击?我们该如何应对这…

    行业资讯 2024年5月7日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注