機器學習的模型效能評估,主要是確定在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 ...