面試:一.特征工程與模型評估

??俗話說,“巧婦難為無米之炊”。在機器學(xué)習(xí)中,數(shù)據(jù)和特征便是“米”,模型和算法則是“巧婦”。沒有充足的數(shù)據(jù)、合適的特征,再強大的模型結(jié)構(gòu)也無法得到滿意的輸出。正如一句業(yè)界經(jīng)典的話所說,“Garbage in,garbage out”。對于一個機器學(xué)習(xí)問題,數(shù)據(jù)和特征往往決定了結(jié)果的上限,而模型、算法的選擇及優(yōu)化則是在逐步接近這個上限。

??特征工程,顧名思義,是對原始數(shù)據(jù)進行一系列工程處理,將其提煉為特征,作為輸入供算法和模型使用。從本質(zhì)上來講,特征工程是一個表示和展現(xiàn)數(shù)據(jù)的過程。在實際工作中,特征工程旨在去除原始數(shù)據(jù)中的雜質(zhì)和冗余,設(shè)計更高效的特征以刻畫求解的問題與預(yù)測模型之間的關(guān)系。

  • 常用的兩種數(shù)據(jù)類型。
    • 結(jié)構(gòu)化數(shù)據(jù)。結(jié)構(gòu)化數(shù)據(jù)類型可以看作關(guān)系型數(shù)據(jù)庫的一張表,每列都有清晰的定義,包含了數(shù)值型、類別型兩種基本類型;每一行數(shù)據(jù)表示一個樣本的信息。
    • 非結(jié)構(gòu)化數(shù)據(jù)。非結(jié)構(gòu)化數(shù)據(jù)主要包括文本、圖像、音頻、視頻數(shù)據(jù),其包含的信息無法用一個簡單的數(shù)值表示,也沒有清晰的類別定義,并且每條數(shù)據(jù)的大小各不相同。

1.為什么需要對數(shù)值類型的特征做歸一化?

  • 為了消除數(shù)據(jù)特征之間的量綱影響,我們需要對特征進行歸一化處理,使得不同指標(biāo)之間具有可比性。例如,分析一個人的身高和體重對健康的影響,如果使用米(m)和千克(kg)作為單位,那么身高特征會在1.6~1.8m的數(shù)值范圍內(nèi),體重特征會在50~100kg的范圍內(nèi),分析出來的結(jié)果顯然會傾向于數(shù)值差別比較大的體重特征。想要得到更為準(zhǔn)確的結(jié)果,就需要進行特征歸一化處理,使各指標(biāo)處于同一數(shù)值量級,以便進行分析。
  • 不妨借助隨機梯度下降的實例來說明歸一化的重要性。假設(shè)有兩種數(shù)值型特征,x1的取值范圍為 [0, 10],x2的取值范圍為[0, 3],在學(xué)習(xí)速率相同的情況下,x1的更新速度會大于x2,需要較多的迭代才能找到最優(yōu)解。如果將x1和x2歸一化到相同的數(shù)值區(qū)間后,優(yōu)化目標(biāo)的等值圖會變成圓形,x1和x2的更新速度變得更為一致,容易更快地通過梯度下降找到最優(yōu)解。

2.常用的歸一化手段有哪些?

  • 對數(shù)值類型的特征做歸一化可以將所有的特征都統(tǒng)一到一個大致相同的數(shù)值區(qū)間內(nèi)。最常用的方法主要有以下兩種。
    • 線性函數(shù)歸一化(Min-Max Scaling)。它對原始數(shù)據(jù)進行線性變換,使結(jié)果映射到[0, 1]的范圍,實現(xiàn)對原始數(shù)據(jù)的等比縮放。歸一化公式如下X_{norm}=\frac{x-x_{min}}{x_{max}-x_{min}}
    • 零均值歸一化(Z-Score Normalization)。它會將原始數(shù)據(jù)映射到均值為0、標(biāo)準(zhǔn)差為1的分布上。具體來說,假設(shè)原始特征的均值為μ、標(biāo)準(zhǔn)差為σ,那么歸一化公式定義為z=\frac{x-\mu }{\sigma }

3.哪些算法適合歸一化,哪些不適合歸一化?

  • 數(shù)據(jù)歸一化并不是萬能的。在實際應(yīng)用中,通過梯度下降法求解的模型通常是需要歸一化的,包括線性回歸、邏輯回歸、支持向量機、神經(jīng)網(wǎng)絡(luò)等模型。但對于決策樹模型則并不適用,以C4.5為例,決策樹在進行節(jié)點分裂時主要依據(jù)數(shù)據(jù)集D關(guān)于特征x的信息增益比,而信息增益比跟特征是否經(jīng)過歸一化是無關(guān)的,因為歸一化并不會改變樣本在特征x上的信息增益。

4.在對數(shù)據(jù)進行預(yù)處理時,應(yīng)該怎樣處理類別型特征?

  • 類別型特征(Categorical Feature)主要是指性別(男、女)、血型(A、B、AB、O)等只在有限選項內(nèi)取值的特征。類別型特征原始輸入通常是字符串形式,除了決策樹等少數(shù)模型能直接處理字符串形式的輸入,對于邏輯回歸、支持向量機等模型來說,類別型特征必須經(jīng)過處理轉(zhuǎn)換成數(shù)值型特征才能正確工作。
  • 類別型特征通常三種處理方式:序號編碼(Ordinal Encoding)、獨熱編碼(One-hot Encoding)、二進制編碼(Binary Encoding)。
    • 序號編碼。序號編碼通常用于處理類別間具有大小關(guān)系的數(shù)據(jù)。例如成績,可以分為低、中、高三檔,并且存在“高>中>低”的排序關(guān)系。序號編碼會按照大小關(guān)系對類別型特征賦予一個數(shù)值ID,例如高表示為3、中表示為2、低表示為1,轉(zhuǎn)換后依然保留了大小關(guān)系。
    • 獨熱編碼。獨熱編碼通常用于處理類別間不具有大小關(guān)系的特征。例如血型,一共有4個取值(A型血、B型血、AB型血、O型血),獨熱編碼會把血型變成一個4維稀疏向量,A型血表示為(1, 0, 0, 0),B型血表示為(0, 1, 0, 0),AB型表示為(0, 0,1, 0),O型血表示為(0, 0, 0, 1)。
    • 二進制編碼。二進制編碼主要分為兩步,先用序號編碼給每個類別賦予一個類別ID,然后將類別ID對應(yīng)的二進制編碼作為結(jié)果。以A、B、AB、O血型為例,A型血的ID為1,二進制表示為001;B型血的ID為2,二進制表示為010;以此類推可以得到AB型血和O型血的二進制表示。可以看出,二進制編碼本質(zhì)上是利用二進制對ID進行哈希映射,最終得到0/1特征向量,且維數(shù)少于獨熱編碼,節(jié)省了存儲空間。
    • 其他的編碼方式,比如Helmert Contrast、Sum Contrast、Polynomial Contrast、Backward Difference Contrast等。
    • 對于類別取值較多的情況下使用獨熱編碼需要注意以下問題。
      • 使用稀疏向量來節(jié)省空間。在獨熱編碼下,特征向量只有某一維取值為1,其他位置取值均為0。因此可以利用向量的稀疏表示有效地節(jié)省空間,并且目前大部分的算法均接受稀疏向量形式的輸入。
      • 配合特征選擇來降低維度。高維度特征會帶來幾方面的問題。一是在K近鄰算法中,高維空間下兩點之間的距離很難得到有效的衡量;二是在邏輯回歸模型中,參數(shù)的數(shù)量會隨著維度的增高而增加,容易引起過擬合問題;三是通常只有部分維度是對分類、預(yù)測有幫助,因此可以考慮配合特征選擇來降低維度。

5.什么是組合特征?如何處理高維組合特征?

  • 在特征工程中經(jīng)常會把一階離散特征兩兩組合,構(gòu)成高階組合特征。
  • 若用戶的數(shù)量為m、物品的數(shù)量為n,那么需要學(xué)習(xí)的參數(shù)的規(guī)模為m×n。在互聯(lián)網(wǎng)環(huán)境下,用戶數(shù)量和物品數(shù)量都可以達到千萬量級,幾乎無法學(xué)習(xí)m×n規(guī)模的參數(shù)。在這種情況下,一種行之有效的方法是將用戶和物品分別用k維的低維向量表示。

6.怎樣有效地找到組合特征?

  • 一種基于決策樹的特征組合尋找方法。并且根據(jù)原始輸入和標(biāo)簽(點擊/未點擊)構(gòu)造出了決策樹,于是,每一條從根節(jié)點到葉節(jié)點的路徑都可以看成一種特征組合的方式。滿足該路徑就記為1,不滿足就記為0。

7.有哪些評估指標(biāo)?

  • 模型評估主要分為離線評估和在線評估兩個階段。針對分類、排序、回歸、序列預(yù)測等不同類型的機器學(xué)習(xí)問題,評估指標(biāo)的選擇也有所不同。在諸多的評估指標(biāo)中,大部分指標(biāo)只能片面地反映模型的一部分性能。如果不能合理地運用評估指標(biāo),不僅不能發(fā)現(xiàn)模型本身的問題,而且會得出錯誤的結(jié)論。
  • 準(zhǔn)確率(Accuracy),精確率(Precision),召回率(Recall),均方根誤差(Root Mean Square Error,RMSE)

8.準(zhǔn)確率(Accuracy)的局限性?

  • 準(zhǔn)確率是指分類正確的樣本占總樣本個數(shù)的比例。準(zhǔn)確率存在明顯的缺陷。比如,當(dāng)負樣本占99%時,分類器把所有樣本都預(yù)測為負樣本也可以獲得99%的準(zhǔn)確率。所以,當(dāng)不同類別的樣本比例非常不均衡時,占比大的類別往往成為影響準(zhǔn)確率的最主要因素。為了解決這個問題,可以使用更為有效的平均準(zhǔn)確率(每個類別下的樣本準(zhǔn)確率的算術(shù)平均)作為模型評估的指標(biāo)。
  • 其實也不限于指標(biāo)的選擇,即使評估指標(biāo)選擇對了,仍會存在模型過擬合欠擬合、測試集和訓(xùn)練集劃分不合理、線下評估與線上測試的樣本分布存在差異等一系列問題,但評估指標(biāo)的選擇是最容易被發(fā)現(xiàn),也是最可能影響評估結(jié)果的因素。

9.精確率與召回率的權(quán)衡

  • 精確率是指分類正確的正樣本個數(shù)占分類器判定為正樣本的樣本個數(shù)的比例。召回率是指分類正確的正樣本個數(shù)占真正的正樣本個數(shù)的比例
  • 在排序問題中,通常沒有一個確定的閾值把得到的結(jié)果直接判定為正樣本或負樣本,而是采用Top N返回結(jié)果的Precision值和Recall值來衡量排序模型的性能,即認為模型返回的Top N的結(jié)果就是模型判定的正樣本,然后計算前N個位置上的準(zhǔn)確率Precision@N和前N個位置上的召回率Recall@N。
  • 為了綜合評估一個排序模型的好壞,不僅要看模型在不同Top N下的Precision@N和Recall@N,而且最好繪制出模型的P-R(Precision-Recall)曲線。P-R曲線的橫軸是召回率縱軸是精確率。P-R曲線上的一個點代表著,在某一閾值下,模型將大于該閾值的結(jié)果判定為正樣本,小于該閾值的結(jié)果判定為負樣本,此時返回結(jié)果對應(yīng)的召回率和精確率。整條P-R曲線是通過將閾值從高到低移動而生成的。原點附近代表當(dāng)閾值最大,因為閾值大,所有的樣本都被判定為負樣本,此時召回率為0,精確率的分子和分母都很小,其比值無限的接近于1。
  • 只用某個點對應(yīng)的精確率和召回率是不能全面地衡量模型的性能,只有通過P-R曲線的整體表現(xiàn),才能夠?qū)δP瓦M行更為全面的評估。
  • F1 score和ROC曲線也能綜合地反映一個排序模型的性能。F1 score是精準(zhǔn)率和召回率的調(diào)和平均值。

10.平方根誤差的“意外”。

  • RMSE的計算公式為 RMSE=\sqrt{\frac{\sum_{i=1}^{n}(y_{i}-\hat{y_{i}})^{2}}{n}}
  • 構(gòu)建一個回歸模型來預(yù)測某種趨勢,但無論采用哪種回歸模型,得到的RMSE指標(biāo)都非常高。然而事實是,模型在95%的時間區(qū)間內(nèi)的預(yù)測誤差都小于1%,取得了相當(dāng)不錯的預(yù)測結(jié)果。那么,造成RMSE指標(biāo)居高不下的最可能的原因是什么?
  • 一般情況下,RMSE能夠很好地反映回歸模型預(yù)測值與真實值的偏離程度。但在實際問題中,如果存在個別偏離程度非常大的離群點(Outlier)時,即使離群點數(shù)量非常少,也會讓RMSE指標(biāo)變得很差?;氐絾栴}中來,模型在95%的時間區(qū)間內(nèi)的預(yù)測誤差都小于1%,這說明,在大部分時間區(qū)間內(nèi),模型的預(yù)測效果都是非常優(yōu)秀的。然而,RMSE卻一直很差,這很可能是由于在其他的5%時間區(qū)間內(nèi)存在非常嚴重的離群點。事實上,在流量預(yù)估這個問題中,噪聲點確實是很容易產(chǎn)生的,比如流量特別小的美劇、剛上映的美劇或者剛獲獎的美劇,甚至一些相關(guān)社交媒體突發(fā)事件帶來的流量,都可能會造成離群點。
  • 針對這個問題,有什么解決方案呢?可以從三個角度來思考。
    • 第一,如果我們認定這些離群點是“噪聲點”的話,就需要在數(shù)據(jù)預(yù)處理的階段把這些噪聲點過濾掉。
    • 第二,如果不認為這些離群點是“噪聲點”的話,就需要進一步提高模型的預(yù)測能力,將離群點產(chǎn)生的機制建模進去。
    • 第三,可以找一個更合適的指標(biāo)來評估該模型。關(guān)于評估指標(biāo),其實是存在比RMSE的魯棒性更好的指標(biāo),比如平均絕對百分比誤差(Mean AbsolutePercent Error,MAPE)。相比RMSE,MAPE相當(dāng)于把每個點的誤差進行了歸一化,降低了個別離群點帶來的絕對誤差的影響。它定義為MAPE=\sum_{i=1}^{n}\left | \frac{y_{i}-\hat{y_{i}}}{y_{i}} \right |*\frac{100}{n}
  • 選擇合適的評估指標(biāo)的重要性,每個評估指標(biāo)都有其價值,但如果只從單一的評估指標(biāo)出發(fā)去評估模型,往往會得出片面甚至錯誤的結(jié)論;只有通過一組互補的指標(biāo)去評估模型,才能更好地發(fā)現(xiàn)并解決模型存在的問題,從而更好地解決實際業(yè)務(wù)場景中遇到的問題。

11.什么是ROC曲線?

  • ROC曲線是Receiver Operating Characteristic Curve的簡稱,中文名為“受試者工作特征曲線”。ROC曲線的橫坐標(biāo)為假陽性率(False Positive Rate,F(xiàn)PR)縱坐標(biāo)為真陽性率(True Positive Rate,TPR)。FPR和TPR的計算方法分別為FPR=FP/N, TPR=TP/P 上式中,F(xiàn)P是N個負樣本中被分類器預(yù)測為正樣本的個數(shù),TP是P個正樣本中被分類器預(yù)測為正樣本的個數(shù),N是真實的負樣本的數(shù)量,P是真實的正樣本的數(shù)量。

12.如何繪制ROC曲線?

  • 事實上,ROC曲線是通過不斷移動分類器的“截斷點”來生成曲線上的一組關(guān)鍵點的,“截斷點”指的就是區(qū)分正負預(yù)測結(jié)果的閾值。假設(shè)模型輸出的是預(yù)測樣本為正例的概率。樣本按照預(yù)測概率從高到低排序。在輸出最終的正例、負例之前,我們需要指定一個閾值,預(yù)測概率大于該閾值的樣本會被判為正例,小于該閾值的樣本則會被判為負例。
  • 通過動態(tài)地調(diào)整截斷點,從最高的得分開始(實際上是從正無窮開始,對應(yīng)著ROC曲線的零點),逐漸調(diào)整到最低得分,每一個截斷點都會對應(yīng)一個FPR和TPR,在ROC圖上繪制出每個截斷點對應(yīng)的位置,直到畫出全部的關(guān)鍵點,再連接關(guān)鍵點即得到最終的ROC曲線。當(dāng)截斷點選擇為正無窮時,模型把全部樣本預(yù)測為負例,那么FP和TP必然都為0,F(xiàn)PR和TPR也都為0,因此曲線的第一個點的坐標(biāo)就是(0,0)。

13.如何計算AUC?

  • AUC指的是ROC曲線下的面積大小,該值能夠量化地反映基于ROC曲線衡量出的模型性能。計算AUC值只需要沿著ROC橫軸做積分就可以了。AUC的取值一般在0.5~1之間。AUC越大,說明分類器越可能把真正的正樣本排在前面,分類性能越好

14.ROC曲線相比P-R曲線有什么特點?

  • 相比P-R曲線,ROC曲線有一個特點,當(dāng)正負樣本的分布(正負樣本的比例)發(fā)生變化時,ROC曲線的形狀能夠基本保持不變,而P-R曲線的形狀一般會發(fā)生較劇烈的變化。ROC曲線形狀基本不變。這個特點讓ROC曲線能夠盡量降低不同測試集帶來的干擾,更加客觀地衡量模型本身的性能。這有什么實際意義呢?在很多實際問題中,正負樣本數(shù)量往往很不均衡。若選擇不同的測試集,P-R曲線的變化就會非常大,而ROC曲線則能夠更加穩(wěn)定地反映模型本身的好壞。。但需要注意的是,選擇P-R曲線還是ROC曲線是因?qū)嶋H問題而異的,如果研究者希望更多地看到模型在特定數(shù)據(jù)集上的表現(xiàn),P-R曲線則能夠更直觀地反映其性能。

15.為什么在一些場景中要使用余弦相似度而不是歐氏距離?

  • 通常將特征表示為向量的形式,所以在分析兩個特征向量之間的相似性時,常使用余弦相似度來表示。余弦相似度的取值范圍是[?1,1],相同的兩個向量之間的相似度為1。如果希望得到類似于距離的表示,將1減去余弦相似度即為余弦距離。因此,余弦距離的取值范圍為[0,2],相同的兩個向量余弦距離為0。
  • 對于兩個向量A和B,其余弦相似度定義為 COS(A,B)=\frac{A\cdot B}{\left \| A \right \|_{2}\left \| B \right \|_{2}}
  • 余弦相似度即兩個向量夾角的余弦,關(guān)注的是向量之間的角度關(guān)系,并不關(guān)心它們的絕對大小。當(dāng)一對文本相似度的長度差距很大、但內(nèi)容相近時,如果使用詞頻或詞向量作為特征,它們在特征空間中的的歐氏距離通常很大;而如果使用余弦相似度的話,它們之間的夾角可能很小,因而相似度高。此外,在文本、圖像、視頻等領(lǐng)域,研究的對象的特征維度往往很高,余弦相似度在高維情況下依然保持“相同時為1,正交時為0,相反時為?1”的性質(zhì),而歐氏距離的數(shù)值則受維度的影響,范圍不固定,并且含義也比較模糊。
  • 總體來說,歐氏距離體現(xiàn)數(shù)值上的絕對差異,而余弦距離體現(xiàn)方向上的相對差異。例如,統(tǒng)計兩部劇的用戶觀看行為,用戶A的觀看向量為(0,1),用戶B為(1,0);此時二者的余弦距離很大,而歐氏距離很小;我們分析兩個用戶對于不同視頻的偏好,更關(guān)注相對差異,顯然應(yīng)當(dāng)使用余弦距離。而當(dāng)我們分析用戶活躍度,以登陸次數(shù)(單位:次)和平均觀看時長(單位:分鐘)作為特征時,余弦距離會認為(1,10)、(10,100)兩個用戶距離很近;但顯然這兩個用戶活躍度是有著極大差異的,此時我們更關(guān)注數(shù)值絕對差異,應(yīng)當(dāng)使用歐氏距離。

16.余弦距離是否是一個嚴格定義的距離?

  • 余弦距離:將1減去余弦相似度。因此,余弦距離的取值范圍為[0,2],相同的兩個向量余弦距離為0。公式如下:dist(A,B)=1-cos\theta =\frac{\left \| A \right \|_{2}\cdot\left \| B \right \|_{2}-A\cdot B }{\left \| A \right \|_{2}\cdot \left \| B \right \|_{2}}
  • 距離的定義:在一個集合中,如果每一對元素均可唯一確定一個實數(shù),使得三條距離公理(正定性,對稱性,三角不等式)成立,則該實數(shù)可稱為這對元素之間的距離。
  • 余弦距離滿足正定性和對稱性,但是不滿足三角不等式,因此它并不是嚴格定義的距離。
    • 正定性:\left \| A \right \|_{2}\cdot\left \| B \right \|_{2}-A\cdot B >=0
    • 對稱性:dist(A,B)=\frac{\left \| A \right \|_{2}\cdot\left \| B \right \|_{2}-A\cdot B }{\left \| A \right \|_{2}\cdot \left \| B \right \|_{2}}=\frac{\left \| B \right \|_{2}\cdot\left \| A \right \|_{2}-B\cdot A }{\left \| B \right \|_{2}\cdot \left \| A \right \|_{2}}=dist(B,A)
    • 三角不等式性:給定A=(1,0),B=(1,1),C=(0,1),dist(A,B)=1-\frac{\sqrt{2}}{2}, dist(B,C)=1-\frac{\sqrt{2}}{2}, dist(A,c)=1 因此有dist(A,B)+dist(B,C)=2-\sqrt{2}<1=dist(A,C)
  • 在機器學(xué)習(xí)領(lǐng)域,被俗稱為距離,卻不滿足三條距離公理的不僅僅有余弦距離,還有KL距離(Kullback-Leibler Divergence),也叫作相對熵,它常用于計算兩個分布之間的差異,但不滿足對稱性和三角不等式。

17.在對模型進行過充分的離線評估之后,為什么還要進行在線A/B測試?

  • 需要進行在線A/B測試的原因如下。
    • 離線評估無法完全消除模型過擬合的影響,因此,得出的離線評估結(jié)果無法完全替代線上評估結(jié)果。
    • 離線評估無法完全還原線上的工程環(huán)境。一般來講,離線評估往往不會考慮線上環(huán)境的延遲、數(shù)據(jù)丟失、標(biāo)簽數(shù)據(jù)缺失等情況。因此,離線評估的結(jié)果是理想工程環(huán)境下的結(jié)果。
    • 線上系統(tǒng)的某些商業(yè)指標(biāo)在離線評估中無法計算。離線評估一般是針對模型本身進行評估,而與模型相關(guān)的其他指標(biāo),特別是商業(yè)指標(biāo),往往無法直接獲得。比如,上線了新的推薦算法,離線評估往往關(guān)注的是ROC曲線、P-R曲線等的改進,而線上評估可以全面了解該推薦算法帶來的用戶點擊率、留存時長、PV訪問量等的變化。這些都要由A/B測試來進行全面的評估。

18.如何進行線上A/B測試?

  • 進行A/B測試的主要手段是進行用戶分桶,即將用戶分成實驗組和對照組,對實驗組的用戶施以新模型,對對照組的用戶施以舊模型。在分桶的過程中,要注意樣本的獨立性和采樣方式的無偏性,確保同一個用戶每次只能分到同一個桶中,在分桶過程中所選取的user_id需要是一個隨機數(shù),這樣才能保證桶中的樣本是無偏的。

19.如何劃分實驗組和對照組?

  • 針對系統(tǒng)中的“美國用戶”研發(fā)了一套全新的視頻推薦模型A,而目前正在使用的針對全體用戶的推薦模型是B。在正式上線之前,工程師們希望通過A/B測試來驗證新推薦模型的效果下面有三種實驗組和對照組的劃分方法,請指出哪種劃分方法是正確的?
    • 根據(jù)id個位數(shù)的奇偶性將用戶劃分為實驗組和對照組,對實驗組施以模型A,對照組施以模型B;
    • 將id個位數(shù)為奇數(shù)且為美國用戶的作為實驗組,其余用戶為對照組;
    • 將id個位數(shù)為奇數(shù)且為美國用戶的作為實驗組,id個位數(shù)為偶數(shù)的用戶作為對照組。
  • 上述3種A/B測試的劃分方法都不正確。正確的做法是將所有美國用戶根據(jù)id個位數(shù)劃分為試驗組合對照組,分別施以模型A和B,才能夠驗證模型A的效果。

20.模型評估的方法

  • 在模型評估過程中,有哪些主要的驗證方法,它們的優(yōu)缺點是什么? Holdout檢驗,交叉驗證,自助法(Bootstrap),微積分
    • Holdout檢驗。Holdout 檢驗是最簡單也是最直接的驗證方法,它將原始的樣本集合隨機劃分成訓(xùn)練集和驗證集兩部分。Holdout 檢驗的缺點很明顯,即在驗證集上計算出來的最后評估指標(biāo)與原始分組有很大關(guān)系。為了消除隨機性,研究者們引入了“交叉檢驗”的思想。
    • 交叉檢驗。k-fold交叉驗證:首先將全部樣本劃分成k個大小相等的樣本子集;依次遍歷這k個子集,每次把當(dāng)前子集作為驗證集,其余所有子集作為訓(xùn)練集,進行模型的訓(xùn)練和評估;最后把k次評估指標(biāo)的平均值作為最終的評估指標(biāo)。在實際實驗中,k經(jīng)常取10。留一驗證:每次留下1個樣本作為驗證集,其余所有樣本作為測試集。因此它的時間開銷大,故而很少在實際工程中被應(yīng)用。
    • 自助法。不管是Holdout檢驗還是交叉檢驗,都是基于劃分訓(xùn)練集和測試集的方法進行模型評估的。然而,當(dāng)樣本規(guī)模比較小時,將樣本集進行劃分會讓訓(xùn)練集進一步減小,這可能會影響模型訓(xùn)練效果。有沒有能維持訓(xùn)練集樣本規(guī)模的驗證方法呢?自助法可以比較好地解決這個問題。自助法是基于自助采樣法的檢驗方法。對于總數(shù)為n的樣本集合,進行n次有放回的隨機抽樣,得到大小為n的訓(xùn)練集。n次采樣過程中,有的樣本會被重復(fù)采樣,有的樣本沒有被抽出過,將這些沒有被抽出的樣本作為驗證集,進行模型驗證,這就是自助法的驗證過程。在自助法的采樣過程中,對n個樣本進行n次自助抽樣,當(dāng)n趨于無窮大時,大約有36.8%的樣本從未被選擇過,可作為驗證集。

21.降低“過擬合”風(fēng)險的方法

  • 常見的降低過擬合的四種方法。
    • 從數(shù)據(jù)入手,獲得更多的訓(xùn)練數(shù)據(jù)。使用更多的訓(xùn)練數(shù)據(jù)是解決過擬合問題最有效的手段,因為更多的樣本能夠讓模型學(xué)習(xí)到更多更有效的特征,減小噪聲的影響。當(dāng)然,直接增加實驗數(shù)據(jù)一般是很困難的,但是可以通過一定的規(guī)則來擴充訓(xùn)練數(shù)據(jù)。比如,在圖像分類的問題上,可以通過圖像的平移、旋轉(zhuǎn)、縮放等方式擴充數(shù)據(jù);更進一步地,可以使用生成式對抗網(wǎng)絡(luò)來合成大量的新訓(xùn)練數(shù)據(jù)。
    • 降低模型復(fù)雜度。在數(shù)據(jù)較少時,模型過于復(fù)雜是產(chǎn)生過擬合的主要因素,適當(dāng)降低模型復(fù)雜度可以避免模型擬合過多的采樣噪聲。例如,在神經(jīng)網(wǎng)絡(luò)模型中減少網(wǎng)絡(luò)層數(shù)、神經(jīng)元個數(shù)等;在決策樹模型中降低樹的深度、進行剪枝等。
    • 正則化方法。給模型的參數(shù)加上一定的正則約束.
    • 集成學(xué)習(xí)方法。集成學(xué)習(xí)是把多個模型集成在一起,來降低單一模型的過擬合風(fēng)險,如Bagging方法

22.降低“欠擬合”風(fēng)險的方法

  • 常見的降低過擬合的四種方法。
    • 添加新特征。當(dāng)特征不足或者現(xiàn)有特征與樣本標(biāo)簽的相關(guān)性不強時,模型容易出現(xiàn)欠擬合。通過挖掘“上下文特征”“ID類特征”“組合特征”等新的特征,往往能夠取得更好的效果。在深度學(xué)習(xí)潮流中,有很多模型可以幫助完成特征工程,如因子分解機、梯度提升決策樹、Deep-crossing等都可以成為豐富特征的方法。
    • 增加模型復(fù)雜度。簡單模型的學(xué)習(xí)能力較差,通過增加模型的復(fù)雜度可以使模型擁有更強的擬合能力。例如,在線性模型中添加高次項,在神經(jīng)網(wǎng)絡(luò)模型中增加網(wǎng)絡(luò)層數(shù)或神經(jīng)元個數(shù)等。
    • 減小正則化系數(shù)。正則化是用來防止過擬合的,但當(dāng)模型出現(xiàn)欠擬合現(xiàn)象時,則需要有針對性地減小正則化系數(shù)。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。