戰(zhàn):從邏輯回歸到SVM與隨機(jī)森林的核心原理與應(yīng)用)
1. 從“預(yù)測(cè)”到“歸類”分類模型在數(shù)學(xué)建模中的角色轉(zhuǎn)變?cè)跀?shù)學(xué)建模的實(shí)戰(zhàn)中我們常常會(huì)遇到一類問(wèn)題目標(biāo)不再是預(yù)測(cè)一個(gè)具體的數(shù)值比如明天的氣溫、下個(gè)月的銷量而是要將研究對(duì)象“分門別類”。比如根據(jù)病人的各項(xiàng)體檢指標(biāo)判斷其是否患有某種疾病健康/患病根據(jù)一封郵件的文本特征識(shí)別它是正常郵件還是垃圾郵件正常/垃圾或者根據(jù)一家企業(yè)的財(cái)務(wù)數(shù)據(jù)評(píng)估其信用等級(jí)AAA/AA/A...。這類問(wèn)題的核心就是分類。“數(shù)學(xué)建模學(xué)習(xí)筆記八——分類模型”這個(gè)標(biāo)題指向的正是解決這類問(wèn)題的核心工具箱。與回歸模型關(guān)注“是多少”不同分類模型關(guān)注的是“屬于哪一類”。這不僅僅是輸出形式的變化其背后的數(shù)學(xué)思想、模型假設(shè)、評(píng)估標(biāo)準(zhǔn)都發(fā)生了根本性的轉(zhuǎn)變。很多初學(xué)者在從回歸轉(zhuǎn)向分類時(shí)會(huì)不自覺(jué)地套用線性回歸的思路直接對(duì)類別標(biāo)簽如0和1進(jìn)行擬合這往往會(huì)走入誤區(qū)。分類模型有自己的一套“玩法”理解這套玩法的底層邏輯比記住幾個(gè)算法名字要重要得多。在這篇筆記里我不想僅僅羅列KNN、決策樹、SVM這些算法名稱和調(diào)用代碼。我更想和你一起拆解當(dāng)我們面對(duì)一個(gè)分類問(wèn)題時(shí)完整的思考路徑應(yīng)該是怎樣的我們手頭的數(shù)據(jù)適合用什么模型不同模型到底是怎么“想”問(wèn)題的那個(gè)準(zhǔn)確率99%的模型真的就無(wú)敵了嗎在實(shí)際競(jìng)賽和項(xiàng)目中有哪些教科書上不會(huì)寫的“坑”和“技巧”我們將從最基礎(chǔ)、最經(jīng)典的模型入手剖析其原理對(duì)比其優(yōu)劣并深入到模型評(píng)估、樣本不平衡等實(shí)戰(zhàn)中必然遇到的棘手問(wèn)題。無(wú)論你是正在備戰(zhàn)數(shù)模競(jìng)賽的學(xué)生還是希望將分類方法應(yīng)用于實(shí)際工作的從業(yè)者這些從一次次調(diào)參、一次次失敗中總結(jié)出的經(jīng)驗(yàn)或許能幫你少走些彎路。2. 模型基石邏輯回歸——從線性到概率的橋梁當(dāng)我們談?wù)摲诸愑绕涫嵌诸惤Y(jié)果只有兩種通常編碼為0和1時(shí)邏輯回歸往往是第一個(gè)被想到的模型。它名字里帶有“回歸”但本質(zhì)是分類模型這本身就容易讓人困惑。它的核心思想是為線性回歸的輸出套上一個(gè)“概率轉(zhuǎn)換器”。2.1 為什么不能直接用線性回歸做分類設(shè)想一個(gè)簡(jiǎn)單的二分類問(wèn)題根據(jù)學(xué)習(xí)時(shí)間預(yù)測(cè)考試是否通過(guò)通過(guò)1不通過(guò)0。如果我們強(qiáng)行用普通線性回歸Y β? β?X去擬合會(huì)得到一條直線。這條直線會(huì)預(yù)測(cè)出諸如Y0.2或Y1.5這樣的值。這些值既不是0也不是1解釋起來(lái)很別扭0.2代表20%的可能性通過(guò)1.5代表150%的可能性這顯然不合理因?yàn)楦怕时仨氃?到1之間。更嚴(yán)重的是線性回歸的誤差項(xiàng)通常假設(shè)為正態(tài)分布而0/1標(biāo)簽的分布與此嚴(yán)重不符會(huì)導(dǎo)致參數(shù)估計(jì)有偏且預(yù)測(cè)值可能超出[0,1]范圍。因此我們需要一個(gè)模型能將線性組合z β? β?X? ... β?X?的結(jié)果映射到(0,1)區(qū)間內(nèi)并且這個(gè)映射函數(shù)最好是單調(diào)、光滑的。這就是Sigmoid函數(shù)或稱Logistic函數(shù)登場(chǎng)的原因。2.2 Sigmoid函數(shù)與“幾率”的概念Sigmoid函數(shù)的公式是σ(z) 1 / (1 e^{-z})。它的圖像是一條優(yōu)美的S型曲線將整個(gè)實(shí)數(shù)域z ∈ (-∞, ∞)平滑地壓縮到(0, 1)區(qū)間。當(dāng)z趨近于正無(wú)窮時(shí)σ(z)趨近于1當(dāng)z趨近于負(fù)無(wú)窮時(shí)σ(z)趨近于0當(dāng)z0時(shí)σ(z)0.5。在邏輯回歸中我們并不直接預(yù)測(cè)類別0或1而是預(yù)測(cè)樣本屬于正類標(biāo)記為1的概率即P(Y1|X) σ(z)。那么這個(gè)z是什么z就是我們特征變量的線性組合。由此我們得到了邏輯回歸的核心方程P 1 / (1 e^{-(β? β?X? ... β?X?)})為了更容易理解參數(shù)β的意義我們引入“幾率”的概念。幾率Odds是指事件發(fā)生的概率與不發(fā)生的概率之比Odds P / (1-P)。將上面的公式進(jìn)行變換可以得到P / (1-P) e^{β? β?X? ... β?X?}兩邊取自然對(duì)數(shù)ln(P / (1-P)) β? β?X? ... β?X?左邊ln(P / (1-P))稱為對(duì)數(shù)幾率。這個(gè)公式非常美妙它意味著邏輯回歸模型實(shí)際上是在用線性模型擬合輸出Y的對(duì)數(shù)幾率。因此參數(shù)β?就有了清晰的解釋在其他特征不變的情況下特征X?每增加一個(gè)單位其對(duì)應(yīng)的對(duì)數(shù)幾率將增加β?或者說(shuō)幾率將變?yōu)樵瓉?lái)的e^{β?}倍。如果β?是正數(shù)e^{β?}1說(shuō)明該特征對(duì)預(yù)測(cè)為正類有正向貢獻(xiàn)反之則為負(fù)向貢獻(xiàn)。注意這里的“幾率”是統(tǒng)計(jì)學(xué)概念與日常用語(yǔ)中的“概率”含義不同e^{β?}是幾率比解釋時(shí)務(wù)必謹(jǐn)慎避免說(shuō)成“概率增加了β?”。2.3 參數(shù)估計(jì)極大似然法與梯度下降線性回歸用最小二乘法估計(jì)參數(shù)目標(biāo)是讓預(yù)測(cè)值與真實(shí)值的平方誤差最小。但邏輯回歸的輸出是概率真實(shí)值是類別標(biāo)簽平方誤差不再適用。邏輯回歸采用極大似然估計(jì)。其思想是尋找一組參數(shù)β使得在這組參數(shù)下觀測(cè)到當(dāng)前這批樣本數(shù)據(jù)的可能性似然最大。對(duì)于單個(gè)樣本其似然函數(shù)是如果真實(shí)標(biāo)簽y1我們希望預(yù)測(cè)概率P盡量大如果y0我們希望1-P盡量大。可以統(tǒng)一寫為L(zhǎng)(β) P^y * (1-P)^{1-y}。對(duì)于所有獨(dú)立同分布的樣本整體似然函數(shù)是每個(gè)樣本似然的乘積。通常我們對(duì)其取對(duì)數(shù)對(duì)數(shù)似然函數(shù)將連乘變?yōu)檫B加便于求導(dǎo)優(yōu)化。LL(β) Σ [y_i * ln(P_i) (1-y_i) * ln(1-P_i)]我們的目標(biāo)就是最大化這個(gè)對(duì)數(shù)似然函數(shù)LL(β)。由于直接求解析解困難通常采用數(shù)值優(yōu)化方法如梯度下降法或其變種如隨機(jī)梯度下降、擬牛頓法來(lái)求解。梯度下降會(huì)沿著對(duì)數(shù)似然函數(shù)梯度增長(zhǎng)最快的方向逐步調(diào)整參數(shù)β直至找到最大值點(diǎn)。實(shí)操心得在實(shí)際調(diào)用sklearn.linear_model.LogisticRegression時(shí)其solver參數(shù)就是指定優(yōu)化算法。對(duì)于小數(shù)據(jù)集或特征不多的情況liblinear是不錯(cuò)的選擇對(duì)于大數(shù)據(jù)集sag或saga隨機(jī)平均梯度下降效率更高。另外務(wù)必要注意penalty正則化參數(shù)默認(rèn)的L2正則化能有效防止過(guò)擬合尤其是在特征較多或存在共線性時(shí)。3. 線性與非線性分界支持向量機(jī)SVM的幾何直覺(jué)如果說(shuō)邏輯回歸是從概率統(tǒng)計(jì)的視角切入分類那么支持向量機(jī)則是從幾何間隔最大化的視角為我們提供了另一種清晰而強(qiáng)大的思路。SVM的核心目標(biāo)是找到一個(gè)超平面不僅能將兩類樣本分開還要使兩類樣本中離這個(gè)超平面最近的點(diǎn)的距離即“間隔”盡可能大。這些最近的樣本點(diǎn)就被稱為“支持向量”它們決定了超平面的最終位置。3.1 硬間隔與軟間隔理想與現(xiàn)實(shí)的妥協(xié)在最理想的、線性可分的情況下SVM尋找的是“硬間隔”超平面。它要求所有樣本都被正確分類且間隔最大化。這可以轉(zhuǎn)化為一個(gè)凸二次規(guī)劃問(wèn)題有成熟的算法求解。然而現(xiàn)實(shí)中的數(shù)據(jù)往往不是完美線性可分的或者存在一些噪聲點(diǎn)。如果堅(jiān)持硬間隔可能會(huì)導(dǎo)致模型非常復(fù)雜過(guò)擬合或者根本找不到解。這時(shí)就需要引入“軟間隔”。軟間隔SVM允許一些樣本點(diǎn)違反間隔約束甚至被錯(cuò)誤分類但對(duì)這些“違規(guī)”行為施加懲罰。這個(gè)懲罰力度由一個(gè)超參數(shù)C來(lái)控制。C值很大意味著對(duì)分類錯(cuò)誤的懲罰很重模型會(huì)傾向于更少的誤分類間隔可能變窄模型更復(fù)雜容易過(guò)擬合。C值很小意味著對(duì)分類錯(cuò)誤的容忍度較高模型更追求“寬間隔”允許一些樣本點(diǎn)落在間隔內(nèi)或被誤分模型更簡(jiǎn)單可能欠擬合。C的選擇是SVM調(diào)參的關(guān)鍵之一通常需要通過(guò)交叉驗(yàn)證來(lái)確定。3.2 核技巧升維打擊解決非線性問(wèn)題SVM本質(zhì)上是線性分類器但通過(guò)“核技巧”它能巧妙地處理非線性分類問(wèn)題。其思想非常精妙如果原始特征空間中的數(shù)據(jù)線性不可分我們可以通過(guò)一個(gè)映射函數(shù)φ將數(shù)據(jù)映射到一個(gè)更高維甚至是無(wú)窮維的特征空間。在這個(gè)高維空間中數(shù)據(jù)可能就變得線性可分了。SVM在這個(gè)高維空間中尋找最優(yōu)超平面。但直接計(jì)算高維空間中的內(nèi)積φ(x_i)·φ(x_j)可能計(jì)算量巨大維度災(zāi)難。核技巧的精髓在于我們不需要知道映射函數(shù)φ的具體形式也不需要真的去高維空間計(jì)算只要找到一個(gè)函數(shù)K(x_i, x_j)它在原始空間的計(jì)算結(jié)果等于在高維空間的內(nèi)積結(jié)果即K(x_i, x_j) φ(x_i)·φ(x_j)。這個(gè)函數(shù)K就是核函數(shù)。常用的核函數(shù)有線性核K(x_i, x_j) x_i·x_j。就是原始空間的內(nèi)積退化為線性SVM。多項(xiàng)式核K(x_i, x_j) (γ * x_i·x_j r)^d。其中d是多項(xiàng)式次數(shù)γr是參數(shù)。徑向基函數(shù)核K(x_i, x_j) exp(-γ * ||x_i - x_j||^2)。這是最常用、最強(qiáng)大的核函數(shù)之一γ參數(shù)控制單個(gè)樣本的影響范圍。γ越大模型越復(fù)雜容易過(guò)擬合γ越小模型越平滑容易欠擬合。踩坑實(shí)錄核函數(shù)和參數(shù)的選擇極具藝術(shù)性。我曾在一個(gè)項(xiàng)目中用RBF核的SVM在訓(xùn)練集上達(dá)到了接近100%的準(zhǔn)確率欣喜若狂。但在測(cè)試集上卻一塌糊涂。這就是典型的過(guò)擬合。后來(lái)通過(guò)網(wǎng)格搜索交叉驗(yàn)證找到了一個(gè)合適的(C, γ)組合雖然訓(xùn)練集準(zhǔn)確率降到95%但測(cè)試集穩(wěn)定在92%以上泛化能力大大提升。切記在SVM中C和核參數(shù)如RBF的γ的調(diào)優(yōu)是必須的步驟不能只看訓(xùn)練集效果。3.3 SVM的優(yōu)缺點(diǎn)與適用場(chǎng)景優(yōu)點(diǎn)在高維空間中非常有效。當(dāng)特征維度遠(yuǎn)大于樣本數(shù)時(shí)仍然能較好地工作。決策函數(shù)只依賴于支持向量?jī)?nèi)存效率高。通過(guò)核函數(shù)可以靈活處理非線性問(wèn)題。缺點(diǎn)如果特征數(shù)量遠(yuǎn)大于樣本數(shù)量核函數(shù)的選擇和正則化項(xiàng)C就至關(guān)重要否則容易過(guò)擬合。不直接提供概率估計(jì)sklearn中可以通過(guò)probabilityTrue設(shè)置進(jìn)行概率校準(zhǔn)但會(huì)增加計(jì)算開銷。對(duì)缺失數(shù)據(jù)和參數(shù)調(diào)優(yōu)比較敏感。大規(guī)模訓(xùn)練樣本時(shí)訓(xùn)練速度可能較慢盡管有序列最小優(yōu)化等高效算法。適用場(chǎng)景SVM特別適用于小到中型、特征維度較高、且需要清晰決策邊界的分類問(wèn)題如圖像識(shí)別、文本分類等。4. 樹形結(jié)構(gòu)的力量從決策樹到隨機(jī)森林決策樹是一種非常直觀的“白盒”模型它模擬人類做決策的過(guò)程通過(guò)一系列“如果...那么...”的問(wèn)題最終得到一個(gè)結(jié)論。構(gòu)建一棵決策樹關(guān)鍵在于如何選擇每個(gè)節(jié)點(diǎn)上用于劃分?jǐn)?shù)據(jù)的特征。4.1 決策樹的核心特征選擇與劃分準(zhǔn)則決策樹學(xué)習(xí)的目的是為了產(chǎn)生一棵泛化能力強(qiáng)即處理未見示例能力強(qiáng)的樹。其生成是一個(gè)遞歸地選擇最優(yōu)劃分特征并根據(jù)該特征對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行分割使得各個(gè)子數(shù)據(jù)集有一個(gè)最好的分類的過(guò)程。這個(gè)過(guò)程對(duì)應(yīng)著對(duì)特征空間的劃分也對(duì)應(yīng)著決策樹的構(gòu)建。常用的特征選擇準(zhǔn)則有信息增益這是ID3算法使用的準(zhǔn)則。它基于信息論中的熵。熵表示隨機(jī)變量不確定性的度量。信息增益表示得知特征X的信息而使得類Y的信息的不確定性減少的程度。傾向于選擇分支數(shù)量多的特征有偏好。信息增益比C4.5算法對(duì)信息增益的改進(jìn)用信息增益除以該特征本身的熵稱為“分裂信息”來(lái)校正信息增益對(duì)可取值數(shù)目較多的特征的偏好。基尼指數(shù)CART樹用于分類的準(zhǔn)則。基尼指數(shù)表示一個(gè)隨機(jī)選中的樣本在子集中被分錯(cuò)的可能性。基尼指數(shù)越小集合的純度越高。與信息增益/信息增益比相比基尼指數(shù)的計(jì)算不涉及對(duì)數(shù)運(yùn)算速度稍快。以基尼指數(shù)為例對(duì)于數(shù)據(jù)集D其基尼值為Gini(D) 1 - Σ (p_k)^2其中p_k是第k類樣本所占的比例。 若根據(jù)特征A將D劃分為兩個(gè)子集D1和D2則劃分后的基尼指數(shù)為Gini(D, A) |D1|/|D| * Gini(D1) |D2|/|D| * Gini(D2)我們選擇那個(gè)使得Gini(D, A)最小的特征A作為當(dāng)前節(jié)點(diǎn)的劃分特征。4.2 剪枝對(duì)抗過(guò)擬合的必由之路決策樹非常容易過(guò)擬合它可以一直生長(zhǎng)直到每個(gè)葉子節(jié)點(diǎn)只包含一個(gè)樣本純度100%但這棵樹在訓(xùn)練集上準(zhǔn)確率100%在未知數(shù)據(jù)上往往表現(xiàn)很差。剪枝是決策樹學(xué)習(xí)算法中對(duì)付過(guò)擬合的主要手段。剪枝分為預(yù)剪枝和后剪枝預(yù)剪枝在樹生長(zhǎng)過(guò)程中對(duì)每個(gè)節(jié)點(diǎn)劃分前進(jìn)行估計(jì)若當(dāng)前節(jié)點(diǎn)的劃分不能帶來(lái)決策樹泛化性能的提升如驗(yàn)證集準(zhǔn)確率不再提高則停止劃分并將該節(jié)點(diǎn)標(biāo)記為葉節(jié)點(diǎn)。預(yù)剪枝降低了過(guò)擬合風(fēng)險(xiǎn)減少了訓(xùn)練時(shí)間但可能帶來(lái)欠擬合風(fēng)險(xiǎn)因?yàn)橛行┓种У漠?dāng)前劃分雖不能提升泛化性能但在其基礎(chǔ)上進(jìn)行的后續(xù)劃分卻有可能顯著提高性能。后剪枝先構(gòu)造一棵完整的決策樹然后自底向上地對(duì)非葉節(jié)點(diǎn)進(jìn)行考察若將該節(jié)點(diǎn)對(duì)應(yīng)的子樹替換為葉節(jié)點(diǎn)能帶來(lái)決策樹泛化性能的提升則將該子樹替換為葉節(jié)點(diǎn)。后剪枝通常比預(yù)剪枝保留了更多的分支欠擬合風(fēng)險(xiǎn)小但訓(xùn)練時(shí)間開銷更大。個(gè)人體會(huì)在實(shí)際使用sklearn.tree.DecisionTreeClassifier時(shí)我們通過(guò)參數(shù)來(lái)控制樹的復(fù)雜度和剪枝。max_depth最大深度和min_samples_leaf葉節(jié)點(diǎn)最少樣本數(shù)是最常用、最有效的預(yù)剪枝參數(shù)。通常我會(huì)先設(shè)置一個(gè)較大的max_depth比如10然后通過(guò)繪制“樹深度-交叉驗(yàn)證得分”曲線來(lái)觀察模型性能何時(shí)達(dá)到平臺(tái)期或開始下降從而確定一個(gè)合適的深度。盲目追求深度只會(huì)得到一棵在訓(xùn)練集上“完美”但無(wú)用的樹。4.3 集成學(xué)習(xí)隨機(jī)森林如何讓“樹”變得強(qiáng)大單棵決策樹不穩(wěn)定容易過(guò)擬合。而隨機(jī)森林通過(guò)Bagging集成思想和隨機(jī)特征選擇構(gòu)建了多棵決策樹并通過(guò)投票分類或平均回歸來(lái)得到最終結(jié)果顯著提升了模型的泛化能力和魯棒性。隨機(jī)森林的構(gòu)建過(guò)程自助采樣從原始訓(xùn)練集中有放回地隨機(jī)抽取n個(gè)樣本形成一個(gè)自助采樣集。該過(guò)程重復(fù)B次B即森林中樹的數(shù)量得到B個(gè)不同的訓(xùn)練子集。隨機(jī)特征對(duì)于每棵樹的每個(gè)節(jié)點(diǎn)不是從所有m個(gè)特征中選擇最優(yōu)劃分特征而是先隨機(jī)選取一個(gè)特征子集通常大小為sqrt(m)或log2(m)然后從這個(gè)子集中選擇最優(yōu)特征進(jìn)行劃分。這進(jìn)一步增強(qiáng)了樹之間的差異性。獨(dú)立生長(zhǎng)每棵樹都基于其對(duì)應(yīng)的訓(xùn)練子集和特征選擇策略獨(dú)立地生長(zhǎng)不進(jìn)行剪枝或僅進(jìn)行很弱的剪枝讓其充分生長(zhǎng)。集成輸出對(duì)于分類問(wèn)題B棵樹進(jìn)行投票對(duì)于回歸問(wèn)題取B棵樹輸出的平均值。為什么隨機(jī)森林有效降低方差通過(guò)平均多棵高方差、低偏差的樹決策樹容易過(guò)擬合即高方差有效降低了整體模型的方差。引入隨機(jī)性自助采樣和隨機(jī)特征選擇保證了樹之間的差異性使得集成模型更穩(wěn)定不易過(guò)擬合。天然評(píng)估在自助采樣過(guò)程中約有37%的樣本未被抽中這些“袋外”樣本可以用于評(píng)估單棵樹的性能進(jìn)而評(píng)估整個(gè)森林的性能無(wú)需單獨(dú)劃分驗(yàn)證集。實(shí)戰(zhàn)技巧隨機(jī)森林有兩個(gè)核心參數(shù)n_estimators樹的數(shù)量和max_features節(jié)點(diǎn)劃分時(shí)考慮的最大特征數(shù)。n_estimators越大越好但計(jì)算成本也越高通常增加到模型性能不再顯著提升即可。max_features是控制隨機(jī)性的關(guān)鍵默認(rèn)值sqrt(n_features)對(duì)于分類問(wèn)題通常是個(gè)好起點(diǎn)。隨機(jī)森林還能輸出特征重要性這是模型可解釋性的一個(gè)寶貴副產(chǎn)品可以幫助我們進(jìn)行特征篩選。5. 超越準(zhǔn)確率分類模型的評(píng)估與選擇陷阱模型建好了在訓(xùn)練集上準(zhǔn)確率高達(dá)98%是不是就大功告成了遠(yuǎn)非如此。在分類任務(wù)中尤其是類別不平衡或錯(cuò)誤代價(jià)不對(duì)稱的場(chǎng)景下準(zhǔn)確率是一個(gè)極具誤導(dǎo)性的指標(biāo)。5.1 混淆矩陣與更豐富的評(píng)估指標(biāo)假設(shè)我們有一個(gè)二分類問(wèn)題正類P負(fù)類N模型預(yù)測(cè)結(jié)果與真實(shí)情況對(duì)比會(huì)形成如下混淆矩陣真實(shí)情況 \ 預(yù)測(cè)結(jié)果預(yù)測(cè)為正類預(yù)測(cè)為負(fù)類實(shí)際為正類真正例假負(fù)例實(shí)際為負(fù)類假正例真負(fù)例從這個(gè)矩陣中我們可以衍生出多個(gè)關(guān)鍵指標(biāo)準(zhǔn)確率(TPTN) / (TPTNFPFN)。所有樣本中被正確分類的比例。在類別嚴(yán)重不平衡時(shí)如99%負(fù)例1%正例一個(gè)將所有樣本都預(yù)測(cè)為負(fù)類的“笨”模型準(zhǔn)確率也能達(dá)到99%但這毫無(wú)意義。精確率TP / (TPFP)。所有被預(yù)測(cè)為正類的樣本中真正是正類的比例。它關(guān)注的是預(yù)測(cè)的“準(zhǔn)不準(zhǔn)”。在垃圾郵件過(guò)濾中我們非常關(guān)心精確率因?yàn)榘颜`]件誤判為垃圾郵件FP的代價(jià)很高。召回率TP / (TPFN)。所有真實(shí)的正類樣本中被模型成功找出來(lái)的比例。它關(guān)注的是找的“全不全”。在疾病篩查中我們非常關(guān)心召回率因?yàn)槁┰\FN的代價(jià)很高。F1分?jǐn)?shù)2 * Precision * Recall / (Precision Recall)。精確率和召回率的調(diào)和平均數(shù)。當(dāng)精確率和召回率都重要且需要找一個(gè)平衡點(diǎn)時(shí)F1分?jǐn)?shù)是一個(gè)綜合指標(biāo)。避坑指南永遠(yuǎn)不要只看準(zhǔn)確率拿到數(shù)據(jù)后第一件事就是看類別分布。如果存在不平衡評(píng)估模型時(shí)必須結(jié)合混淆矩陣看精確率、召回率和F1分?jǐn)?shù)。例如在金融風(fēng)控中預(yù)測(cè)交易是否欺詐欺詐樣本極少正例我們可能更看重召回率盡可能抓住所有欺詐同時(shí)也要保證精確率不能太低否則人工審核成本太高此時(shí)F1分?jǐn)?shù)或PR曲線下的面積就是更好的評(píng)估標(biāo)準(zhǔn)。5.2 ROC曲線與AUC衡量模型排序能力ROC曲線和AUC是評(píng)估二分類模型性能的另一個(gè)強(qiáng)大工具它不依賴于單一的分類閾值。ROC曲線的橫軸是假正例率FPR FP / (FPTN)即所有負(fù)例中被錯(cuò)判為正例的比例。縱軸是真正例率即召回率TPR TP / (TPFN)。分類模型通常輸出一個(gè)屬于正類的概率值如邏輯回歸的P(Y1|X)。我們需要設(shè)定一個(gè)閾值比如0.5大于閾值的判為正類否則為負(fù)類。每設(shè)定一個(gè)不同的閾值就會(huì)得到一對(duì)(FPR, TPR)值在圖上形成一個(gè)點(diǎn)。讓閾值從1到0連續(xù)變化就得到了ROC曲線。曲線越靠近左上角(0,1)點(diǎn)越好表示在很低的FPR下就能獲得很高的TPR。對(duì)角線yx代表隨機(jī)猜測(cè)模型的性能。AUC是ROC曲線下的面積取值范圍[0.5, 1]。AUC可以解釋為隨機(jī)選取一個(gè)正樣本和一個(gè)負(fù)樣本模型對(duì)正樣本的輸出概率高于負(fù)樣本的概率。AUC衡量的是模型對(duì)樣本的排序能力而非絕對(duì)的分類能力。AUC對(duì)類別不平衡不敏感這是它的一大優(yōu)點(diǎn)。5.3 模型選擇中的“沒(méi)有免費(fèi)午餐”定理面對(duì)邏輯回歸、SVM、決策樹、隨機(jī)森林乃至神經(jīng)網(wǎng)絡(luò)我們?cè)撊绾芜x擇這里必須提及“沒(méi)有免費(fèi)午餐”定理沒(méi)有任何一個(gè)模型在所有問(wèn)題上都優(yōu)于其他模型。模型的選擇高度依賴于數(shù)據(jù)特征、問(wèn)題背景和計(jì)算資源。一個(gè)粗略的決策流程可以參考數(shù)據(jù)量與特征數(shù)據(jù)量小、特征少可以嘗試邏輯回歸、線性SVM、簡(jiǎn)單決策樹。數(shù)據(jù)量大、特征多可以考慮帶正則化的邏輯回歸、非線性SVM需謹(jǐn)慎調(diào)參、隨機(jī)森林、梯度提升樹如XGBoost, LightGBM。問(wèn)題性質(zhì)需要模型可解釋性邏輯回歸看系數(shù)、決策樹看路徑是首選。追求極致預(yù)測(cè)性能且可解釋性要求不高可以嘗試集成方法或深度學(xué)習(xí)。計(jì)算資源與時(shí)間隨機(jī)森林訓(xùn)練可以并行預(yù)測(cè)快但模型存儲(chǔ)大。SVM訓(xùn)練慢尤其大數(shù)據(jù)但預(yù)測(cè)快。XGBoost訓(xùn)練通常比隨機(jī)森林慢但模型性能往往更強(qiáng)。實(shí)戰(zhàn)策略永遠(yuǎn)從簡(jiǎn)單的模型開始如邏輯回歸。建立一個(gè)性能基線。然后再嘗試更復(fù)雜的模型如隨機(jī)森林看性能提升是否顯著。如果提升不大則可能簡(jiǎn)單模型已經(jīng)足夠復(fù)雜模型帶來(lái)的邊際效益很低且增加了過(guò)擬合風(fēng)險(xiǎn)和計(jì)算成本。在我參與過(guò)的一個(gè)用戶流失預(yù)測(cè)項(xiàng)目中我們先后嘗試了邏輯回歸、決策樹、隨機(jī)森林和XGBoost。邏輯回歸的AUC為0.78給出了哪些特征如最近登錄間隔、消費(fèi)金額下降比例對(duì)流失有正向/負(fù)向影響業(yè)務(wù)方非常認(rèn)可。隨機(jī)森林將AUC提升到了0.82XGBoost達(dá)到了0.83。但考慮到0.83相比0.78的提升所帶來(lái)的業(yè)務(wù)價(jià)值與模型復(fù)雜度、維護(hù)成本之間的權(quán)衡項(xiàng)目組最終選擇了邏輯回歸隨機(jī)森林特征重要性篩選的方案用隨機(jī)森林篩選出Top 20的重要特征再用這些特征訓(xùn)練邏輯回歸。最終模型AUC為0.81既保證了可解釋性性能也比原始邏輯回歸有提升。這個(gè)案例說(shuō)明模型選擇是技術(shù)、業(yè)務(wù)和資源的綜合決策。