✨ 欢迎关注Python机器学习AI ✨
本节介绍:玩转相关系数矩阵可视化高亮呈现多重共线性与强线性特征对,数据采用模拟数据无任何现实意义,作者根据个人对机器学习的理解进行代码实现与图表输出,仅供参考。完整数据和代码将在稍后上传至交流群,成员可在交流群中获取下载。需要的朋友可关注公众文末提供的获取方式。文末提供高效的学习工具~!点赞、推荐参与文末包邮赠书!
✨ 可视化信息 ✨
在机器学习中,相关系数是特征分析中最基础却极其重要的工具之一。通过计算特征与目标变量之间的相关系数,可以快速判断某个特征是否与预测目标存在 线性关系 ,从而评估该特征是否具备潜在的预测价值。同时,相关系数还能帮助识别特征之间是否存在 高度线性相关 (即多重共线性)。当两个或多个特征几乎传递同样的信息时,模型在训练过程中可能会出现系数不稳定、方差膨胀、解释性下降等问题,进一步影响模型的泛化能力与可靠性。因此,在建模之前对相关性进行判断,不仅能帮助筛选高价值特征,也能避免冗余特征带来的噪声干扰,让模型更加稳健、简洁且高效
✨ 代码实现 ✨
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'Times New Roman'
plt.rcParams['axes.unicode_minus'] = False
import warnings
# 忽略所有警告
warnings.filterwarnings("ignore")
path = r"2025-12-4公众号Python机器学习AI.xlsx"
df = pd.read_excel(path)
from matplotlib.patches import Wedge, Circle
from matplotlib.collections import PatchCollection
import matplotlib.cm as cm
import matplotlib.colors as mcolors
def pie_heatmap_pdf(corr_df, save_path=None):
"""
绘制圆环相关系数矩阵图
"""
N = len(corr_df.columns)
col_names = corr_df.columns
fig, ax = plt.subplots(figsize=(12, 10))
ax.set_xlim(-2.0, N - 0.5)
ax.set_ylim(-0.5, N - 0.5)
ax.set_aspect('equal')
ax.invert_yaxis()
ax.xaxis.tick_top()
ax.set_xticks(np.arange(N))
ax.set_xticklabels(col_names, rotation=45, ha='left',
fontsize=16, fontweight='bold', fontfamily='serif')
ax.set_yticks([]) # 隐藏默认Y轴
for spine in ax.spines.values():
spine.set_visible(False) # 隐藏边框
# 关闭网格线
ax.grid(False)
# 颜色映射
cmap = plt.cm.get_cmap('Spectral')
norm = mcolors.Normalize(vmin=-1, vmax=1)
patches = []
colors = []
....
p = PatchCollection(patches, match_original=False)
p.set_facecolor(colors)
p.set_edgecolor('none')
ax.add_collection(p)
#颜色条
sm = plt.cm.ScalarMappable(cmap=cmap, norm=norm)
sm.set_array([])
cbar = plt.colorbar(sm, ax=ax, fraction=0.046, pad=0.04)
cbar.outline.set_visible(False)
cbar.ax.tick_params(labelsize=16)
for label in cbar.ax.yaxis.get_ticklabels():
label.set_weight('bold')
label.set_family('serif')
plt.tight_layout()
if save_path:
plt.savefig(save_path, format='pdf', bbox_inches='tight', dpi=1200)
plt.show()
corr_matrix = df.corr()
pie_heatmap_pdf(corr_matrix, save_path='corr_plot_1.pdf')
可视化值是由圆环扇形组成的,这些扇形代表相关系数矩阵中的每一对特征之间的相关性。通过上三角矩阵的方式,在图形上呈现每两个特征之间的相关性值。每个菱形区域的角度大小与相关系数的绝对值成正比,角度越大,表示两个特征之间的相关性越强。此外,图中通过颜色映射来表示相关性的正负强度,正相关为暖色,负相关为冷色, 公众号后台输入“124”获取完整代码
corr_matrix = df.corr()
pie_heatmap_optimized(corr_matrix, save_path="corr_plot_2.pdf")
在新的自定义函数中,增加threshold参数,用于根据相关系数的绝对值调整数值的字体颜色,当相关系数的绝对值小于阈值时,数值字体颜色变淡,以突出高相关特征对,从而提高图表的可读性和信息的传达效果
高相关特征对意味着两个特征之间存在多重共线性,即它们携带了高度重叠的信息,在建模过程中,就需要考虑是否剔除其中一个特征或保留
pie\_heatmap\_optimized(corr\_matrix, save\_path="corr\_plot\_3.pdf", threshold=0.95)
多重共线性问题通常在特征对之间的相关系数绝对值大于0.8或0.9时出现。这个阈值并不是固定的,比如这里阈值设定为0.95,具体的界限取决于领域和模型的要求,0.8或0.9:当两个特征的相关系数大于0.8或0.9时,通常认为这对特征之间存在较强的线性关系,可能会引发多重共线性问题。在这种情况下,模型的系数可能变得不稳定,影响模型的解释性和性能,高于0.95:当相关系数接近1或-1时,多重共线性问题通常会非常严重,特别是在线性回归等模型中,几乎无法从中获得可靠的系数估计
更严格的筛选:当threshold的值较高(例如 0.95)时,只有那些相关性非常强的特征对会被突出显示,而大多数较低相关的特征对将变为灰色。这样可以将关注点集中在最强相关的特征对上,忽略那些相关性较弱的变量
宽松的筛选:当threshold的值较低(例如0.75或更低)时,更多的特征对会被显示为深色,表示它们与目标变量或其他特征有一定的相关性。此时,即使是中等强度的相关性(如 0.75)也会被突出显示,从而可以帮助观察数据中较弱但仍有一定相关性的特征对
当然,公众号中还有更多机器学习期刊实战技巧,您可以通过历史文章进行检索和阅读,关注公众号,点击“发信息”>“历史文章”即可搜索公众号所有文章信息
✨ 该文章案例 ✨
在上传至交流群的文件中,像往期文章一样,将对案例进行逐步分析,确保读者能够达到最佳的学习效果。内容都经过详细解读,帮助读者深入理解模型的实现过程和数据分析步骤,从而最大化学习成果。
同时,结合提供的免费AI聚合网站进行学习,能够让读者在理论与实践之间实现融会贯通,更加全面地掌握核心概念。
✨ 介绍 ✨
本节介绍到此结束,有需要学习数据分析和Python机器学习相关的朋友欢迎到淘宝店铺:Python机器学习AI,下方提供淘宝店铺二维码获取作者的公众号合集。截至目前为止,合集已包含近300多篇文章,购买合集的同时,还将提供免费稳定的AI大模型使用。
更新的内容包含数据、代码、注释和参考资料。 作者仅分享案例项目,不提供额外的答疑服务。项目中将提供详细的代码注释和丰富的解读,帮助您理解每个步骤 。 获取 前请咨询,避免不必要的问题。
✨ 群友反馈 ✨
✨ 合集获取 ✨
欢迎到公众号后台,获取更多Python机器学习和AI相关的内容 ,希望能为您的学习之路提供帮助!
✨ 书籍推荐 ✨
无论你是零编程基础的科研新手,还是想提升机器学习技能的医学科研工作者,这本书都能带你从入门到进阶,掌握Python数据分析+医学AI应用的全流程技能
✨ 赠书活动 ✨
支持知识分享,畅享学习乐趣!特别感谢清华大学出版社 对本次赠书活动的鼎力支持!即日起,只需点赞、推荐、转发 此文章,作者将从后台随机抽取一位幸运儿,免费包邮赠送清华出版社提供的精彩书籍📚!
💡 赶快参与,一键三连,说不定你就是那位幸运读者哦!
✨ AI工具推荐 ✨
往期推荐
期刊配图:模型SHAP解释特征类别柱状图、饼图与蜂巢图的组合展示
期刊复现:基于自动机器学习的预测模型构建及其残差和部分依赖分析
期刊复现:SVM、RF、BDT、DT、Logit五大模型堆叠31种组合情况最优模型的SHAP解释
期刊复现:单变量特征降维与共线性分析结合RFE集成排名进行特征筛选下的组合拳流程
期刊复现:SVM、RF、BDT、DT、Logit五大模型堆叠31种组合情况优化与最优模型选择可视化
期刊复现:基于相关系数与AUC值优化特征选择剔除冗余特征精简模型(附代码)
期刊复现:如何正确使用LASSO进行二分类特征选择?避开常见误区,掌握实用技巧
期刊复现:融合聚类与多分类转二分类的亚型可解释SHAP机器学习模型构建
期刊复现:基于LightGBM、XGBoost与RF的Lasso回归堆叠模型在连续和分类特征上的模型解释
期刊复现:基于LightGBM、XGBoost与RF的堆叠模型贝叶斯优化调参与Lasso回归元模型,结合10倍交叉验证
如果你对类似于这样的文章感兴趣。
欢迎关注、点赞、转发~
个人观点,仅供参考
