机器学习中用可视化手段来进行模型评估和参数调优

本文探讨了使用可视化手段来评估和优化机器学习模型,包括混淆矩阵、ROC曲线、预测错误曲线和残差曲线。通过示例展示了如何使用Scikit-Learn的工具来直观判断模型性能,并介绍了参数调优的重要性,如Grid Search,强调了理解和可视化模型参数对于提升模型性能的关键作用。
摘要由CSDN通过智能技术生成

本篇文章详细阐述机器学习模型评估和参数调优。将主要围绕两个问题来阐述:

  1. “知其所以然”:当你选择的一个机器学习模型运行时,你要知道它是如何工作的;

  2. “青出于蓝”:更进一步,你得知道如何让此机器学习模型工作的更优。

模型评估的方法

一般情况来说,F1评分或者R平方(R-Squared value)等数值评分可以告诉我们训练的机器学习模型的好坏。也有其它许多度量方式来评估拟合模型。

你应该猜出来,我将提出使用可视化的方法结合数值评分来更直观的评判机器学习模型。接下来的几个部分将分享一些有用的工具。

首先想声明的,单单一个评分或者一条线,是无法完全评估一个机器学习模型。偏离真实场景来评估机器学习模型('good' or 'bad')都是“耍流氓”。某个机器学习模型若可“驾驭”小样本数据集生成最多预测模型(即,命中更多预测数据集)。如果一个拟合模型比其它拟合过的模型形式或者你昨天的预测模型能够得到更好的结果,那即是好('good')。

下面是一些标准指标: confusion_matrix , mean_squared_error , r2_score ,这些可以用来评判分类器或者回归的好坏。表格中给出的是 Scikit-Learn 中的函数以及描述:

评估分类模型 :

指标 描述 Scikit-learn函数
Precision 精准度 from sklearn.metrics import precision_score
Recall 召回率 from sklearn.metrics import recall_score
F1 F1值 from sklearn.metrics import f1_score
Confusion Matrix 混淆矩阵 from sklearn.metrics import confusion_matrix
ROC ROC曲线 from sklearn.metrics import roc
AUC ROC曲线下的面积 from sklearn.metrics import auc

评估回归模型 :

指标 描述 Scikit-learn函数
Mean Square Error (MSE, RMSE) 平均方差 from sklearn.metrics import mean_squared_error
Absolute Error (MAE, RAE) 绝对误差 from sklearn.metrics import mean_absolute_error, median_absolute_error
R-Squared R平方值 from sklearn.metrics import r2_score

下面开始使用 Scikit-Learn 的可视化工具来更直观的展现模型的好坏。

评估分类模型

我们评估分类器是判断预测值时否很好的与实际标记值相匹配。正确的鉴别出正样本(True Positives)或者负样本(True Negatives)都是True。同理,错误的判断正样本(False Positive,即一类错误)或者负样本(False Negative,即二类错误)。

注意:True和False是对于评价预测结果而言,也就是评价预测结果是正确的(True)还是错误的(False)。而Positive和Negative则是样本分类的标记。

通常,我们希望通过一些参数来告知模型评估如何。为此,我们使用混淆矩阵。

混淆矩阵

幸运的是, Scikit-Learn 提供内建函数( sklearn.metrics.confusion_matrix )来计算混淆矩阵。输入数据集实际值和模型预测值作为参数,输出即为混淆矩阵,结果类似这样:

[[1238   19]   # True Positives = 1238, False Negatives = 19
 [   2  370]]  # False Positives = 2, True Negatives = 370

分类报告

分类报告除了包括混淆矩阵,也增加了其它优势,比如,混淆矩阵会标示样例是否被正确鉴别,同时也提供precision,recall和 F1 值三种评估指标。

from sklearn.metrics import classification_report
print(classification_report(y_true, y_pred, target_names=target_names))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值