zoukankan      html  css  js  c++  java
  • 回归问题的性能度量标准

    我们以$Y = { y_1, y_2,...,y_n }$ 表示真实的数据,以$hat Y = {  hat{y}_1, hat{y}_2,...,hat{y}_n}$表示预测出来的数据

    1:均方误差 (mean square error)MSE

    $MSE = frac{1}{n} sum limits_{i=1}^{n} (y_i – hat{y}_i)^2$

    2:均方根误差 (root mean squared error)RMSE

    均方根误差是均方误差开根号得到的结果

    $RMSE =  sqrt{ frac{1}{n} sum limits_{i=1}^{n} (y_i – hat{y}_i)^2 }$

    3:平均绝对误差 (mean absolute error) MAE

    $MAE = frac{1}{n} sum limits_{i=1}^{n} lvert y_i – hat{y}_i vert$

    4:均方根对数误差 (root mean squared logarithmic error) RMSLE

    $RMSLE =  sqrt{ frac{1}{n} sum limits_{i=1}^{n} (log(hat{y}_i  + 1) – log(y_i + 1) )^2 }$

    使用RMSLE的好处一:

      假如真实值为1000,若果预测值是600,那么RMSE=400, RMSLE=0.510

      假如真实值为1000,若预测结果为1400, 那么RMSE=400, RMSLE=0.336

      可以看出来在均方根误差相同的情况下,预测值比真实值小这种情况的错误比较大,即对于预测值小这种情况惩罚较大。

    使用RMSLE的好处二:

      直观的经验是这样的,当数据当中有少量的值和真实值差值较大的时候,使用log函数能够减少这些值对于整体误差的影响。

    使用sklearn.metrics 来进行计算:

    from sklearn.metrics import mean_squared_error
    from sklearn.metrics import mean_squared_log_error
    from sklearn.metrics import mean_absolute_error

    x = [1,2,3,4,5]
    y = [2,4,3,2,6]

    MSE = mean_squared_error(x, y)
    RMSE = MSE ** 0.5
    MAE = mean_absolute_error(x, y)
    MSLE = mean_squared_log_error(x, y)
    RMSLE = MSLE ** 0.5
    print(MSE, RMSE, MAE, RMSLE)

    结果为:

    2.0 1.4142135623730951 1.2 0.3768421477956514

    参考:

      检测模型结果的时候,除了最常用的MSE,RMSE,Accuracy,AUC等,还有什么吗?

      What is the difference between an RMSE and RMSLE

  • 相关阅读:
    xss漏洞
    web日志分析(待)
    linux命令学习摘记
    浏览器的MIME映射(程序映射)
    文件上传靶场-Upload-Labs
    目录遍历用字典
    cmd、bat分割单行字符串
    iptables使用
    Spring AOP 学习(五)
    Spring 使用注解注入 学习(四)
  • 原文地址:https://www.cnblogs.com/jiaxin359/p/8989565.html
Copyright © 2011-2022 走看看