✨ 欢迎关注Python机器学习AI ✨
本节介绍:基于
热图对模型评价指标进行相关可视化
,数据采用模拟数据无任何现实意义,作者根据个人对机器学习的理解进行代码实现与图表输出,细节并不保证与原文一定相同,仅供参考。
详细数据和代码将在稍后上传至交流群,付费群成员可在交流群中获取下载。需要的朋友可关注公众文末提供的购买方式。
购买前请咨询,避免不必要的问题。下面提供完整代码实现。
✨ python实现 ✨
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
df = pd.read_excel('2025-3-12公众号Python机器学习AI.xlsx')
from sklearn.model_selection import train_test_split
X = df.drop(['y'], axis=1)
y = df['y']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3,
random_state=42, stratify=df['y'])
from sklearn.ensemble import RandomForestClassifier, ExtraTreesClassifier
from sklearn.tree import DecisionTreeClassifier
from sklearn.neighbors import KNeighborsClassifier
from xgboost import XGBClassifier
import lightgbm as lgb
# 1. 随机森林模型 (RF)
rf_model = RandomForestClassifier(random_state=42)
rf_model.fit(X_train, y_train)
# 2. 决策树模型 (DT)
dt_model = DecisionTreeClassifier(random_state=42)
dt_model.fit(X_train, y_train)
# 3. XGBoost模型
xgb_model = XGBClassifier(random_state=42)
xgb_model.fit(X_train, y_train)
# 4. K邻近模型 (KNN)
knn_model = KNeighborsClassifier()
knn_model.fit(X_train, y_train)
# 5. 极端梯度提升模型 (ET)
et_model = ExtraTreesClassifier(random_state=42)
et_model.fit(X_train, y_train)
# 6. LightGBM模型 (LGBM)
lgb_model = lgb.LGBMClassifier(random_state=42, verbose=-1)
lgb_model.fit(X_train, y_train)
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, roc_auc_score, cohen_kappa_score
from sklearn.metrics import confusion_matrix
# 预测每个模型在测试集上的结果
rf_pred = rf_model.predict(X_test)
dt_pred = dt_model.predict(X_test)
xgb_pred = xgb_model.predict(X_test)
knn_pred = knn_model.predict(X_test)
et_pred = et_model.predict(X_test)
lgb_pred = lgb_model.predict(X_test)
# 计算每个模型的评价指标
def calculate_metrics(y_true, y_pred):
# 获取混淆矩阵
tn, fp, fn, tp = confusion_matrix(y_true, y_pred).ravel()
# 计算各个评价指标
return {
'Accuracy': accuracy_score(y_true, y_pred),
'Recall': recall_score(y_true, y_pred),
'F1 Score': f1_score(y_true, y_pred),
'ROC AUC': roc_auc_score(y_true, y_pred),
'Sensitivity': recall_score(y_true, y_pred),
'Specificity': tn / (tn + fp) if (tn + fp) != 0 else 0,
'PPV': precision_score(y_true, y_pred),
'NPV': tn / (tn + fn) if (tn + fn) != 0 else 0,
'Kappa Score': cohen_kappa_score(y_true, y_pred) # Kappa score
}
# 获取每个模型的评价指标
metrics = {
'RF': calculate_metrics(y_test, rf_pred),
'DT': calculate_metrics(y_test, dt_pred),
'XGB': calculate_metrics(y_test, xgb_pred),
'KNN': calculate_metrics(y_test, knn_pred),
'ET': calculate_metrics(y_test, et_pred),
'LGBM': calculate_metrics(y_test, lgb_pred)
}
metrics_df = pd.DataFrame(metrics).T
metrics_df
使用六种机器学习模型对数据进行训练,并评估每个模型在测试集上的表现。首先,从一个Excel文件中读取数据,并将数据划分为特征(X)和目标变量(y)。然后,通
过
train\_test\_split
函数将数据集分为训练集和测试集。
接着,代码训练六个不同的机器学习模型,包括:随机森林、决策树、XGBoost、KNN、极端随机树、LightGBM,当然默认参数,主要为了可视化
每个模型在训练集上进行训练后,会在测试集上进行预测,得到预测结果。接下来,使用一系列评价指标(如准确率、召回率、F1分数、ROC AUC等)对每个模型的表现进行评估。评价指标通过计算混淆矩阵来推导,包括灵敏度、特异性、精确度、阴性预测值(NPV)和Kappa得分
import seaborn as sns
from sklearn.metrics import confusion_matrix
# 将字典转换为DataFrame
metrics_df = pd.DataFrame(metrics).T
plt.figure(figsize=(10, 6))
sns.heatmap(metrics_df, annot=True, cmap="Blues", fmt='.3f', cbar=True,
annot_kws={"size": 14}, cbar_kws={"label": "range"}, linewidths=0.5)
plt.title("Test Set Evaluation Metric", fontsize=18, fontweight='bold')
plt.xlabel("")
plt.ylabel("")
plt.xticks(fontsize=12, fontweight='bold', rotation=45)
plt.yticks(fontsize=12, fontweight='bold')
plt.savefig('1.pdf', format='pdf', bbox_inches='tight', dpi=1200)
plt.show()
通过绘制一个热图,展示多个机器学习模型在测试集上的评价指标,当然比如有时有着重观测的指标我们可以给它突出显示
这是一种极其简洁明了的模型评价指标可视化不复杂但是也有一定的美观程度
✨ 购买介绍 ✨
本节介绍到此结束,有需要学习数据分析和Python机器学习相关的朋友欢迎到 淘宝店铺:Python机器学习AI,或添加作者微信deep_ML联系 ,购买作者的公众号合集。截至目前为止,合集已包含200多篇文章,购买合集的同时,还将提供免费稳定的AI大模型使用,包括但不限于ChatGPT、Deepseek、Claude等。
更新的内容包含数据、代码、注释和参考资料。
作者仅分享案例项目,不提供额外的答疑服务。项目中将提供详细的代码注释和丰富的解读,帮助您理解每个步骤
。
购买前请咨询,避免不必要的问题。
✨ 群友反馈 ✨
✨ 淘宝店铺 ✨
请大家打开淘宝扫描上方的二维码,进入店铺,获取更多Python机器学习和AI相关的内容,或者添加作者微信 deep_ML联系
避免淘宝客服漏掉信息
,希望能为您的学习之路提供帮助!
往期推荐
GeoShapley算法:基于地理数据的Shapley值在空间效应测量中的应用——位置重要性与特征交互作用分析
期刊配图:基于‘UpSet图’展示不同数据预处理对模型性能的影响
J Clean Prod:结合K-means聚类确定样本分组方式再结合shap初步解释模型的模拟实现
nature communications:结合LightGBM特征选择与RF模型的机器学习方法及SHAP解释
期刊配图:结合lightgbm回归模型与K折交叉验证的特征筛选可视化
Nature新算法:准确的小数据预测与表格基础模型TabPFN分类实现及其模型解释
Nature新算法:准确的小数据预测与表格基础模型TabPFN回归实现及其模型解释
如果你对类似于这样的文章感兴趣。
欢迎关注、点赞、转发~
个人观点,仅供参考