分類模型的評價

2021-08-22 08:49:40 字數 2763 閱讀 5141

假如某個班級有男生80人,女生20人,共計100人。目標是找出所有女生。

現在某人挑選出50個人,其中20人是女生,另外還錯誤的把30個男生也當作女生挑選出來了。評估(evaluation)下他的工作。

(1)accuracy(準確率):0-1損失。分類器(某人)正確分類的樣本數/總樣本數,即20+50/100=70%

不適合不均衡資料集。舉例,總人數100人,男生1人,女生99人,現調出男生。假設都是女生,那麼accuracy:99/100=99%

雖然accuracy很高。但是我的目的是要調出男生,它沒有做到。差評。 

(2)precision(精確率):成功查詢到的樣本/總查詢的樣本

前面案例中分別是20/20+30=40%    0/100=0%

(3)recall(召回率):成功查詢到的樣本/目標樣本總數

前面案例中分別是20/20=100%    0/20=0%

(1)0-1損失

(2)log損失:log_loss,logistic/負log似然損失。

(1)混淆矩陣

可以用於二分類,有可以用於多分類(如shou手寫數字識別)

(2)前面介紹的precision、recall

(3)roc:面積auc

不僅僅只考慮precision或者recall,而是綜合考慮。roc:tpr(就是recall)+fpr(將多少個假的**成了真的)

通常,如a、b曲線,我們會選擇a。

但如果曲線是不規則的,我們會計算auc值(曲線的面積),判別大小,取auc最大的曲線。

(4)pr:面積ap

當負樣本非常多時,fpr很小。

(5)在現代web資訊檢索中,recall意義不大了(進本上都能查到,但是查到的資訊很多,人們只關心部分)。

改用precision@k,如precision@10,意味著只關注前10個查詢到的資料。

(6)將precision和recall值結合在一起:f1分數,稱為precision和recall的調和平均。

(1)每乙個學習器都有乙個score函式(回歸中預設的就是r2 score),分類中預設的是正確率(mean accuracy)。

from sklearn.linear_model import linearregression

lr = linearregression()

lr.fit(x_train, y_train)

#方式1

y_test_pred_lr = lr.predict(x_test)

y_train_pred_lr = lr.predict(x_train)

print('測試集的評價指標:', r2_score(y_test, y_test_pred_lr))

print('訓練集的評價指標', r2_score(y_train, y_train_pred_lr))

#方式2(必須先fit才行)

print("test:",lr.score(x_test,y_test))

print("train:",lr.score(x_train,y_train))

(2)在交叉驗證時(評估模型效能),scoring引數,它就可以指定選用哪種評價指標。

model_selection.cross_val_score、model_selection.gridsearchcv、xxcv類中有scoring引數(最佳引數為最大scoring模型對應的引數)。

由於要評價模型,交叉驗證gridsearchcv會自動保留最佳的引數、最佳的分數、最佳的模型。scoring的評價指標要越大越好。

如果採用損失/誤差(損失越小越好)類函式的話,需要加上負號,即負損失越大越好。如:log_loss==>net_log_loss

(3)metric模組,提供了一些其他的評價指標

(4)乙個特定的任務,sklearn不支援,怎麼辦?

no1:metric裡面定義了一些積分函式,如fbeta_score,對其進行變換,將beta設定為2。

no2:自己寫評價函式

(5)classification metrics模組:pr、roc等

一般競賽中,會規定我們用哪個評價指標。我們就可以將這個評價指標作為交叉驗證中的scoring引數即可。

分類模型的評價

1 二分類模型 指標計算 備註精準率 precision precision tp tp fp 在所有被 為陽性的測試資料中,真正是陽性的比率。越大越好 召回率 recall recall tp tp fn 在所有實際為陽性的測試資料中,真正是陽性的比率。越大越好 f1score f1score 2...

分類模型的評價指標Fscore

小書匠 深度學習 分類方法常用的評估模型好壞的方法.假設我現在有乙個二分類任務,是分析100封郵件是否是垃圾郵件,其中不是垃圾郵件有65封,是垃圾郵件有35封.模型最終給郵件的結論只有兩個 是垃圾郵件與 不是垃圾郵件.經過自己的努力,自己設計了模型,得到了結果,分類結果如下 現在我們設定,不是垃圾郵...

如何評價我們分類模型的效能?

分類是將每個資料集合中的元素分配給乙個已知的資料類別。那麼分類都有哪些任務呢?這個階段將資料分為兩個或三個部分 這裡有兩種指標可以來評估乙個分類模型的質量 二分類 乙個類別被定義為正樣本,乙個類別被定義為負樣本。多分類乙個類別被定義為正類,其他類別的組合都是被定義為負類。正樣本應該是在建模過程中被識...