[模型評估]Evaluation、Vaildation

sklearn evaluation(評估)

sklearn Estimator(model)通常類中有一個score方法來作為默認評分標準,而呼叫evaluation(例如:cross_val_score)有一個參數scoring可以另外指定評分標準,輸入為下圖的scoring字符串,傳入evaluation的Estimator還必須實現fitpredict方法(其實就是訓練(參數為x,y)跟預測(參數為x))。
可以自定義建立Estimator跟method搭配tensorflow或pytorch使用。

  • Scoring轉scorer
    有時候Scoring是loss(損失函數)越高表示模型表現越差,我們將損失轉成得分,越高分表示模型表現越好。
    sklearn.metrics.make_scorer

Scoring

非平衡數據正確性

  • 分類器
    一個常見的例子,我們預測一個人是否會得腦癌,而我們有個模型正確率為98%,我們的判斷方式是名子叫魯夫的人就會得腦癌。我們可以在精確率(預測為陽性且正確的比例)與召回率(實際為陽性預測正確的比例)之間做取捨。


sklearn指標
sklearn.metrics.recall_score召回


sklearn.metrics.precision_score精確

sklearn.metrics.balanced_accuracy_score平衡準確率

sklearn.metrics.accuracy_score準確率

  • 物件偵測計算同上
    通常物件偵測會計算IOU大於0.5為TP,小於0.5為FP。
    [class1]
    precision: 2/3=66% (判對class1 數量/被框為class1的數量),越低過檢越高。
    recall: 2/4=50% (判對class1 數量/所有class1樣本數),越低漏檢越高。
    [class2]
    precision: 1/1=100% (判對class2 數量 / 被框為class2 的數量),越低過檢越高。
    recall: 1/1=100% (判對class2 數量 / 所有class2 樣本數),越低漏檢越高。



    AP計算:
    計算類別曲線下面積(area under curve, AUC)



    mAP計算:
    計算所有類別AP的平均。

validation(驗證)

通常我們會將Data分成train set(訓練集)以及test set(測試集)來檢驗我們訓練的模型一般化能力,然而我們在訓練模型時,時常需要調整許多hyperparameter(超參數),所以我們會拿一部分資料來做validation(驗證)稱為validation set,來檢驗超參數的好壞,但是validation是不能拿test set來使用的,因為這等同於讓訓練模型去適應test set的資料,就失去測試一般化能力(適應訓練資料以外資料的能力)的意義了,最後test set測試的資料我們可以稱它為holdout set

這是最簡單的validation方式,將資料直接分成train、holdout 或train、validation、holdout。

Cross validation(交叉驗證)

sklearn.model_selection

  • K-fold CV
    K-fold是常用的交叉驗證方法,做法是將資料隨機平均分成k個集合,然後輪流使用k-1個不同集合來作validation,共做k-1次訓練,最後再使用沒作訓練的那一個holdout set測試訓練成果。
    k越大,每次投入的訓練集的數據越多,模型的bias越小。但是k越大,variance可能越高導致overfitting,同時k越大運算量越大。


    sklearn.model_selection.cross_val_score

  • Leave-one-out cross-validation(LOOCV)
    LOOCV是指我們一樣保留一部分資料作為holdout,但將剩餘的每一筆數據都作為一個集合,每作一次train就做一次validation。


    sklearn.model_selection.LeaveOneOut

    sklearn.model_selection.cross_val_score

hyperparameter最佳化

步驟1:給定超參數一個範圍,從設定超參數中隨機取樣。
步驟2:進行訓練,從驗證資料辨識準確度。
步驟3:重複前兩步驟多次,從結果慢慢縮小範圍。

sklearn.model_selection.fit_grid_point
sklearn.model_selection.GridSearchCV



underfitting、overfitting

hypothesis set(假設集)是我們假設的一個function set,例如: wx+b,我們選定參數(w、b)後的那個function稱predict(預測函數),例如: 2x+3
y 是我們真實產生數據的一個function,我們的數據是y |_x + noise(噪音) + error(誤差),noise通常有規律性(例如常態分怖),error為現實生活中數據可能因為人為、機器、測量等等產生誤差。

  1. high Bias即所謂的Underfitting,訓練與驗證loss很高(表示數據y與predic差異很大),可能是參數過少導致無法擬合訓練集(模型過於簡單),也可能是數據noise或error太大(數據質量太差),或是gradient descent無法到達最低點等等(超參數及模型需調整)。

    參數過少

    數據noise、error太大

  2. low Bias high Variance即所謂的Overfitting,訓練loss很低,但驗證loss卻很高。
    可能是參數過多導致過度擬合訓練集(模型太過複雜,需要降低複雜度、regularization或Dropout等),也可能是數據過少(沒有足夠的信息來判斷規則)等等。

    hypothesis set參數過多

    數據過少

underfitting與gradient descent關係

  • loss作圖
    這邊假設我們的hypothesis = wx+b,那麼 loss = (y-wx+b)^2,這邊2個變量(w、b)跟一個應變量(loss),其他x、y為常數(已知),我們可以用loss對y作圖(3維)。z軸是loss,另外兩軸是我們的hypothesis set參數(w、b)。
    但我們有多筆數據,例如250筆所以我們Loss改寫成:
    \frac{\Sigma_{i}^{250} (y_i - w x_i + b)}{250},換成n表示樣本數\frac{\Sigma_{i}^{n} (y_i - w x_i + b)}{n}
    所以我們求的是250筆資料疊加後的圖形,且一樣是三維圖形,可能是凸函數或非凸函數,當hypothesis越複雜(NN越深、或有許多非線性繳活函數)越會造成非凸函數。

    凸函數

    非凸函數

  • 函數疊加
    這邊再簡化hypothesis = wx來解釋疊加的圖形,假設有2筆數據,第一筆{x=2,y=0},第二筆{x=1,y=0},那麼\frac{\Sigma_{i}^{2} (y_i - w x_i)}{2}與他們的圖形如下圖:
    *由此可以得知sgd可能會更新不到實際的全局最小值。

  • 關係
    gradient descent就是從圖型中隨機選擇一個參數點(固定W、B),然後計算梯度,更新參數點作移動,停止條件是gtad=0(梯度、坡度等於零),如下圖:

underfitting,訓練與驗證loss高,1.有可能是圖型的全局最小值本身就很高,參數太少或數據noise或error太大導致,2.也有可能全局最小值很低但我們的權重更新不到全局最小值,可能是卡在鞍點、某個最高點、局部小值。

非凸函數

鞍點

Model evaluation

  • 調參小trick
    train前先使用一部分非常少的數據,先訓練看看是否能過擬合,如果不行可以檢查看看是不是有什麼地方寫錯了。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容

  • 今天要給大家分享的書是托馬斯戈登博士寫的「PET父母效能訓練手冊」,這本書的作者托馬斯戈登博士曾於1997、199...
    zoewyc阅读 296评论 0 0
  • YOLO 參考:http://www.studyai.com/article/65802b17149342a0ht...
    RJ阿杰阅读 1,048评论 0 0
  • 隨筆1-24(2015.6-10) 1、作者 才華不是財富,痛苦不是財富,用才華對痛苦進行思考和表達才是。於是有了...
    四葉阅读 1,480评论 3 14
  • 人生第一次坐飞机,去一个完全陌生的城市——成都,其实听到自己要出差心里没多大反应,该来的总是要来的,安静的接受就好...
    马钱子马baby阅读 351评论 0 0
  • 妈妈没文化,她不知道大她几岁的舒婷写过《致橡树》,但她亲身演绎了诗里的爱情,“你有你的铜枝铁干,像刀,像剑,也像戟...
    苏夏阅读 2,110评论 10 34