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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM