【机器学习】回归模型评价指标

本文介绍了回归模型中常用的评价指标,如均方误差(MSE),根均方误差(RMSE),平均绝对误差(MAE)和决定系数(R²),并给出了Python代码示例。指出在选择指标时要考虑问题特性和数据特点,如异常值处理时可能优先考虑MAE或MAPE。
摘要由CSDN通过智能技术生成

🌻个人主页:相洋同学
🥇学习在于行动、总结和坚持,共勉!

目录

1.均方误差 (MSE - Mean Squared Error)

2.均方误差根(RMSE-Root Mean Squared Error)

3.平均绝对误差(MEA-Mean Absolute Error)

4.决定系数(-Coefficient of Determination)

5.代码演示


#学习总结#
模型训练好之后,对其进行评价是十分必要的。对于回归模型的性能评价,主要是通过衡量模型预测值与实际值之间的差异来实现的。

主要的评价方式有如下几种:

1.均方误差 (MSE - Mean Squared Error)

  • 计算公式为:MSE = \frac{1}{n}\sum_{i=1}^{n} (y_{i}-y\hat{}_{i})^{2}
  •  其中,y_{i}是观测值,y\hat{}_{i}是模型预测值。
  • MSE衡量的是预测值与实际值差异的平方和的均值,越小表示模型越好。

2.均方误差根(RMSE-Root Mean Squared Error)

  • 计算公式为:RMSE=\sqrt{MSE}
  • RMSE是MSE的平方根,对于较大的误差会给予更大的惩罚,单位与原数据保持一致,便于理解

3.平均绝对误差(MEA-Mean Absolute Error)

  • 计算公式为:MEA = \frac{1}{n}\sum_{i=1}^{n}\left | y_{i}-y\hat{}_{i} \right |
  • MAE 衡量的是预测值与实际值差异的绝对值的平均值,对所有的差异给予相等权重。

4.决定系数(R^{2}-Coefficient of Determination)

  • 计算公式为:R^{2}=1-\frac{\sum_{i=1}^{n}(y_{i}-y\hat{}_{i})^{2}}{\sum_{i=1}^{n}(y_{i}-y\bar{}_{i})^{2}}
  • 其中,y\bar{}是观测值的平均值
  • R^{2}表示模型能够解释的数据变异性的比例,R^{2}越接近1,模型的解释能力越强。

决定系数是常用的观测指标,根据公式我们不难得到以下结论

  1. R^{2}=0或接近0时,相当于取平均值的效果
  2. R^{2}<0时,代表模型效果较差,还不如取平均值的效果,理论上R^{2}取值可以无穷小
  3. R^{2}>0,接近1代表模型效果较好

5.代码演示

代码示例:

#导入相应的方法
from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score
print("均方误差(MSE):", mean_squared_error(y_test, y_hat))
print("根均方误差(RMSE):", np.sqrt(mean_squared_error(y_test, y_hat)))
print("平均绝对值误差(MAE):", mean_absolute_error(y_test, y_hat))
print("训练集R^2:", r2_score(y_train, lr.predict(X_train)))
print("测试集R^2:", r2_score(y_test, y_hat))
# socre求解的就是r^2的值。但是r2_score方法与score方法传递参数的内容是不同的。
print("训练集R^2:", lr.score(X_train, y_train))
print("测试集R^2:", lr.score(X_test, y_test))

输出:

均方误差(MSE): 3.691394845698606
根均方误差(RMSE): 1.921300300759516
平均绝对值误差(MAE): 1.2333759522850203
训练集R^2: 0.9065727532450596
测试集R^2: 0.8649018906637793
训练集R^2: 0.9065727532450596
测试集R^2: 0.8649018906637793

每种指标都有其优缺点,选择哪种指标取决于具体问题和数据的特点。例如,如果数据中的异常值影响较大,可能会选择使用 MAE 或 MAPE,因为相比于 MSE,它们对异常值的敏感度较低。而 R² 和调整 R² 则更多地用于解释模型对数据的拟合程度。

以上

学习在于总结和坚持,共勉

  • 9
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
机器学习模型的评价指标可以分为分类模型和回归模型两类。 ## 分类模型评价指标 ### 混淆矩阵 混淆矩阵是分类模型评价中最基本的指标,它用于描述分类模型预测结果和真实结果之间的关系。可以用以下代码实现混淆矩阵的可视化: ```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') ``` 以上是一些常用的机器学习模型评价指标及可视化代码,可以根据实际需求进行调整和修改。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值