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

(0)
guozi的头像guozi
上一篇 2024年6月5日
下一篇 2024年6月5日

相关推荐

  • 我绕过WAF的5种方法

      介绍 本文将介绍 Web 应用程序渗透测试人员和安全研究人员用来成功绕过 Web 应用程序防火墙 (WAF) 保护的工具和技术。 WAF 是一种用于过滤和阻止恶意网络…

    2024年3月26日
    0
  • 怎么在vb中添加图片

    如果你是一名网络行业的从业者,那么你一定对VB这个软件不陌生。它作为一种基于Windows的编程语言,拥有强大的图形界面和易于学习的特点,被广泛应用于各种开发项目中。而在VB中添加…

    行业资讯 2024年4月6日
    0
  • 唐山服务器维修

    唐山服务器维修,一词让人不禁联想到网络安全加速行业。随着互联网的发展,网络安全问题日益突出,服务器作为网络枢纽的重要组成部分,其稳定运行和安全保障显得尤为重要。然而,在唐山这样的新…

    行业资讯 2024年4月10日
    0
  • 什么是刚性墙体什么是柔性墙体,刚性墙被击穿怎么解决问题

    你有没有想过,当你在互联网行业筑起了一道坚固的围墙,却倒塌了,该如何解决?作为互联网行业的关键基础设施,坚固的城墙的作用不言而喻。然而,面对这个已经崩溃的现实,我们该如何应对呢?本…

    行业资讯 2024年5月8日
    0

发表回复

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