在本文中,我們將介紹可視化學(xué)習(xí)的SVM模型及其在真實(shí)世界數(shù)據(jù)上的性能的技術(shù)。 本文包含以下部分:
線性模型,SVM和核簡(jiǎn)介在機(jī)器學(xué)習(xí)線性分類器中,任何一個(gè)模型都有一個(gè)假設(shè)函數(shù)在模型輸入和預(yù)測(cè)輸出之間的映射。 Logistic回歸,Naive Bayes和判別分析等許多模型都是線性模型的例子。 線性模型相對(duì)于神經(jīng)網(wǎng)絡(luò)(非線性模型)的主要優(yōu)點(diǎn)是特征權(quán)重直接對(duì)應(yīng)于模型中特征的重要性。因此,很容易理解機(jī)器學(xué)習(xí)模型“學(xué)到了什么”。 訓(xùn)練L1正則化回歸模型,很明顯我們機(jī)器學(xué)習(xí)數(shù)據(jù)集中的大多數(shù)特征與預(yù)測(cè)輸出完全無(wú)關(guān)。特征0,1對(duì)模型做出了正貢獻(xiàn),而給定示例中特征2,3,4的存在導(dǎo)致對(duì)輸出的負(fù)貢獻(xiàn)。 任何線性模型的核心是輸入示例和參數(shù)/權(quán)重向量之間的點(diǎn)積。在線性回歸的情況下,這是整個(gè)假設(shè)函數(shù)。其中邏輯回歸通過(guò)sigmoid函數(shù)饋送點(diǎn)積,使得輸出在0和1之間,因此適用于二元分類問(wèn)題。 在考慮分類問(wèn)題時(shí),線性模型的缺點(diǎn)是最終的決策邊界是直線、平面或超平面,其系數(shù)等于模型的權(quán)重/參數(shù),因此只能對(duì)線性可分的數(shù)據(jù)進(jìn)行分類,這在處理更復(fù)雜的分析問(wèn)題時(shí)是一個(gè)很大的限制。 我們可以看到簡(jiǎn)單的線性模型無(wú)法將兩個(gè)“嘈雜的雙曲線”分開(kāi),因?yàn)樗荒芡ㄟ^(guò)數(shù)據(jù)擬合平面/直線。第二個(gè)例子使用非線性模型(實(shí)際上是一個(gè)核技巧,我們很快就會(huì)得到這個(gè)) 支持向量機(jī)(SVM)是唯一可以對(duì)不可線性分離的數(shù)據(jù)進(jìn)行分類的線性模型。 您可能會(huì)問(wèn)作為線性模型的SVM如何使線性分類器擬合非線性數(shù)據(jù)。直觀地使用簡(jiǎn)單的線性回歸模型,我們可以手動(dòng)設(shè)計(jì)x,x2,x3,...特征,以嘗試實(shí)現(xiàn)非線性數(shù)據(jù)點(diǎn)集的擬合。
將這種直覺(jué)傳遞給我們的SVM,當(dāng)我們?cè)O(shè)計(jì)x2特征時(shí),我們基本上將特征x乘以它自身。因此,假設(shè)我們通過(guò)將特征x1,x2,x3 ......的組合相乘來(lái)從我們的數(shù)據(jù)集中設(shè)計(jì)特征,然后理論上我們最終可以得到一個(gè)空間,在這個(gè)空間中,您的工程特征可以線性分離。以前面的簡(jiǎn)單示例為例,看看下面的數(shù)據(jù)如何在x3特征空間中轉(zhuǎn)換為幾乎線性的趨勢(shì)。
不幸的是,要使用復(fù)雜的數(shù)據(jù)集來(lái)實(shí)現(xiàn)這一點(diǎn),需要?jiǎng)?chuàng)建的不僅僅是三維空間(特征x,x2,x3),而實(shí)際上是高維特征空間,對(duì)于我們機(jī)器學(xué)習(xí)數(shù)據(jù)集中的每個(gè)示例來(lái)說(shuō),計(jì)算成本非常高。下面我展示一個(gè)函數(shù)?(x)的例子,它采用我們的原始特征x并將它們組合起來(lái)以創(chuàng)建二階多項(xiàng)式特征。 在我們繼續(xù)之前:我將使用x的符號(hào)來(lái)表示數(shù)據(jù)點(diǎn)/訓(xùn)練示例,用上標(biāo)來(lái)表示特定的數(shù)據(jù)點(diǎn),用下標(biāo)來(lái)表示特定的特征。 這是一個(gè)典型的高維空間,如果我們最初有100個(gè)特征,那么這個(gè)特征將產(chǎn)生100 * 100工程特征。這在計(jì)算上是昂貴的,在這種情況下Big-O(n2)時(shí)間復(fù)雜度,考慮必須編寫(xiě)兩個(gè)嵌套的for循環(huán)來(lái)生成由?(x)產(chǎn)生的所有組合。 幸運(yùn)的是,對(duì)于我們來(lái)說(shuō),有一種解決這個(gè)計(jì)算復(fù)雜性難題的方法!當(dāng)我們推導(dǎo)出SVM的優(yōu)化問(wèn)題時(shí),結(jié)果是,訓(xùn)練輸入x的特征向量只出現(xiàn)在整個(gè)優(yōu)化公式中的一個(gè)位置(用紅色突出顯示)。 此點(diǎn)積用于我們的原始特征空間,因此現(xiàn)在可以取代它(使用函數(shù)?特征空間)。 那么這有助于降低計(jì)算復(fù)雜度嗎?根據(jù)點(diǎn)積的定義,我們?nèi)?(x(i))的第i個(gè)條目并將其乘以?(x(j))的第i個(gè)條目,然后將所有這些相加以獲得一個(gè)scaler。應(yīng)用此我們得到: 我們可以通過(guò)核技巧的簡(jiǎn)單代數(shù)操作完全去除計(jì)算?(x)?,F(xiàn)在,我們擁有高維特征空間的所有優(yōu)勢(shì),而無(wú)需額外的計(jì)算復(fù)雜性 核技巧是原始方程的一個(gè)非常簡(jiǎn)單的重新排列,我們可以看到我們完全刪除了?(x)并且只需要使用我們的原始輸入特征執(zhí)行計(jì)算,但仍然具有計(jì)算高維空間的效果。 我們現(xiàn)在要做的就是將涉及?(x)的點(diǎn)積替換為核等價(jià)物(K(x ^ i,x ^ j)): 簡(jiǎn)單替換,請(qǐng)注意我們的內(nèi)核在這里使用x和z只是為了刪除上標(biāo)符號(hào)。 類似地,當(dāng)我們想要使用我們的模型進(jìn)行預(yù)測(cè)時(shí),我們從不明確地計(jì)算高維空間的權(quán)重,而是使用核技巧來(lái)進(jìn)行預(yù)測(cè):
解釋高維工程特征空間......我們說(shuō)線性模型的巨大好處是模型的權(quán)重/參數(shù)可以被解釋為特征的重要性。一旦我們?cè)O(shè)計(jì)了高維或無(wú)限維特征集,模型的權(quán)重隱含地對(duì)應(yīng)于高維空間,這對(duì)幫助我們的理解沒(méi)有用。 相反,我們可以做的是擬合邏輯回歸模型,該模型在給定原始特征的情況下估計(jì)標(biāo)簽y為1的概率,其中f(x)是SVM決策函數(shù): 我們使用最大似然估計(jì)來(lái)擬合該邏輯回歸模型的參數(shù),該技術(shù)稱為Platt Scaling。 那么這如何幫助我們理解SVM的工作原理呢?我們只需擬合模型并在機(jī)器學(xué)習(xí)數(shù)據(jù)集中選擇一個(gè)點(diǎn)進(jìn)行評(píng)估,然后通過(guò)一系列值一次擾亂一個(gè)特征,同時(shí)保持其他特征的固定。我們可以使用它來(lái)繪制模型對(duì)每個(gè)特征的靈敏度圖表。 SKlearn在SVC模型中內(nèi)置了這個(gè)特性,您只需在初始化時(shí)確保probability=true,然后使用clf.predict_proba(X)函數(shù)來(lái)獲得概率。 在實(shí)踐中,我發(fā)現(xiàn),不僅僅是圍繞單個(gè)點(diǎn)進(jìn)行評(píng)估,通常更好地對(duì)相關(guān)點(diǎn)的集合進(jìn)行采樣,例如。40個(gè)負(fù)面例子并按特征平均概率分布,以獲得更具代表性的東西。 這是NFL Punt Analytics Kaggle比賽時(shí)所做的一個(gè)例子,研究各種特征對(duì)腦震蕩的影響: 我取了所有負(fù)面的例子并對(duì)它們的概率進(jìn)行了平均,我用紅色標(biāo)出了玩家最有可能遭受腦震蕩的區(qū)域。如果你有一堆像playerrole這樣的one hot編碼變量,一個(gè)技巧就是將它們聚合到一個(gè)條形圖中,然后看看特征出現(xiàn)和不出現(xiàn)之間的凈概率變化。 評(píng)估性能的技術(shù)當(dāng)您處理涉及SVM的高維模型時(shí),能夠可視化模型如何對(duì)數(shù)據(jù)點(diǎn)進(jìn)行分類而不僅僅依賴于F1分?jǐn)?shù)或ROC AUC等指標(biāo),這將是一件好事。 雖然有些人可能會(huì)使用主成分分析等技術(shù)來(lái)對(duì)分類進(jìn)行可視化,但這樣做會(huì)破壞我們的特征空間的尺寸,從而扭曲我們想要實(shí)現(xiàn)的視覺(jué)效果。 我發(fā)現(xiàn)一種很好的技術(shù)稱為“Histogram of projects”,它涉及為訓(xùn)練和測(cè)試集繪制SVM決策函數(shù)輸出的分布圖。 在SKlearn的SVC實(shí)現(xiàn)中很容易獲得決策函數(shù),只需調(diào)用decision_function(X)。您需要跟蹤數(shù)據(jù)集標(biāo)簽,以便對(duì)投影直方圖進(jìn)行顏色編碼,如下所示: 投影的直方圖很容易解釋。直方圖x軸標(biāo)識(shí)特定訓(xùn)練示例距SVM的決策邊界的距離(由中心虛線指示) 支持向量機(jī)在決策邊界兩邊都有一個(gè)等于1的分離邊界,這是對(duì)偶優(yōu)化問(wèn)題的一個(gè)強(qiáng)制約束(“支持向量”是位于這些邊界上的數(shù)據(jù)點(diǎn))。您會(huì)注意到,在上面的模型中,有一些泄漏進(jìn)入了邊緣區(qū)域,并且確實(shí)從一個(gè)類跨越到?jīng)Q策邊界的另一邊的類。這是因?yàn)槲覀冊(cè)O(shè)置了正則化超參數(shù)C > 0(它允許在一些錯(cuò)誤分類和最小化SVM目標(biāo)函數(shù)之間進(jìn)行權(quán)衡)。 盡管使用高維特征空間,該圖表仍然成功地可視化了決策邊界區(qū)域和所有分類,并且沒(méi)有損失維數(shù)。在混淆矩陣中看到的所有指標(biāo)(即真陽(yáng)性、假陽(yáng)性、真陰性和假陰性的數(shù)量)也可以通過(guò)直方圖看到。它還使我們能夠觀察一個(gè)模型是否很好地泛化到測(cè)試集。如果測(cè)試集的決策函數(shù)輸出分布與訓(xùn)練集相似,那么我們可以說(shuō)這個(gè)模型在泛化方面有很好的表現(xiàn)。該模型還可用于確定給定的超參數(shù)下機(jī)器學(xué)習(xí)數(shù)據(jù)集是否線性可分。 處理不平衡數(shù)據(jù)的實(shí)用選擇當(dāng)一個(gè)數(shù)據(jù)集對(duì)于一個(gè)類相對(duì)于另一個(gè)類具有不成比例的數(shù)量時(shí),我們說(shuō)它是不平衡的。 現(xiàn)實(shí)世界數(shù)據(jù)集的示例,其不平衡超過(guò)3000:1 這通常發(fā)生在現(xiàn)實(shí)世界的數(shù)據(jù)中,無(wú)論是識(shí)別惡性組織,信用卡欺詐還是運(yùn)動(dòng)中的腦震蕩,都是由于我們希望正確識(shí)別事件的相對(duì)罕見(jiàn)性。 對(duì)于使用不平衡數(shù)據(jù)的機(jī)器學(xué)習(xí)(ML)模型,有兩種普遍接受的做法:
選項(xiàng)1:SMOTE 我們可以通過(guò)兩種方式重新采樣數(shù)據(jù),方法是刪除現(xiàn)有實(shí)例(欠采樣)或添加新實(shí)例(過(guò)采樣)。最常被接受的方法是使用稱為SMOTE的算法對(duì)少數(shù)類進(jìn)行過(guò)采樣 它比名稱簡(jiǎn)單得多,對(duì)于數(shù)據(jù)集中的每個(gè)少數(shù)點(diǎn),它選擇k個(gè)最近的其他少數(shù)點(diǎn)實(shí)例(通常是5個(gè)),并沿著“連接”現(xiàn)有少數(shù)點(diǎn)實(shí)例的直線隨機(jī)插入新的少數(shù)點(diǎn)實(shí)例。 這是一個(gè)合理的事情,因?yàn)槲覀冎皇羌僭O(shè)通過(guò)在類似的現(xiàn)有示例之間進(jìn)行插值,我們將獲得同一類的新示例。 我們可以看到SMOTE如何沿著現(xiàn)有點(diǎn)生成新的數(shù)據(jù)點(diǎn) 這往往會(huì)顯著改善機(jī)器學(xué)習(xí)模型的性能,并有助于推廣少數(shù)實(shí)例的決策邊界。 選項(xiàng)2:將權(quán)重引入目標(biāo)函數(shù) 另一種可以采用的方法是在目標(biāo)函數(shù)中賦予較高的權(quán)重來(lái)對(duì)少數(shù)樣本進(jìn)行誤分類。這將“激勵(lì)”算法正確分類少數(shù)實(shí)例。 訓(xùn)練SVM需要多少數(shù)據(jù)一個(gè)合理的經(jīng)驗(yàn)法則是將訓(xùn)練樣例作為最少的特征的10倍。如果您有大量的訓(xùn)練數(shù)據(jù),最好使用少于50,000個(gè)訓(xùn)練樣例,因?yàn)閟klearn中的SVC實(shí)現(xiàn)具有O(n3)復(fù)雜度,這意味著收斂到解決方案的時(shí)間隨著訓(xùn)練實(shí)例的數(shù)量而立即增長(zhǎng)。 它通常值得在較小的機(jī)器學(xué)習(xí)數(shù)據(jù)集上進(jìn)行訓(xùn)練,并調(diào)整機(jī)器學(xué)習(xí)模型的超參數(shù)。您可以為模型選擇保留一個(gè)小的交叉驗(yàn)證測(cè)試集。盡管您可能使用的實(shí)際數(shù)據(jù)比例很小,但您在測(cè)試剩余數(shù)據(jù)集時(shí)模型的概括程度會(huì)令您感到驚訝。
|
|
來(lái)自: taotao_2016 > 《VRAR》