如何評估機器學習模型的效能

2021-08-18 05:18:07 字數 2074 閱讀 2058

機器學習的模型效能評估,主要是確定在trainingset中的誤差,更重要的是在測試集的誤差,對新模型的學習能力,也就是所謂的泛化能力。

因此資料集的確定尤為重要,將樣本資料集分為trainingset 和 testingset,資料集的劃分要注意如下兩個方面:

1、盡量保證trainingset 和 testingset與樣本真實分布一致;

2、trainingset 和 testingset互斥;

滿足以上條件的資料劃分方法有三種:留出法k折交叉驗證法自助法

留出法:從樣本集中選擇一部分資料作為trainingset,其餘作為testingset;

需注意的點:需保證每個集合中的正負樣本比例與樣本集保持相同;

通常選擇2/3 - 4/5的樣本作為訓練集,其他作為測試集,否則容易過擬合和欠擬合;

# 資料抽樣

import numpy as np

x = np.random.rand(100,5)

np.random.shuffle(x)

training, test = x[:80,:],x[80,:]

# 將資料集按比例進行分離

iris = datasets.load_iris()

x_train, x_test, y_train, y_test = cross_validation.train_test_split(iris.data, iris.target, test_size=0.4, random_state=0)

k折交叉驗證:將樣本資料d分為k份,k-1份作為訓練集,1份作為測試集,可進行k次訓練與測試,最終返回k個測試結果的均值;一般會選擇k為10;

from sklearn.cross_validation import  cross_val_score

from sklearn.linear_model import linearregression

prediction = linearregression()

# 採用交叉驗證的方法,其中cv 為k折數

scores = cross_val_score(prediction, iris.data, iris.target, cv = 10, scoring='accuracy')

print "the mean score is: %s" % scores.mean()

自助法:採用有放回重複取樣的方式進行資料抽樣;缺點:該方法改變了資料的初始分布導致會引入估計偏差;

# 資料抽樣

import numpy as np

x = np.random.rand(100,5)

training_idx = np.random.randint(x.shape[0],size=30)

test_idx = np.random.randint(x.shape[0], size=20)

training, test = x[training_idx, :], x[test_idx, :]

使用方法總結:

1、資料量充足的時候,採用留出法或k折交叉驗證法

2、資料量小時用使用自助法

效能評估:

1、錯誤率/精度

樣本數m,**值 f(x) 與樣本 label 不一致的個數n, e = n/m

精度:1-e

2、準確率/召回率(查全率)

樣本數為m,正樣本個數p,負樣本個數q;

模型**後的結果:**為正的為 p1, **為負的p2

準確率= **為真且實際也為真(p與p1的交集)/**為真的個數(p1)

查全率= **為真且實際也為真(p與p1的交集)/實際為真的個數(p)

3、p-r曲線

4、roc曲線/auc(最常用)

5、代價曲線

6、計算速度

7、魯棒性

8、可擴充套件性

9、可解釋性

機器學習的模型評估

機器演算法有很多,各種模型的在不同的場景下各有優劣。所以需要一些方法來對機器學習的方法有乙個判斷。真實情況 正例反例 正例tp 真正例 fn 假反例 反例fp 假正例 tn 真反例 p tpt p fp r tptp fnroc reciever operating characteristic 是...

機器學習模型評估方法

分類模型評價度量 概率輸出型 這個有邏輯回歸 隨機森林 梯度提公升 adaboost等演算法,都是以概率作為輸出的。要想把概率型輸出變為分型別輸出,只要為其設立乙個閾值即可。positive predictive value 陽性 值 or precision 精度 陽性 值被 正確的比例。nega...

機器學習 模型評估指標

from sklearn.metrics import accuracy score print 準確率 accuracy score y true,y pred,normalize true print 正確分類的數量 accuracy score y true,y pred,normalize ...