• sklearn中的回归器性能评估方法(转)


    • explained_variance_score()
    • mean_absolute_error()
    • mean_squared_error()
    • r2_score() 

    以上四个函数的相同点:

    • 这些函数都有一个参数“multioutput”,用来指定在多目标回归问题中,若干单个目标变量的损失或得分以什么样的方式被平均起来
    • 它的默认值是“uniform_average”,他就是将所有预测目标值的损失以等权重的方式平均起来
    • 如果你传入了一个shape为(n_oupputs,)的ndarray,那么数组内的数将被视为是对每个输出预测损失(或得分)的加权值,所以最终的损失就是按照你锁指定的加权方式来计算的
    • 如果multioutput是“raw_values”,那么所有的回归目标的预测损失或预测得分都会被单独返回一个shape是(n_output)的数组中

    explained_variance_score

    复制代码
    #explained_variance_score
    from sklearn.metrics import explained_variance_score
    y_true=[3,-0.5,2,7]
    y_pred=[2.5,0.0,2,8]
    print(explained_variance_score(y_true,y_pred))
    y_true=[[0.5,1],[-1,1],[7,-6]]
    y_pred=[[0,2],[-1,2],[8,-5]]
    print(explained_variance_score(y_true,y_pred,multioutput="raw_values"))
    print(explained_variance_score(y_true,y_pred,multioutput=[0.3,0.7]))
    
    #结果
    #0.957173447537 #[ 0.96774194 1. ] #0.990322580645
    复制代码

    mean_absolute_error

    复制代码
    #mean_absolute_error
    from sklearn.metrics import mean_absolute_error
    y_true=[3,0.5,2,7]
    y_pred=[2.5,0.0,2,8]
    print(mean_absolute_error(y_true,y_pred))
    
    y_true=[[0.5,1],[-1,1],[7,-6]]
    y_pred=[[0,2],[-1,2],[8,-5]]
    print(mean_absolute_error(y_true,y_pred))
    print(mean_absolute_error(y_true,y_pred,multioutput="raw_values"))
    print(mean_absolute_error(y_true,y_pred,multioutput=[0.3,0.7]))
    
    #结果
    #0.5
    #0.75
    #[ 0.5  1. ]
    #0.85
    复制代码

    mean_squared_error

    复制代码
    #mean_squared_error
    from sklearn.metrics import mean_squared_error
    y_true=[3,-0.5,2,7]
    y_pred=[2.5,0.0,2,8]
    print(mean_squared_error(y_true,y_pred))
    y_true=[[0.5,1],[-1,1],[7,-6]]
    y_pred=[[0,2],[-1,2],[8,-5]]
    print(mean_squared_error(y_true,y_pred))
    
    #结果
    #0.375
    #0.708333333333
    复制代码

    median_absolute_error

    复制代码
    #median_absolute_error
    from sklearn.metrics import median_absolute_error
    y_true=[3,-0.5,2,7]
    y_pred=[2.5,0.0,2,8]
    print(median_absolute_error(y_true,y_pred))
    
    #结果
    #0.5
    复制代码

    r2_score

     

    复制代码
    #r2_score
    from sklearn.metrics import r2_score
    y_true=[3,-0.5,2,7]
    y_pred=[2.5,0.0,2,8]
    print(r2_score(y_true,y_pred))
    
    y_true=[[0.5,1],[-1,1],[7,-6]]
    y_pred=[[0,2],[-1,2],[8,-5]]
    print(r2_score(y_true,y_pred,multioutput="variance_weighted"))
    
    y_true=[[0.5,1],[-1,1],[7,-6]]
    y_pred=[[0,2],[-1,2],[8,-5]]
    print(r2_score(y_true,y_pred,multioutput="uniform_average"))
    print(r2_score(y_true,y_pred,multioutput="raw_values"))
    print(r2_score(y_true,y_pred,multioutput=[0.3,0.7]))
    
    #结果
    #0.948608137045
    #0.938256658596
    #0.936800526662
    #[ 0.96543779  0.90816327]
    #0.92534562212
  • 相关阅读:
    InfoQ访谈BPEL4People代表
    传 IBM 拟 4 月 6 日宣布收购 Sun
    NetBeans 6.7 Milestone 3 Now Available for Download!
    Intel比AMD高明在哪里?
    InfoQ访谈BPEL4People代表
    Linux 3.8.1 电源管理之OMAP Voltage Domain分析
    Readline简介 Linux技术问答 Linux中国 | Linux.cn 我们的Linux中文社区
    更改日期
    JAVA研发工程师(YF)
    一键解决Ubuntu下安装Eclipse Android/C/C++ 开发环境
  • 原文地址:https://www.cnblogs.com/jycjy/p/9165775.html
Copyright © 2020-2023  润新知