大师兄的数据分析学习笔记(三十三):模型评估(二)

大师兄的数据分析学习笔记(三十二):模型评估(一)
大师兄的数据分析学习笔记(三十四):模型评估(三)

二、回归模型评估

  • 回归模型拟合的值是连续值,所以回归模型的预测值也是连续值。
  • 回归模型评估的任务,就是评估这两个值之间的差距有多大。
  • 常用方法如下:
  • MAE(Mean Absolute Error)
    取每个预测值和真实值相减后,绝对值的和的平均值。
  • MSE(Mean Square Error)
    由于MAE取导比较麻烦,所以MSE实际是比较常用的指标,是取残差的平方和的均值。
  • RMSE(Root MSE)
    如果MSE接近于0,取RMSE会增加其尺度
  • R2_score(决定系数)
    分母是真实值的离散程度,分子是预测值相较于真实值的离散程度,所以其结果是一个综合指标。
>>>import os
>>>import pandas as pd
>>>from sklearn.preprocessing import MinMaxScaler
>>>from sklearn.linear_model import LinearRegression
>>>from sklearn.metrics import mean_squared_error,mean_absolute_error,r2_score

>>>def regression_test(features:pd.DataFrame,label:pd.DataFrame):
>>>    # print(f"X:{features}")
>>>    # print(f"Y:{label}")
>>>    r = LinearRegression()
>>>    r.fit(features.values,label.values)
>>>    Y_pred = r.predict(features.values)
>>>    print(f"Coef:{r.coef_}")
>>>    print(f"MSE:{mean_squared_error(label.values,Y_pred)}")
>>>    print(f"MAE:{mean_absolute_error(label.values,Y_pred)}")
>>>    print(f"R2:{r2_score(label.values,Y_pred)}")

>>>if __name__ == '__main__':
>>>    # 处理数据
>>>    df = pd.read_csv(os.path.join(".", "data", "WA_Fn-UseC_-HR-Employee-Attrition.csv"))
>>>    label = df.Age
>>>    features = pd.DataFrame(MinMaxScaler().fit_transform(df.HourlyRate.values.reshape(-1,1)).reshape(1,-1)[0])

>>>    # 回归
>>>    regression_test(features, label)
Coef:[0.76394992]
MSE:83.34908532565534
MAE:7.408669721645791
R2:0.0005898361490798143

你可能感兴趣的:(大师兄的数据分析学习笔记(三十三):模型评估(二))