總而言之,我們可以通過問自己算法需要解決什么問題,進而發現算法的正確分類。
上面這張圖包含了一些我們還沒有討論的技術術語:
-
分類(Classification):當數據被用來預測一個分類,監督學習也被稱為分類。這是一個例子當指定一張相作為“貓”或“狗”的圖片。當只有兩種選擇時,稱為二類(two-class)或二項式分類(binomial
classification)。當有更多類別的時候,當我們預測下一個諾貝爾物理學獎得住,這個問題被稱為多項式分類(multi-class
classification)。 -
回歸(Regression):當一個值被預測時,與股票價格一樣,監督學習也被稱為回歸。
-
聚類(Clustering):非監督學習最常用的方法是聚類分析或者聚類。聚類是一組對象組的任務,在這樣的一種方式下,在同一組中的對象(稱為集群)是更加相似的(在某一種意義上),相比其他組(集群)里的對象。
-
異常檢測(Anomaly
detection):需要在目標里找到不尋常的數據點。在欺詐檢測里,例如,任何非常不尋常的信用卡消費模式都是可以的。可能的變化很多,而訓練示例很少,這看起來不是一種可行方式了解欺詐活動。異常檢測需要的方法是簡單地了解什么是正常的活動(使用非欺詐交易歷史記錄),並且確定明顯不同的內容。
第2步:找到可用的算法
現在我們有分類問題,我們可以使用工具去調研和驗證算法是可行的和可實踐的。
Microsoft Azure已經創建了一個方便的算法表格,這個表格顯示算法可以被用於哪些問題分類。雖然這個表格是針對Azure軟件,它一般適用於:
一些值得關注的算法是:
分類(Classification):
-
支持向量機(SVM):通過盡可能寬的邊緣方式發現分離類的邊界。當二分式不能清晰的切分時,算法找到最好的邊界。這個算法真正的亮點是強烈的數據特征,好像文本或者染色體組(>100特性)。在這些情況下,SVMs比其許多其他算法更快遞切分二項,也更少地過度擬合,除了需要少量的內存。
-
人工神經網絡(Artificial neural networks):是大腦啟發學習算法,覆蓋多項式分類、二項式分類,以及回歸問題。它們帶來了無限的多樣性,包括感知和深度學習。它們花費很長時間進行訓練,但是帶來各種應用領域的先進性能。
-
邏輯回歸(Logistic regression):雖然包含‘回歸’這個詞看上去有點令人費解,邏輯回歸事實上是一個對於二項式和多項式分類來說強大的功能。它很快和簡單。事實是它使用了‘S’形曲線代替直線讓它對於切分數據進入組變得很自然。邏輯回歸給出線性分類邊界(linear class boundaries),所以當你使用它來確保一個線性近似的時候,類似於你生活中可以使用的一些東西。
-
決策樹和隨機樹(Decision trees、random forests):決策森林(回歸、二項式,以及多項式),決策叢林(二項式、多項式),以及提高決策樹(回歸和二項式)所有被稱為決策樹,一種機器學習的基本概念。決策樹的變種有很多,但是它們都做了相同的事情,使用相同的標簽細分特征空間到各個區域。這些可以是一致類別或者恆定值的區域,依賴於是否你正在做分類或者回歸。
回歸(Regression):
-
線性回歸(Linear
regression):線性回歸擬合直接(或者平台,或者超平面)數據集。這是一個工具,簡單而快速,但是對於一些問題可能過於簡單。 -
貝葉斯線性回歸(Bayesian linear
regression):它有非常可取的品質,避免了過度擬合。貝葉斯方式實現它通過對可能分布的答案作出一些假設。這種方式的其他副產品是它們有很少的參數。 -
提高決策樹回歸:如上所述,提高決策樹(回歸或二項式)是基於決策樹的,並通過細分大多數相同標簽的特征空間到區域完成。提高決策樹通過限制它們可以細分的次數和每一個區域的最小數據點數量避免過度擬合。算法構造一顆序列樹,每一顆樹學習補償樹前留下的錯誤。結果是非常准確的學習者,該算法傾向於使用大量內存。
聚合(Clustering):
-
層次聚類(Hierarchical
clustering):層次聚類的試圖簡歷一個層次結構的聚類,它有兩種格式。聚集聚類(Agglomerative
clustering)是一個“自下而上”的過程,其中每個觀察從自己的聚類開始,隨着其在層次中向上移動,成對的聚類會進行融合。分裂聚類(Divisive
clustering)則是一種“自頂向下”的方式,所有的觀察開始於一個聚類,並且會隨着向下的層次移動而遞歸式地分裂。整體而言,這里進行的融合和分裂是以一種激進的方式確定。層次聚類的結果通常表示成樹狀圖(dendrogram)形式。 -
k-均值聚類(k-means
clustering)的目標是將n組觀測值分為k個聚類,其中每個觀測值都屬於其接近的那個均值的聚類,這些均值被用作這些聚類的原型。這會將數據空間分割成Voronoidan單元。
異常檢測(Anomaly detection):
-
K最近鄰(k-nearest
neighbors/k-NN)是用於分類和回歸的非參數方法。在這兩種情況下,輸入都是由特征空間中與k最接近的訓練樣本組成的。在k-NN分類中,輸出是一個類成員。對象通過其k最近鄰的多數投票來分類,其中對象被分配給k最近鄰並且最常見的類(k是一個正整數,通常較小)。在k-NN回歸中,輸出為對象的屬性值。該值為其k最近鄰值的平均值。 -
單類支持向量機(One-class
SVM):使用了非線性支持向量機的一個巧妙的擴展,單類支持向量機可以描繪一個嚴格概述整個數據集的邊界。遠在邊界之外的任何新數據點都是足夠非正常的,也是值得特別關注的。
第3步:實現所有適用的算法
對於給定的問題,通常會有一些候選算法可以適用。所以我們如何知道哪一個可以挑選?通常,這個問題的答案不是那么直截了當的,所以我們必須反復試驗。
原型開發最好分兩步完成。第一步,我們希望通過最小化特征工程快速而簡單地完成幾種算法的實現。在這個階段,我們主要興趣在粗略來看那個算法表現更好。這個步驟有點類似招聘:我們會盡可能地尋找可以縮短我們候選算法列表的理由。
一旦我們將列表縮減為幾個候選算法,真正的原型開發開始了。理想地,我們想建立一個機器學習流程,使用一組經過精心挑選的評估標准比較每個算法在數據集上的表現。在這個階段,我們只處理一小部分的算法,所以我們可以把注意力轉到真正神奇的地方:特征工程。
摘自:http://www.infoq.com/cn/news/2017/03/Learning-machine-Demand-selectio