机器学习:回归模型的评价指标

1. 概述

对于回归而言,模型性能的好坏主要体现在拟合的曲线与真实曲线的误差。主要的评价指标包括:拟合优度/R-Squared,校正决定系数(Adjusted R-square),均方误差(MSE),均方根误差(RMSE),误差平方和(SSE),平均绝对误差(MAE),平均绝对百分比误差(MAPE)。

1. 均方误差

(Mean Squared Error,MSE):观测值与真值偏差的平方和与观测次数的比值:
在这里插入图片描述

要点:
  • MSE相当于模型中的损失函数,线性回归过程中尽量让该损失函数最小。
  • 模型之间的对比也可以用它来比较。
  • MSE可以评价模型的预测精度,MSE的值越小,说明预测模型对于目标的拟合程度越精确。

2. 均方根误差(标准误差)

(Root Mean Squard Error,RMSE):均方误差的算术平方根。
在这里插入图片描述

要点:
  • 均方根误差是用来衡量观测值同真值之间的偏差。
  • 它的意义在于开个根号后,误差的结果就与数据是一个级别的,可以更好地来描述数据。
  • 标准误差对一组测量中的特大或特小误差反映非常敏感(易受异常值的影响),
  • 所以,标准误差能够很好地反映出测量的精密度。这正是标准误差在工程测量中广泛被采用的原因。

3. 平均绝对误差

(Mean Absolute Error,MAE):平均绝对误差是绝对误差的平均值
在这里插入图片描述

4、平均绝对百分比误差(MAPE)

平均绝对百分比误差(Mean Absolute Percentage Error),与RMSE相比,更加鲁棒,因为MAPE对每个点的误差进行了归一化。
在这里插入图片描述

5. 拟合优度/R-squared

在这里插入图片描述

  • 分子就是我们训练出的模型预测的误差和。
  • 分母就是瞎猜的误差和。(通常取观测值的平均值)

如果结果是0,就说明我们的模型跟瞎猜差不多。
如果结果是1。就说明我们模型无错误。

  • R 2 介于0~1之间,越接近1,回归拟合效果越好,一般认为超过0.8的模型拟合优度比较高

化简上面的公式
分子分母同时除以m,那么分子就变成了我们的均方误差MSE,下面分母就变成了方差。
在这里插入图片描述

6. 校正决定系数(Adjusted R-square)

在这里插入图片描述
其中,n为样本数量,p为特征数量。

取值范围还是负无穷到1,大多是 0~1,且越大越好

  • 4
    点赞
  • 73
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
机器学习模型的评价指标可以分为分类模型和回归模型两类。 ## 分类模型评价指标 ### 混淆矩阵 混淆矩阵是分类模型评价中最基本的指标,它用于描述分类模型预测结果和真实结果之间的关系。可以用以下代码实现混淆矩阵的可视化: ```python import matplotlib.pyplot as plt import seaborn as sns from sklearn.metrics import confusion_matrix def plot_confusion_matrix(y_true, y_pred, classes, normalize=False, cmap=plt.cm.Blues): cm = confusion_matrix(y_true, y_pred) if normalize: cm = cm.astype('float') / cm.sum(axis=1)[:, np.newaxis] plt.imshow(cm, interpolation='nearest', cmap=cmap) plt.title('Confusion matrix') plt.colorbar() tick_marks = np.arange(len(classes)) plt.xticks(tick_marks, classes, rotation=45) plt.yticks(tick_marks, classes) fmt = '.2f' if normalize else 'd' thresh = cm.max() / 2. for i, j in itertools.product(range(cm.shape[0]), range(cm.shape[1])): plt.text(j, i, format(cm[i, j], fmt), horizontalalignment="center", color="white" if cm[i, j] > thresh else "black") plt.tight_layout() plt.ylabel('True label') plt.xlabel('Predicted label') ``` ### 准确率 准确率是分类模型评价中最常用的指标,用于衡量模型预测正确的样本占总样本数量的比例。可以用以下代码实现准确率的计算和可视化: ```python from sklearn.metrics import accuracy_score def plot_accuracy(y_true, y_pred): acc = accuracy_score(y_true, y_pred) plt.figure(figsize=(4, 4)) plt.title('Accuracy: {:.2%}'.format(acc)) sns.heatmap(confusion_matrix(y_true, y_pred), square=True, annot=True, fmt='d', cbar=False) ``` ### 精确率、召回率和 F1 值 精确率是指模型预测为正例的样本中,真正为正例的样本占比;召回率是指真正为正例的样本中,被模型预测为正例的样本占比;F1 值是精确率和召回率的调和平均数。可以用以下代码实现精确率、召回率和 F1 值的计算和可视化: ```python from sklearn.metrics import precision_score, recall_score, f1_score def plot_precision_recall_f1(y_true, y_pred): precision = precision_score(y_true, y_pred) recall = recall_score(y_true, y_pred) f1 = f1_score(y_true, y_pred) plt.figure(figsize=(4, 4)) plt.title('Precision: {:.2%}, Recall: {:.2%}, F1 Score: {:.2%}'.format(precision, recall, f1)) sns.heatmap(confusion_matrix(y_true, y_pred), square=True, annot=True, fmt='d', cbar=False) ``` ## 回归模型评价指标 ### 均方误差和均方根误差 均方误差是回归模型评价中最常用的指标之一,用于衡量模型预测值与真实值之间的差异。均方根误差是均方误差的平方根。可以用以下代码实现均方误差和均方根误差的计算和可视化: ```python from sklearn.metrics import mean_squared_error def plot_mse_rmse(y_true, y_pred): mse = mean_squared_error(y_true, y_pred) rmse = np.sqrt(mse) plt.figure(figsize=(4, 4)) plt.title('MSE: {:.2f}, RMSE: {:.2f}'.format(mse, rmse)) plt.scatter(y_true, y_pred, alpha=0.5) plt.plot([y_true.min(), y_true.max()], [y_true.min(), y_true.max()], 'k--') plt.xlabel('True Values') plt.ylabel('Predictions') ``` ### R2 值 R2 值是回归模型评价中最常用的指标之一,用于衡量模型解释数据方差的能力,取值范围为 0 到 1。可以用以下代码实现 R2 值的计算和可视化: ```python from sklearn.metrics import r2_score def plot_r2(y_true, y_pred): r2 = r2_score(y_true, y_pred) plt.figure(figsize=(4, 4)) plt.title('R2 Score: {:.2%}'.format(r2)) plt.scatter(y_true, y_pred, alpha=0.5) plt.plot([y_true.min(), y_true.max()], [y_true.min(), y_true.max()], 'k--') plt.xlabel('True Values') plt.ylabel('Predictions') ``` 以上是一些常用的机器学习模型评价指标及可视化代码,可以根据实际需求进行调整和修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值