美文网首页Data science
回归评价的指标(MSE/RMSE/MAE/R-squared)

回归评价的指标(MSE/RMSE/MAE/R-squared)

作者: 生信编程日常 | 来源:发表于2020-11-07 23:22 被阅读0次

    1, MSE, RMSE, MAE

    均方误差,即Mean Square Error (MSE),表达式为:


    均方根误差,即Root Mean Square Error (RMSE),是在均方误差的基础上开根号,表达式为:


    平均绝对误差,即Mean Absolute Error (MAE),表达式为:


    自己实现及sklearn中的调用:

    from sklearn import datasets
    boston = datasets.load_boston()
    
    x = boston.data[:, 5] # 只用了其中房间数量一个特征
    y = boston.target
    
    
    from sklearn.model_selection import train_test_split
    x_train, x_test, y_train, y_test = train_test_split(x, y)
    
    from sklearn.linear_model import LinearRegression
    reg = LinearRegression()
    reg.fit(x_train, y_train)
    y_pred = reg.predict(x_test)
    
    
    # MSE
    mse = np.sum((y_pred - y_test)**2) / len(y_pred)
    print('MSE = {}'.format(mse))
    
    # RMSE
    rmse = np.sqrt(mse)
    print('RMSE = {}'.format(rmse))
    
    # MAE
    mae = np.sum(np.absolute(y_pred - y_test)) / len(y_pred)
    print('MAE = {}'.format(mae))
    
    # sklearn中的调用
    from sklearn.metrics import mean_absolute_error, mean_squared_error
    
    print(mean_squared_error(y_pred, y_test))
    print(mean_absolute_error(y_pred, y_test))
    

    2. R-squared

    RMSE与MAE有个局限性,就是对于分类的种类不同的情况很难去比较谁的效果好,比如预测学生的成绩和预测房价,得到的RMSE/MAE是并不能比较的。

    但是R^2是可以解决这个问题的,不同分类种类可以互相比较。


    即:


    或者:


    分子可以理解为使用这个模型产生的错误,分母可以理解为使用[图片上传失败...(image-4b22f8-1604762508813)]

    时产生的错误(Baseline Model)。

    因此我们可以得到以下结论:
    1). R^2的取值小于等于1;
    2). R^2越大越好,当模型没有任何错误的时候,其值为1;
    3). 当模型为Baseline model时,其值为0;
    4). 如果R^2<0时,说明这个模型甚至还不如Baseline model,很有可能该数据不存在任何线性关系。

    相关文章

      网友评论

        本文标题:回归评价的指标(MSE/RMSE/MAE/R-squared)

        本文链接:https://www.haomeiwen.com/subject/ushcbktx.html