
作者 | Badreesh Shetty
整理 | 大數(shù)據(jù)文摘
說起分類算法,相信學(xué)過機器學(xué)習(xí)的同學(xué)都能侃上一二。
可是,你能夠如數(shù)家珍地說出所有常用的分類算法,以及他們的特征、優(yōu)缺點嗎?比如說,你可以快速地回答下面的問題么:
答不上來?別怕!一起來通過這篇文章回顧一下機器學(xué)習(xí)分類算法吧(本文適合已有機器學(xué)習(xí)分類算法基礎(chǔ)的同學(xué))。
機器學(xué)習(xí)是一種能從數(shù)據(jù)中學(xué)習(xí)的計算機編程科學(xué)以及藝術(shù),就像下面這句話說得一樣。
機器學(xué)習(xí)是使計算機無需顯式編程就能學(xué)習(xí)的研究領(lǐng)域?!⑸と姞?,1959年
不過還有一個更好的定義:
“如果一個程序在使用既有的經(jīng)驗(E)執(zhí)行某類任務(wù)(T)的過程中被認為是“具備學(xué)習(xí)能力的”,那么它一定需要展現(xiàn)出:利用現(xiàn)有的經(jīng)驗(E),不斷改善其完成既定任務(wù)(T)的性能(P)的特性?!薄猅om Mitchell, 1997
例如,你的垃圾郵件過濾器是一個機器學(xué)習(xí)程序,通過學(xué)習(xí)用戶標記好的垃圾郵件和常規(guī)非垃圾郵件示例,它可以學(xué)會標記垃圾郵件。系統(tǒng)用于學(xué)習(xí)的示例稱為訓(xùn)練集。在此案例中,任務(wù)(T)是標記新郵件是否為垃圾郵件,經(jīng)驗(E)是訓(xùn)練數(shù)據(jù),性能度量(P) 需要定義。例如,你可以定義正確分類的電子郵件的比例為P。這種特殊的性能度量稱為準確度,這是一種有監(jiān)督的學(xué)習(xí)方法,常被用于分類任務(wù)。
監(jiān)督學(xué)習(xí)
在監(jiān)督學(xué)習(xí)中,算法從有標記數(shù)據(jù)中學(xué)習(xí)。在理解數(shù)據(jù)之后,該算法通過將模式與未標記的新數(shù)據(jù)關(guān)聯(lián)來確定應(yīng)該給新數(shù)據(jù)賦哪種標簽。
監(jiān)督學(xué)習(xí)可以分為兩類:分類和回歸。
分類問題預(yù)測數(shù)據(jù)所屬的類別;
分類的例子包括垃圾郵件檢測、客戶流失預(yù)測、情感分析、犬種檢測等。
回歸問題根據(jù)先前觀察到的數(shù)據(jù)預(yù)測數(shù)值;
回歸的例子包括房價預(yù)測、股價預(yù)測、身高-體重預(yù)測等。
分類問題
分類是一種基于一個或多個自變量確定因變量所屬類別的技術(shù)。
▲分類用于預(yù)測離散響應(yīng)
邏輯回歸類似于線性回歸,適用于因變量不是一個數(shù)值字的情況 (例如,一個“是/否”的響應(yīng))。它雖然被稱為回歸,但卻是基于根據(jù)回歸的分類,將因變量分為兩類。
如上所述,邏輯回歸用于預(yù)測二分類的輸出。例如,如果信用卡公司構(gòu)建一個模型來決定是否通過向客戶的發(fā)行信用卡申請,它將預(yù)測客戶的信用卡是否會“違約”。
首先對變量之間的關(guān)系進行線性回歸以構(gòu)建模型,分類的閾值假設(shè)為0.5。
然后將Logistic函數(shù)應(yīng)用于回歸分析,得到兩類的概率。
該函數(shù)給出了事件發(fā)生和不發(fā)生概率的對數(shù)。最后,根據(jù)這兩類中較高的概率對變量進行分類。
K-近鄰算法(K-NN)
K-NN算法是一種最簡單的分類算法,通過識別被分成若干類的數(shù)據(jù)點,以預(yù)測新樣本點的分類。K-NN是一種非參數(shù)的算法,是“懶惰學(xué)習(xí)”的著名代表,它根據(jù)相似性(如,距離函數(shù))對新數(shù)據(jù)進行分類。
K-NN能很好地處理少量輸入變量(p)的情況,但當輸入量非常大時就會出現(xiàn)問題。
支持向量機既可用于回歸也可用于分類。它基于定義決策邊界的決策平面。決策平面(超平面)可將一組屬于不同類的對象分離開。
在支持向量的幫助下,SVM通過尋找超平面進行分類,并使兩個類之間的邊界距離最大化。
SVM中超平面的學(xué)習(xí)是通過將問題轉(zhuǎn)化為使用一些某種線性代數(shù)轉(zhuǎn)換問題來完成的。(上圖的例子是一個線性核,它在每個變量之間具有線性可分性)。
對于高維數(shù)據(jù),使用可使用其他核函數(shù),但高維數(shù)據(jù)不容易進行分類。具體方法將在下一節(jié)中闡述。
核支持向量機將核函數(shù)引入到SVM算法中,并將其轉(zhuǎn)換為所需的形式,將數(shù)據(jù)映射到可分的高維空間。
核函數(shù)的類型包括:
徑向基核(RBF:Radial Basis Function )
RBF核支持向量機的決策區(qū)域?qū)嶋H上也是一個線性決策區(qū)域。RBF核支持向量機的實際作用是構(gòu)造特征的非線性組合,將樣本映射到高維特征空間,再利用線性決策邊界分離類。
因此,可以得出經(jīng)驗是:對線性問題使用線性支持向量機,對非線性問題使用非線性核函數(shù),如RBF核函數(shù)。
樸素貝葉斯分類器建立在貝葉斯定理的基礎(chǔ)上,基于特征之間互相獨立的假設(shè)(假定類中存在一個與任何其他特征無關(guān)的特征)。即使這些特征相互依賴,或者依賴于其他特征的存在,樸素貝葉斯算法都認為這些特征都是獨立的。這樣的假設(shè)過于理想,樸素貝葉斯因此而得名。
在樸素貝葉斯的基礎(chǔ)上,高斯樸素貝葉斯根據(jù)二項(正態(tài))分布對數(shù)據(jù)進行分類。
P(class|data) 表示給定特征(屬性)后數(shù)據(jù)屬于某類(目標)的后驗概率。給定數(shù)據(jù),其屬于各類的概率大小就是我們要計算的值。
P(class)表示某類的先驗概率。
P(data|class)表示似然,是指定類別時特征出現(xiàn)的概率。
步驟
1、計算先驗概率P(class) = 類中數(shù)據(jù)點的數(shù)量/觀測值的總數(shù)量P(yellow) = 10/17P(green) = 7/17
2、計算邊際似然P(data) = 與觀測值相似的數(shù)據(jù)點的數(shù)量/觀測值的總數(shù)量P(?) = 4/17該值用于檢查各個概率。
3、計算似然P(data/class) = 類中與觀測值相似的數(shù)量/類中點的總數(shù)量P(?/yellow) = 1/7P(?/green) = 3/10
4、計算各類的后驗概率
5、分類
某一點歸于后驗概率高的類別,因為從上可知其屬于綠色類的概率是75%根據(jù)其75%的概率這個點屬于綠色類。
多項式、伯努利樸素貝葉斯是計算概率的其他模型。樸素貝葉斯模型易于構(gòu)建,不需要復(fù)雜的參數(shù)迭代估計,這使得它對非常大的數(shù)據(jù)集特別有用。
決策樹分類
決策樹以樹狀結(jié)構(gòu)構(gòu)建分類或回歸模型。它通過將數(shù)據(jù)集不斷拆分為更小的子集來使決策樹不斷生長。最終長成具有決策節(jié)點(包括根節(jié)點和內(nèi)部節(jié)點)和葉節(jié)點的樹。最初決策樹算法它采用采用Iterative Dichotomiser 3(ID3)算法來確定分裂節(jié)點的順序。
▲信息熵和信息增益用于被用來構(gòu)建決策樹。
信息熵
信息熵是衡量元素?zé)o序狀態(tài)程度的一個指標,即衡量信息的不純度。
信息熵是衡量元素的無序狀態(tài)的程度的一個指標,或者說,衡量信息的不純度。
直觀上說地理解,信息熵表示一個事件的確定性程度。信息熵度量樣本的同一性,如果樣本全部屬于同一類,則信息熵為0;如果樣本等分成不同的類別,則信息熵為1。
信息增益
信息增益測量獨立屬性間信息熵的變化。它試圖估計每個屬性本身包含的信息,構(gòu)造決策樹就是要找到具有最高信息增益的屬性(即純度最高的分支)。
信息增益測量獨立屬性間的信息熵的變化。它試圖估計每個屬性本身包含的信息,構(gòu)造決策樹就是要找到具有最高信息增益的屬性(即純度最高的分支)。
其中Gain((T,X))是特征X的信息增益。Entropy(T)是整個集合的信息熵,第二項Entropy(T,X)是特征X的信息熵。
采用信息熵進行節(jié)點選擇時,通過對該節(jié)點各個屬性信息增益進行排序,選擇具有最高信息增益的屬性作為劃分節(jié)點,過濾掉其他屬性。
決策樹模型存在的一個問題是容易過擬合。因為在其決策樹構(gòu)建過程中試圖通過生成長一棵完整的樹來擬合訓(xùn)練集,因此卻降低了測試集的準確性。
分類的集成算法
集成算法是一個模型組。從技術(shù)上說,集成算法是單獨訓(xùn)練幾個有監(jiān)督模型,并將訓(xùn)練好的模型以不同的方式進行融合,從而達到最終的得預(yù)測結(jié)果。集成后的模型比其中任何一個單獨的模型都有更高的預(yù)測能力。
隨機森林分類器
隨機森林分類器是一種基于裝袋(bagging)的集成算法,即自舉助聚合法(bootstrap aggregation)。集成算法結(jié)合了多個相同或不同類型的算法來對對象進行分類(例如,SVM的集成,基于樸素貝葉斯的集成或基于決策樹的集成)。
集成的基本思想是算法的組合提升了最終的結(jié)果。
深度太大的決策樹容易受過擬合的影響。但是隨機森林通過在隨機子集上構(gòu)建決策樹防止過擬合,主要原因是它會對所有樹的結(jié)果進行投票的結(jié)果是所有樹的分類結(jié)果的投票,從而消除了單棵樹的偏差。
隨機森林在決策樹生增長的同時為模型增加了額外的隨機性。它在分割節(jié)點時,不是搜索全部樣本最重要的特征,而是在隨機特征子集中搜索最佳特征。這種方式使得決策樹具有多樣性,從而能夠得到更好的模型。
梯度提升分類器
梯度提升分類器是一種提升集成算法。提升(boosting)算法是為了減少偏差而對弱分類器的而進行的一種集成方法。與裝袋(bagging)方法構(gòu)建預(yù)測結(jié)果池不同,提升算法是一種分類器的串行方法,它把每個輸出作為下一個分類器的輸入。通常,在裝袋算法中,每棵樹在原始數(shù)據(jù)集的子集上并行訓(xùn)練,并用所有樹預(yù)測結(jié)果的均值作為模型最終的預(yù)測結(jié)果;梯度提升模型,采用串行方式而非并行模式獲得預(yù)測結(jié)果。每棵決策樹預(yù)測前一棵決策樹的誤差,因而使誤差獲得提升。
梯度提升樹的工作流程:
分類器的性能
混淆矩陣是一張表,這張表通過對比已知分類結(jié)果的測試數(shù)據(jù)的預(yù)測值和真實值表來描述衡量分類器的性能。在二分類的情況下,混淆矩陣是展示預(yù)測值和真實值四種不同結(jié)果組合的表。
多分類問題的混淆矩陣可以幫助你確認錯誤模式。
對于二元分類器:
假正例&假負例
假正例和假負例用來衡量模型預(yù)測的分類效果。假正例是指模型錯誤地將負例預(yù)測為正例。假負例是指模型錯誤地將正例預(yù)測為負例。主對角線的值越大(主對角線為真正例和真負例),模型就越好;副對角線給出模型的最差預(yù)測結(jié)果。
假正例
下面給出一個假正例的例子。比如:模型將一封郵件分類為垃圾郵件(正例),但這封郵件實際并不是垃圾郵件。這就像一個警示,錯誤如果能被修正就更好,但是與假負例相比,它并不是一個嚴重的問題。
作者注:個人觀點,這個例子舉的不太好,對垃圾郵件來說,相比于錯誤地將垃圾郵件分類為正常郵件(假負例),將正常郵件錯誤地分類為垃圾郵件(假正例)是更嚴重的問題。
假正例(I型錯誤)——原假設(shè)正確而拒絕原假設(shè)。
假負例
假負例的一個例子。例如,該模型預(yù)測一封郵件不是垃圾郵件(負例),但實際上這封郵件是垃圾郵件。這就像一個危險的信號,錯誤應(yīng)該被及早糾正,因為它比假正例更嚴重。
假負例(II型錯誤)——原假設(shè)錯誤而接受原假設(shè)
上圖能夠很容易地說明上述指標。左圖男士的測試結(jié)果是假正例因為男性不能懷孕;右圖女士是假負例因為很明顯她懷孕了。
準確率
準確率是模型預(yù)測正確的部分。
準確率的公式為:
當數(shù)據(jù)集不平衡,也就是正樣本和負樣本的數(shù)量存在顯著差異時,單獨依靠準確率不能評價模型的性能。精度和召回率是衡量不平衡數(shù)據(jù)集的更好的指標。
精度
精度是指在所有預(yù)測為正例的分類中,預(yù)測正確的程度為正例的效果。
▲精度越高越好。
召回率是指在所有預(yù)測為正例(被正確預(yù)測為真的和沒被正確預(yù)測但為真的)的分類樣本中,召回率是指預(yù)測正確的程度。它,也被稱為敏感度或真正率(TPR)。
▲召回率越高越好。
F-1值
通常實用的做法是將精度和召回率合成一個指標F-1值更好用,特別是當你需要一種簡單的方法來衡量兩個分類器性能時。F-1值是精度和召回率的調(diào)和平均值。
普通的通常均值將所有的值平等對待,而調(diào)和平均值給予較低的值更高的權(quán)重,從而能夠更多地懲罰極端值。所以,如果精度和召回率都很高,則分類器將得到很高的F-1值。
接受者操作曲線(ROC)和曲線下的面積(AUC)
ROC曲線是衡量分類器性能的一個很重要指標,它代表模型準確預(yù)測的程度。ROC曲線通過繪制真正率和假正率的關(guān)系來衡量分類器的敏感度。如果分類器性能優(yōu)越,則真正率將增加,曲線下的面積會接近于1.如果分類器類似于隨機猜測,真正率將隨假正率線性增加。AUC值越大,模型效果越好。
累積精度曲線
CAP代表一個模型沿y軸為真正率的累積百分比與沿x軸的該分類樣本累積百分比。CAP不同于接受者操作曲線(ROC,繪制的是真正率與假正率的關(guān)系)。與ROC曲線相比,CAP曲線很少使用。
以考慮一個預(yù)測客戶是否會購買產(chǎn)品的模型為例,如果隨機選擇客戶,他有50%的概率會購買產(chǎn)品??蛻糍徺I產(chǎn)品的累積數(shù)量會線性地增長到對應(yīng)客戶總量的最大值,這個曲線稱為CAP隨機曲線,為上圖中的藍色線。而一個完美的預(yù)測,準確地確定預(yù)測了哪些客戶會購買產(chǎn)品,這樣,在所有樣本中只需選擇最少的客戶就能達到最大購買量。這在CAP曲線上產(chǎn)生了一條開始陡峭一旦達到最大值就會維持在1的折線,稱為CAP的完美曲線,也被稱為理想曲線,為上圖中灰色的線。
最后,一個真實的模型應(yīng)該能盡可能最大化地正確預(yù)測,接近于理想模型曲線。
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
DSGE 模型中的 Et:理性預(yù)期算子的內(nèi)涵、作用與應(yīng)用解析 動態(tài)隨機一般均衡(Dynamic Stochastic General Equilibrium, DSGE)模 ...
2025-09-17Python 提取 TIF 中地名的完整指南 一、先明確:TIF 中的地名有哪兩種存在形式? 在開始提取前,需先判斷 TIF 文件的類型 —— ...
2025-09-17CDA 數(shù)據(jù)分析師:解鎖表結(jié)構(gòu)數(shù)據(jù)特征價值的專業(yè)核心 表結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 規(guī)范存儲的結(jié)構(gòu)化數(shù)據(jù),如數(shù)據(jù)庫表、Excel 表、 ...
2025-09-17Excel 導(dǎo)入數(shù)據(jù)含缺失值?詳解 dropna 函數(shù)的功能與實戰(zhàn)應(yīng)用 在用 Python(如 pandas 庫)處理 Excel 數(shù)據(jù)時,“缺失值” 是高頻 ...
2025-09-16深入解析卡方檢驗與 t 檢驗:差異、適用場景與實踐應(yīng)用 在數(shù)據(jù)分析與統(tǒng)計學(xué)領(lǐng)域,假設(shè)檢驗是驗證研究假設(shè)、判斷數(shù)據(jù)差異是否 “ ...
2025-09-16CDA 數(shù)據(jù)分析師:掌控表格結(jié)構(gòu)數(shù)據(jù)全功能周期的專業(yè)操盤手 表格結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 存儲的結(jié)構(gòu)化數(shù)據(jù),如 Excel 表、數(shù)據(jù) ...
2025-09-16MySQL 執(zhí)行計劃中 rows 數(shù)量的準確性解析:原理、影響因素與優(yōu)化 在 MySQL SQL 調(diào)優(yōu)中,EXPLAIN執(zhí)行計劃是核心工具,而其中的row ...
2025-09-15解析 Python 中 Response 對象的 text 與 content:區(qū)別、場景與實踐指南 在 Python 進行 HTTP 網(wǎng)絡(luò)請求開發(fā)時(如使用requests ...
2025-09-15CDA 數(shù)據(jù)分析師:激活表格結(jié)構(gòu)數(shù)據(jù)價值的核心操盤手 表格結(jié)構(gòu)數(shù)據(jù)(如 Excel 表格、數(shù)據(jù)庫表)是企業(yè)最基礎(chǔ)、最核心的數(shù)據(jù)形態(tài) ...
2025-09-15Python HTTP 請求工具對比:urllib.request 與 requests 的核心差異與選擇指南 在 Python 處理 HTTP 請求(如接口調(diào)用、數(shù)據(jù)爬取 ...
2025-09-12解決 pd.read_csv 讀取長浮點數(shù)據(jù)的科學(xué)計數(shù)法問題 為幫助 Python 數(shù)據(jù)從業(yè)者解決pd.read_csv讀取長浮點數(shù)據(jù)時的科學(xué)計數(shù)法問題 ...
2025-09-12CDA 數(shù)據(jù)分析師:業(yè)務(wù)數(shù)據(jù)分析步驟的落地者與價值優(yōu)化者 業(yè)務(wù)數(shù)據(jù)分析是企業(yè)解決日常運營問題、提升執(zhí)行效率的核心手段,其價值 ...
2025-09-12用 SQL 驗證業(yè)務(wù)邏輯:從規(guī)則拆解到數(shù)據(jù)把關(guān)的實戰(zhàn)指南 在業(yè)務(wù)系統(tǒng)落地過程中,“業(yè)務(wù)邏輯” 是連接 “需求設(shè)計” 與 “用戶體驗 ...
2025-09-11塔吉特百貨孕婦營銷案例:數(shù)據(jù)驅(qū)動下的精準零售革命與啟示 在零售行業(yè) “流量紅利見頂” 的當下,精準營銷成為企業(yè)突圍的核心方 ...
2025-09-11CDA 數(shù)據(jù)分析師與戰(zhàn)略 / 業(yè)務(wù)數(shù)據(jù)分析:概念辨析與協(xié)同價值 在數(shù)據(jù)驅(qū)動決策的體系中,“戰(zhàn)略數(shù)據(jù)分析”“業(yè)務(wù)數(shù)據(jù)分析” 是企業(yè) ...
2025-09-11Excel 數(shù)據(jù)聚類分析:從操作實踐到業(yè)務(wù)價值挖掘 在數(shù)據(jù)分析場景中,聚類分析作為 “無監(jiān)督分組” 的核心工具,能從雜亂數(shù)據(jù)中挖 ...
2025-09-10統(tǒng)計模型的核心目的:從數(shù)據(jù)解讀到?jīng)Q策支撐的價值導(dǎo)向 統(tǒng)計模型作為數(shù)據(jù)分析的核心工具,并非簡單的 “公式堆砌”,而是圍繞特定 ...
2025-09-10CDA 數(shù)據(jù)分析師:商業(yè)數(shù)據(jù)分析實踐的落地者與價值創(chuàng)造者 商業(yè)數(shù)據(jù)分析的價值,最終要在 “實踐” 中體現(xiàn) —— 脫離業(yè)務(wù)場景的分 ...
2025-09-10機器學(xué)習(xí)解決實際問題的核心關(guān)鍵:從業(yè)務(wù)到落地的全流程解析 在人工智能技術(shù)落地的浪潮中,機器學(xué)習(xí)作為核心工具,已廣泛應(yīng)用于 ...
2025-09-09SPSS 編碼狀態(tài)區(qū)域中 Unicode 的功能與價值解析 在 SPSS(Statistical Product and Service Solutions,統(tǒng)計產(chǎn)品與服務(wù)解決方案 ...
2025-09-09