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's avatarguozi
上一篇 2024年6月5日 下午4:14
下一篇 2024年6月5日 下午4:21

相关推荐

  • 网站被禁止访问怎么打开,什么浏览器看网站不受限制

    网站被屏蔽是所有网站运营商都担心的问题。当网站被阻止时,它就无法再正常运行,从而影响用户访问和收入。那么什么是被屏蔽的网站?它是如何发生的?在这篇文章中,我们将详细分析网站被屏蔽的…

    行业资讯 2024年4月21日
    0
  • 显卡云服务器

    你是否曾经想过,如果能够将一台强大的显卡与云服务器结合,会产生怎样的惊人效果?或许你已经听说过“显卡云服务器”这个名词,但它究竟是什么?它又有哪些应用场景?它的性能又有何优势?以及…

    行业资讯 2024年4月11日
    0
  • 三极管原理最通俗的表达理解(干货!)

    本文主要介绍三极管原理最通俗的表达理解,希望对大家有所帮助。对三极管放大作用的理解,切记一点:能量不会无缘无故的产生,所以,三极管一定不会产生能量。但三极管厉害

    2024年6月1日
    0
  • seo综合查询怎么关

    想要在搜索引擎中获得更好的排名,SEO综合查询是必不可少的工具。那么什么是SEO综合查询?它又有什么作用和重要性?如何进行SEO综合查询?有哪些常用的工具及其功能呢?让我们一起来探…

    行业资讯 2024年3月25日
    0

发表回复

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