預測建模、監督機器學習和模式分類概覽

2021-01-09 CSDN技術社區

模式分類(pattern classification)和機器學習(machine learning)是非常熱的話題,幾乎在所有的現代應用程式中都得到了應用:例如郵局中的光學字符識別(OCR),電子郵件過濾,超市條形碼掃描,等等。

在這篇文章中,我會簡要描述一個典型的監督學習任務的主要概念,這些概念將作為將來的文章和實現各種學習算法的基礎。

機器學習和模式分類

預測建模是建立一個能夠進行預測的模型的通用概念。通常情況下,這樣的模型包括一個機器學習算法,以便從訓練數據集中學習某些屬性做出這些預測。

預測建模可以進一步分成兩個子集:回歸和模式分類。回歸模型基於變量和趨勢之間的關係的分析,以便做出關於連續變量的預測,如天氣預報的最高溫度的預測。

與回歸模型不同,模式分類的任務是分配離散的類標籤到特定的observation作為預測的結果。回到上面的例子:在天氣預報中的模式分類任務可能是一個晴天、雨天或雪天的預測。

拋開所有的可能性,本文的重點將放在「模式分類」,分配預先定義的類標籤到特定實例將它們分成不同的類別的一般方法。「實例」是「observation」或「樣本」的同義詞,描述由一個或多個特徵(或稱為「屬性」)組成的「對象」。

監督學習、無監督學習和強化學習

模式分類任務可被分成兩個主要的子類別:監督學習和無監督學習。在監督學習中,用於構建分類模型的數據的類標籤是已知的。例如,一個垃圾郵件過濾的數據集,它裡面將包含垃圾郵件以及「火腿」(=不是垃圾郵件)消息。在有監督的學習問題中,我們已經知道了訓練集中的郵件要麼是垃圾郵件,要麼是火腿。我們將會使用這些信息來訓練我們的模型,以達到能對新增的不明確的郵件進行分類。


上圖顯示了一個典型的分類任務,用到的樣本具有兩個隨機變量;訓練數據(帶有類標記)用圖中的散點表示。紅色點劃線表明了線性決策(左側)或者二次決策(右側)的邊界,這些邊界決定了R1和R2的決策區域。新的observation將會根據它們所在的區域而被分配類標籤「w1」或「w2」。對於那些未知的實例,我們已經假定我們的分類方法不是完美的,會有一定比例的樣本可能被錯誤分類。

如果你對決策邊界是如何被算出來的有興趣,你可以查看我的模式分類庫中的「統計模式分類示例」這一節的關於「IPython」部分的內容。

與此相反,無監督學習任務處理未標記的實例,並且這些類必須從非結構化數據集中推斷出來。通常情況下,無監督學習採用聚類技術,使用基於一定的相似性(或距離)的度量方式來將無標記的樣本進行分組。

第三類的學習算法使用「強化學習」這個概念來描述。在這種算法中,模型是通過一系列的操作而最大化「獎勵函數」來進行學習。獎勵函數的最大化,可以通過懲罰「壞行為」,和/或通過獎勵「好行為」來實現。強化學習的一個常見的例子是根據環境反饋而進行學習自動駕駛的訓練過程。我最近還偶然發現了強化學習的另外一個很好的例子,就是訓練遊戲「Flappy Bird」,使它能夠自己玩。

監督學習 - 一個典型的工作流程

現今,當在「數據科學」領域開始引入各種概念的時候,著名的「鳶尾花(Iris)」花數據集可能是最常用的一個例子。1936年,R.A.Fisher在他的判別分析中創建和使用了Iris數據集。Iris現在可以從UCI機器學習庫中免費得到。


在一個監督分類任務中,它將會是一個很好的例子。Iris中的花被分為了三類:Setosa , Virginica , 和Versicolor .而這150個實例中的每一個樣本(單花)都有四個屬性:

(所有測量單位都是釐米)

可視化

當我們需要處理一個新的數據集時,採用簡單的可視化技術來解釋數據分析是非常有用的,因為人的眼睛在發現模式方面是非常強大的。然而,有時我們必須處理的數據由三個以上的維度構成,這樣就無法在一副圖像中表達出來了。為了克服這種限制,一種方式可以將屬性集分解成成對的屬性集,然後創建一個散點圖矩陣。在實踐中,「良好的且有用的」可視化技術的選擇高度依賴於數據的類型,特徵空間的維數,和現實情況。

下面是Iris數據集的可視化的幾個例子,或多或少有用。


用來創建這些圖形的代碼可以在「可視化技術進行探索性數據分析」一節中的IPython部分Matplotlib例子中找到。

根據上面的那些圖,特別是散點圖和(1D)直方圖,我們已經可以看到,相對於三種不同的花,花瓣包含的辨別信息相對於花萼來說要更多一些,因為圖形中花萼的寬度和長度差別更小一些。那麼,該信息就可以用於特徵選擇,以去除噪聲和減少我們的數據集的大小。

工作流程圖

在下面的章節中,我們將會看到一些典型的監督學習任務的主要步驟,下圖可以讓我們直觀地了解它們是如何連接的。


原始數據採集和特徵提取

當我們下載完Iris數據集後,我們注意到,它已經具有「良好的結構」了,看來是R.A.Fisher已經為我們做了一些初步的「預處理」了。沒有丟失的數據和具有數位化的特徵,使得它可以被一種學習算法所使用。

然而,讓我們假設該Iris數據集的原始數據是一系列的圖像。在這種情況下,首先進行的預處理步驟(特徵提取)可能涉及到這些圖像的縮放,平移,和旋轉,這樣才能夠獲得以釐米表示的萼片和花瓣的尺寸。

葉子閉塞就成為一個問題了,這種情況可能會導致數據丟失:如果數據集中的數據丟失,而算法沒有忽略丟失數據的選項,那麼很多機器學習算法將無法使用這些數據集正常工作。如果稀疏性(也就是,數據集中空缺數據的數量)並不太高,那麼通常的建議做法是除去任何包含缺失值的樣本的行,或者丟失數據的屬性列。另一種處理丟失的數據的策略是估算:使用某些統計數據來補充丟失的數據,而不是徹底清除掉丟失數據的樣本。對於分類數據,丟失的值可以從出現頻率最高的類別中得到;對於一些數值型的屬性,丟失的值可以使用樣品的平均值來代替。在一般情況下,通過k近鄰插補得到的值來替換丟失數據被認為是優於使用總體樣本均值進行替換的。

另外的一個關於特徵提取的有趣方法可能包括花瓣和萼片的聚合運算,如花瓣或萼片寬度和高度之間的比率。

採樣

假設我們從原始數據中提取到了某些特徵(在這裡:萼片寬度,萼片長度,花瓣寬度和花瓣長度),我們現在將把我們的數據隨機分成訓練和測試數據集。訓練數據集將被用於訓練模型,而測試數據集的作用是評價每次訓練完成後最終模型的性能。

重要的是,我們對測試數據集只使用一次,這樣在我們計算預測誤差指標的時候可以避免過度擬合。過度擬合導致分類器在訓練的時候表現良好,但是泛化能力一般。這樣會使得在新的模式上面得出的預測誤差值相當高。因此,在模型的創建中使用一些像交叉驗證這樣的技術,就能夠提高分類性能。另外的一種策略是重新使用測試數據集來對模型進行評估,這需要創建第三個數據集,即所謂的驗證數據集。

交叉驗證

交叉驗證是評估特徵選擇,降維,以及學習算法的不同組合的最有用的技術之一。交叉驗證有許多種,最常見的一種很可能是k折交叉驗證了。

在k-折交叉驗證中,原始訓練數據集被分成k個不同的子集(即所謂的「摺疊」),其中,1個摺疊被保留作為測試集,而另外的K-1個摺疊被用於訓練模型。例如,如果我們設定k等於4(即,4摺疊),原始訓練集的3個不同的子集將被用於訓練模型,而第四個摺疊將用於評價。經過4次迭代後,我們可以計算出最終模型的平均錯誤率(和標準差),這個平均錯誤率可以讓我們看到模型的泛化能力如何。


規範化

為了能夠比較不同的屬性(比如,在聚類分析中通過計算距離或相似性),特別是當屬性具有不同的度量時(比如,溫度具有開爾文和攝氏表達方式),就需要用到規範化和其他的一些屬性變換技術。對特徵進行恰當的變換,是大多數機​​器學習算法的一個要求。

「規範化」常用的代名詞是「最小-最大變換」:屬性值被變換到一個特定的範圍內,比如0到1之間。


另一種常見的方法是(Z值)「標準化」或「變換到單位方差」的過程:每個樣品減去屬性的平均值,然後除以標準差,這樣屬性將具有標準正態分布(μ= 0,σ= 1)的性質。


我們必須要記住其中很重要的一點:如果我們在訓練集上使用了任何一種規範化或變換技術,那麼我們就必須在測試集和未知數據集上使用相同的方法。

更詳細的描述可以看另一篇的文章:About Feature Scaling and Normalization and the effect of standardization for machine learning algorithms .

特徵選擇和降維

乍一看,特徵選擇和降維之間的區別似乎違反直覺,因為特徵選擇,最終會導致(降維)到一個較小的特徵空間。在實踐中,術語「特徵選擇」和「降維」之間的主要區別在於:我們在特徵選擇中保持了「原始特徵坐標軸」,而降維通常涉及變換技術。

這兩種方法的主要目的是為了去除噪聲,通過只保留「有用的」(可區分的)信息提高計算效率,並避免過度擬合(「維數災難」)。

在特徵選擇中,我們感興趣的是只保留那些「有意義」的功能,也就是那些可以幫助建立一個「好」的分類器的功能。舉例來說,如果我們有一大堆描述花鳶尾的屬性(顏色,高度等),那麼特徵選擇可能最終會只保留4種測量數據,也就是描述花瓣和萼片尺寸的數據。或者,如果我們一開始就有了4個屬性(萼片和花瓣長度和寬度),我們可以進一步縮小我們的選擇,只保留花瓣的長度和寬度,從而將我們的特徵空間從4維減少到2維。特徵選擇往往是基於領域知識的(可以看到,諮詢領域內的專家對特徵選擇總是有幫助的),或探索性分析的,如我們在前面看到的直方圖或散點圖。想要找到一個特定大小的特徵子集,用來最優化分類模型的性能,往往需要一個窮舉搜索——搜索採樣的所有可能組合。然而,在實際使用中,由於運算的限制,這種方法可能不具有可行性。所以常用序列特徵選擇或遺傳算法來選出一個次優的特徵子集。


常用的降維技術是線性變換,如主成分分析(PCA)和線性判別分析(LDA)。PCA可以看成是一個「無監督」算法,因為它「忽略」了類別,它的目標是找到數據集中方差最大的方向(所謂的主成分)。相對於PCA,LDA是帶「監督」的,它計算出多個類之間的最大區分的方向(「線性判別式」)。


關於PCA和LDA更多細節可以在這兩篇文章中找到:

下面的圖像顯示了通過線性判別分析(LDA)將Iris數據轉換到二維特徵子空間後的情形。黑線表示了線性決策邊界,它將特徵空間分成了3個決策區域(R1,R2,R3)。在此決策區域的基礎上,新的觀測結果可被分為三個不同的花種之一:R1 → Virginica , R2 → Versicolor , and R3 → Setosa .


學習算法和超參數調整


學習算法各式各樣,數量龐大,有各種文章和應用對最流行的算法做了詳細的介紹。下面僅是對四種常用的監督學習算法所做的一個非常簡短的總結:

支持向量機(SVM)是利用採樣超平面分隔兩個或多個類的分類方法。最終,具有最大間隔的超平面被保留,其中「間隔」指的是從採樣點到超平面的最小距離。組成間隔的採樣點稱為支持向量,從而建立起最終的SVM模型。貝葉斯分類器是基於一個統計的模型(即貝葉斯定理:後驗概率的計算基於先驗概率和所謂的似然)。一個樸素貝葉斯分類器假定所有屬性都是條件獨立的,因此,計算似然可以簡化為計算帶有特定類標籤的獨立屬性的條件概率的乘積就行了。人工神經網絡(ANN)是模仿人或動物「大腦」的圖類分類器,其中相互連接的節點模擬的是神經元。決策樹分類器 是樹形圖,其中,圖中的節點用於測試某個特徵子集的特定條件,然後分支把決策分割到葉子節點上。圖中的樹葉表示最低級別,用於確定類的標籤。通過最小化基尼雜質,或者最大化信息增益可以訓練成為最佳樹。

可以使用Iris得到一個非常簡單的決策樹,像這樣:


如果分類器或者評估器的參數不是從機器學習步驟中直接得到的,而是利用單獨的優化得到,那麼這些參數稱為超參數。超參數優化的目標是提高分類器的性能,實現學習算法的良好泛化能力。一種常用的超參數優化方法是網格搜索。通常情況下,網格搜索是通過對候選參數進行窮舉搜索(相對於隨機參數優化)而實現的。當模型的所有參數組合都被評估之後,最佳組合將被保留下來。

預測誤差指標和模型選擇

混淆矩陣是一種用於性能評估的方便工具,它是一個方陣,裡面的列和行存放的是樣本的實際類vs預測類的數量。

「垃圾郵件與火腿」分類問題的混淆矩陣可以是這樣的:


通常,使用預測「準確率」或「差錯率」來報告分類性能。準確率定義為正確分類的樣本佔總樣本的比值;它經常被用作特異性/精密性的同義詞,儘管它的計算方法不同。準確率的計算公式是:


其中,TP =真陽性,TN =真陰性,P =陽性,N =陰性。

分類模型的經驗誤差可以通過計算1-準確率得到。

然而,如何選擇一個適當的預測誤差度量是高度依賴於具體問題的。在「垃圾郵件」分類的情況中,我們更加關注的是低誤報率。當然,垃圾郵件被分成了火腿肯定是煩人的,但不是那麼糟糕。要是一封郵件被誤分為垃圾郵件,而導致重要信息丟失,那才是更糟糕的呢。

在如「垃圾郵件」分類的二元分類問題中,有一種方便的方式來調整分類器,稱為接受者操作特性(ROC或ROC曲線)。


分類性能的其他指標還有靈敏度,特異性,查全率和精密性。

靈敏度(同查全率)和精密性用來評估二元分類問題中的「真陽性率」:也就是對「陽性/真」預測準確的概率(比如,當試圖預測某種疾病的時候,如果一個病人長了這種病,那么正確的預測出這個人長了這種病,就是「陽性/真」)。


特異性描述了二元分類問題中的「真陰性率」:這指的是對「假/陰性」情況作出正確預測的概率(例如,在試圖預測疾病時,對一個健康者,沒有預測到疾病,就是這種情況)。


在一個典型的監督學習的工作流程中,為了能夠選出一個具有滿意性能的模型,我們將會評估特徵子空間、學習算法和超參數的各種不同的組合。正如前面提到的,交叉驗證法是一種好的方法,可以避免過擬合我們的訓練數據。

原文: Predictive modeling, supervised machine learning, and pattern classification - the big picture(翻譯/Fashionxu 審校/周建丁)

本文為CSDN編譯整理,未經允許不得轉載,如需轉載請聯繫market#csdn.net(#換成@)

相關焦點

  • 數據建模中分類與預測模型
    如果還是利用過往的分析模式,個人的力量就顯得愈加薄弱。因此,利用量化平臺對多元化的數據進行提取,按照自身的分析模式搭建合理化的分析框架,自動化的得到針對基本面、技術面的分析結果的分析方法也開始逐漸火熱起來,這個結果根據需求既可以是定量的,也可以是定性的,目前這種量化建模的方式也已經在眾多私募、券商等中應用已久,但是對於大多數個體投資者而言,還是一個十分陌生的領域。
  • 回歸、分類與聚類:三大方向剖解機器學習算法的優缺點(附Python和R...
    對機器學習算法進行分類不是一件容易的事情,總的來看,有如下幾種方式:生成與判別、參數與非參數、監督與非監督等等。然而,就實踐經驗來看,這些都不是實戰過程中最有效的分類算法的方式。因為對於應用機器學習而言,開發者一般會在腦海中有一個最終目標,比如預測一個結果或是對你的觀察進行分類。因此,我們想介紹另一種對算法進行分類的路數,其基於機器學習任務來分類。
  • 【方法論】機器學習算法概覽
    回歸(Regression)  回歸是在自變量和需要預測的變量之間構建一個模型,並使用迭代的方法逐漸降低預測值和真實值之間的誤差。回歸方法是統計機器學習的一種 。這種方法把輸入數據映射到更高維度上,將其變得可分,使得歸類和回歸問題更容易建模。
  • 教程| 初學者如何選擇合適的機器學習算法(附速查表)
    機器學習算法的分類這一章節將對最流行的機器學習分類做一個概覽,如果你對這些分類很熟悉,可直接跳至下文「什麼時候使用具體算法」這一節。監督學習監督學習算法基於一組樣本對作出預測。例如,以往銷售業績可以用來預測未來的價格走勢。藉助監督學習,我們會有一組由標註訓練數據組成的輸入變量和一組希望預測的輸出變量。
  • 如何區分人工智慧、機器學習和深度學習?
    深度學習(Deep Learning)是一種機器學習的方法,它試圖使用包含複雜結構或由多重非線性變換構成的多個處理層(神經網絡)對數據進行高層抽象的算法。神經網絡是一組大致模仿人類大腦構造設計的算法,用於識別模式。神經網絡通過機器感知系統解釋傳感器數據,能夠對原始輸入進行標記或聚類等操作。
  • 機器學習入門案例:鳶尾花數據集分類 繪製PR曲線
    案例使用鳶尾花數據集進行分類預測,並繪製評價分類性能的PR曲線圖 認識分類任務和數據集 Iris(鳶尾花)數據集
  • 大講堂 | 預測時間敏感的機器學習模型建模與優化
    原標題:大講堂 | 預測時間敏感的機器學習模型建模與優化 雷鋒網AI研習社訊:機器學習模型現在已經廣泛應用在越來越多的領域比如地震監測,闖入識別,高頻交易;同時也開始廣泛的應用在行動裝置中比如通過邊緣計算。這些真實世界的應用在原有的模型精度基礎之上帶來很多實際約束比如預測要在很短或規定時間內完成。
  • 流行的機器學習算法總結,幫助你開啟機器學習算法學習之旅
    這些算法的工作方式是,為它們提供第一批數據,並且隨著時間的流逝和算法的準確性的提高,額外的數據也被引入到算法中。定期將算法應用於新數據和新經驗的過程可提高機器學習的整體效率。機器學習算法對於與分類,預測建模和數據分析相關的各種任務至關重要。「機器學習方面的突破將價值十個微軟。」
  • 數據科學家應該知道的頂級機器學習算法
    因為它迫使您考慮輸入數據的角色和模型準備過程。另外,選擇最適合您的問題的方法以獲得最佳結果。讓我們看一下機器學習算法中的三種不同的學習風格:監督學習基本上,在此監督式機器學習中,輸入數據稱為訓練數據,並且一次具有已知標籤或結果,例如垃圾郵件/非垃圾郵件或股票價格。在此,通過訓練過程準備了模型。另外,在此需要做出預測。並在這些預測錯誤時進行糾正。
  • MemTrax機器學習分類模型有效應用於認知障礙的診斷支持
    機器學習建模在輕度認知障礙分類中的效用」的論文,這也是MemTrax在中國應用的臨床研究成果發表的SCI文章。我們主要研究目標是:驗證MemTrax 測試結果-識別正確率和反應時間,相關人口統計學和健康特徵能否有效地用於機器學習開發的預測模型對蒙特婁認知評估 (MoCA) 界定的認知健康進行分類(正常人群與 MCI患者)。以及上述機器學習模型能否有效地應用於臨床診斷確定的認知障礙患者嚴重程度(輕重度與嚴重性)的預測。
  • 謝國彤:疾病預測的機器學習、深度學習和經典回歸方法
    近年來,機器學習領域的特徵選擇和有監督學習建模方法越來越多地用於疾病預測問題。一些機器學習方法可以提高預測模型的可解釋性,例如決策樹方法。另一方面,一些較新的機器學習方法可以帶來更好的預測性能。2010 年發表於 KDD 的文章 [Khosla et al. 2010] 採用了特徵選擇和機器學習方法來預測 5 年內的腦卒中發生率。
  • 獨家 | 機器學習中的四種分類任務(附代碼)
    分別是二分類、多類別分類、多標籤分類、不平衡分類,並提供了實戰代碼。 標籤:機器學習機器學習是一個研究領域,其涉及到從示例中學習的算法。分類是一項需要使用機器學習算法去學習如何根據問題域為示例分配類標籤的任務。一個簡單易懂的例子是將電子郵件分為「垃圾郵件」或「非垃圾郵件」。在機器學習中,你可能會遇到許多不同類型的分類任務,並且每種模型都會使用專門的建模方法。
  • 數據科學和機器學習的最佳Python庫
    它包含所有有監督的和無監督的機器學習算法,並且還具有用於集合學習和促進機器學習的定義明確的功能。以下是Scikit學習的功能列表:提供一組標準數據集,以幫助您開始使用機器學習。例如,著名的Iris數據集和Boston House Price數據集是Scikit-learn庫的一部分。
  • 新手必看的十種機器學習算法
    大的原則不過,對於預測建模來說,有一條通用的原則適用於所有監督學習算法。機器學習算法可以描述為學習一個目標函數 f,它能夠最好地映射出輸入變量 X 到輸出變量 Y。有一類普遍的學習任務。我們要根據輸入變量 X 來預測出 Y。我們不知道目標函數 f 是什麼樣的。
  • 想快速部署機器學習項目?來看看幾大主流機器學習服務平臺對比吧
    所有數據的預處理操作都是自動執行的:包括確認哪些欄位是分類標籤,哪些是數字,而且不需要用戶選擇進一步的數據預處理方法(降維還是白化)。Amazon ML 的預測能力限於三種:二分類,多分類,以及回歸任務。也就是說,Amazon ML 服務不支持無監督的學習方法,用戶必須在訓練集中選擇標記好的目標變量。
  • 萬字乾貨 | 一文助你了解機器學習
    本文將通過大量案例和通俗易懂的「人話」,講述機器學習建模邏輯和使用場景,讓非數據科學專業的職場人都可以快速了解機器學習是什麼,能做什麼,如何用!筆者有幸參與了一個機器學習建模實驗室項目,項目的本質是抽象機器學習建模流程,將機器學習建模過程組件化,通過在畫布上對組件(算子)靈活連接,讓非專家用戶(不會寫代碼,不熟悉算法模型和調參的產品經理,市場運營,行政財務等職場人)可以快速搭建機器學習模型,實現業務預測,極大降低機器學習應用門檻。
  • 三張圖讀懂機器學習:基本概念、五大流派與九種常見算法
    四大會計師事務所之一的普華永道(PwC)近日發布了多份解讀機器學習基礎的圖表,其中介紹了機器學習的基本概念、原理、歷史、未來趨勢和一些常見的算法。為便於讀者閱讀,機器之心對這些圖表進行了編譯和拆分,分三大部分對這些內容進行了呈現,其中也加入了一些擴展連結,希望能幫助你進一步擴展閱讀。 一、機器學習概覽
  • 複雜系統自動建模綜述:描述、預測與理論發現
    該方法主要基於以圖的形式結構化神經網絡模型的表示和計算,從而提高模型在學習具備顯式和隱式模塊結構的數據時的泛化能力。GCN的概念首次提出於ICLR2017(成文於2016年),它實際上跟CNN的作用一樣,就是一個特徵提取器,只不過它的對象是圖數據,用於執行圖結構數據中節點的半監督分類任務。
  • 人工智慧視域下機器學習的教育應用與創新探索
    預測模型通過已知的數據預測未知的數據,例如,通過分析學生的成績來預測學習表現;描述模型通過分析數據發現新的模式或結構。知識是機器學習的發現,主要分為原理類、實踐類和優化類知識[23]。(三)作用方法目前,應用於教育領域的機器學習方法有很多,例如,分類、回歸、聚類、文本挖掘、異常檢查、關聯規則挖掘、社會網絡分析、模式發現和序列模式分析等[24-26]。其中,預測和聚類是目前最熱門的。1、預測(Prediction)預測旨在開發一個模型,從數據其他方面的集合(預測變量)中,推斷數據的一個單一方面(被預測變量)。
  • 入門| 機器學習新手必看10大算法
    在機器學習中,有一種叫做「沒有免費的午餐」的定理。簡而言之,它指出沒有任何一種算法對所有問題都有效,在監督學習(即預測建模)中尤其如此。 例如,你不能說神經網絡總是比決策樹好,反之亦然。有很多因素在起作用,例如數據集的大小和結構。