1. 程式人生 > >機器學習:有監督演算法之分類

機器學習:有監督演算法之分類

說明:機器學習橫跨電腦科學、工程技術和統計學等多個科學。人們很難直接從原始資料本身獲得所需資訊,機器學習可以把無序的資料轉換成有用的資訊;移動計算和感測器產生的海量資料意味著未來將面臨越來越多的資料,如何從中抽取到有價值的資訊很重要,機器學習可以幫助我們從中抽取有用的資訊。本文主要根據《機器學習實戰》和網上搜集的一些有關機器學習的總結經驗貼,具體的連結忘記了,因此這裡將檔案型別設定為翻譯,還望見諒。

編輯: a_siasin

日期:2016年7月29日

一、機器學習的主要任務

如何解決分類問題和迴歸是機器學習其中兩個主要任務,分類就是將例項資料劃分到合適的分類中,迴歸主要用於預測數值型資料。分類和迴歸屬於監督學習

[x1] ,這類演算法必須知道預測什麼,即目標變數的分類資訊。與其對應的無監督學習,這類演算法的資料沒有類別資訊,也沒有給定目標值。在無監督學習中,將資料集分成有類似的物件組成的多個類的過程被稱為聚類;將尋找描述資料統計值的過程稱之為密度估計;此外無監督學習還可以用於降維。

表1 用於執行分類、迴歸、聚類和密度估計的機器學習演算法

監督學習的用途

k-近鄰演算法

線性迴歸

樸素貝葉斯演算法

區域性加權線性迴歸

支援向量機

Ridge迴歸

決策樹

Lasso最小回歸係數估計

無監督學習的用途 

K-均值

最大期望演算法

DBSCAN

Parzen窗設計

二、如何選擇合適的演算法

在選擇演算法的時候,應考慮以下兩個問題:使用機器學習演算法的目的,想要演算法完成何種任務;另一個就是需要分析和收集的資料是什麼。

1、考慮使用機器學習演算法的目的

(1)    確定演算法型別:如果想要預測目標變數的值,則可以選擇監督學習演算法,否則可以選擇無監督學習演算法。

(2)    如果選擇確定為監督學習演算法,要進一步確定目標變數的型別,如,是離散型的數值還是連續性的數值,如果是離散型數值,則選擇分類演算法;如果是連續性數值,則選擇迴歸演算法。

(3)    如果選擇確定為無監督學習演算法,要進步將資料劃分為離散的組,使用聚類演算法,如果還需要估計資料與每個分組的相似程度,則需要使用密度估計演算法。

2、考慮資料的問題

需要充分了解資料,對資料瞭解的越充分,越容易建立符合實際需求的應用程式。主要了解資料的以下特徵:

(1)    特徵值是離散變數還是連續變數

(2)    特徵值中是否存在缺失值,何種原因造成的缺失值

(3)    資料中是否存在異常值

(4)    某個特徵發生的頻率如何

充分了解資料特徵性可以縮短選擇機器學習演算法的時間,但是我們也只是在一定程度上縮小演算法的選擇範圍,一般並不存在最好的演算法,但是可以給出最好結果的演算法,所以一般還要嘗試不同演算法的執行結果。對於所選擇的每種演算法,都可以使用其他的機器學習技術來改進其效能。在處理輸入資料之後,兩個演算法的相對效能也可能會發生變化。

三、機器學習應用程式的步驟

學習和使用機器學習演算法開發應用程式,通常遵循以下的步驟:

(1)    資料的收集。常用的方法有:製作網路爬蟲從網站上抽取資料、從RSS反饋或者API中得到資訊、裝置傳送過來的實測資料(風速、血糖等)。為了節省時間和精力,可以使用公開的資料來源。

(2)    準備輸入資料。得到資料後,還必須為機器學習演算法準備特定的資料格式,如某些演算法要求特徵值使用特定的格式,一些演算法要求目標變數和特徵值是字串型別,另一些演算法則可能要求是整數型別。

(3)    分析輸入資料。該步驟主要是人工分析之前得到的資料,最簡單的方法是用文字編輯器開啟資料檔案,檢視得到的資料是否為空值、分析是否可以識別出模式、資料中是否存在明顯的異常值,如某些資料點與資料集中的其他值存在明顯的差異。

此步驟需要人工干預,如果在自動化系統中還需要人工干預,顯然就降低了系統的價值。這一步的主要作用是確保資料集中沒有垃圾資料。如果是在產品化系統中使用機器學習演算法並且演算法可以處理系統產生的資料格式,或者我們信任資料來源,這一步驟可以省略。

(4)    根據演算法的不同,第4步和第5步是機器學習演算法的核心。我們將前兩步得到的格式化資料輸入到演算法,從中抽取知識或資訊。這裡得到的知識需要儲存為計算機可以處理的格式,方便後續步驟使用。如果使用的是無監督學習演算法,不需要訓練演算法,所有的演算法相關內容集中在第5步。

(5)    為了評估演算法,必須測試演算法工作的效果。對於監督學習,必須已知用於評估演算法的目標變數值;對於無監督學習,也必須用其他的評測手段來檢驗演算法的成功率。無論哪種情形,如果不滿意演算法的輸出結果,則可以回到第4步,改正並加以測試。問題常常會跟資料的收集和準備有關,這時你就必須跳回第1步重新開始。

(6)    使用演算法。將機器學習演算法轉換為應用程式,執行實際任務,以檢驗上述步驟是否可以在實際環境中正常工作。此時如果碰到新的資料問題,同樣需要重複執行上述的步驟。

四、機器學習的演算法

1、k-近鄰演算法

(1)k-鄰近演算法的概述

k-近鄰演算法採用測量不同特徵值之間的距離方法進行分類。該方法的思路是:如果一個樣本在特徵空間中的k個最相似(即特徵空間中最鄰近)的例項中的大多數屬於某一個類別,則該樣本也屬於這個類別。所謂k-近鄰演算法,即是給定一個訓練資料集,對新的輸入樣本,在訓練資料集中找到與該例項最鄰近的k個例項, 這k個例項的多數屬於某個類,就把該輸入樣本分類到這個類中。選擇不同的k,得到的分類結果可能會有不同,當無法判定當前待分類點是從屬於已知分類中的哪一類時,我們可以依據統計學的理論看它所處的位置特徵,衡量它周圍鄰居的權重,把它歸為到權重更大的那一類。這是k-近鄰演算法的核心思想。

KNN(k-NearestNeighbour)方法雖然從原理上也依賴於極限定理,但在類別決策時,只與極少量的相鄰樣本有關。由於KNN方法主要靠周圍有限的鄰近的樣本,而不是靠判別類域的方法來確定所屬類別的,因此對於類域的交叉或重疊較多的待分樣本集來說,KNN方法較其他方法更為適合。

k-近鄰演算法使用的模型實際上對應於對特徵空間的劃分。k值的選擇,距離度量和分類決策規則是該演算法的三個基本要素:

①     k值的選擇會對演算法的結果產生重大影響。k值較小意味著只有與輸入樣本較近的訓練例項才會對預測結果起作用,但容易發生過擬合;如果k值較大,優點是可以減少學習的估計誤差,但缺點是學習的近似誤差增大,這時與輸入樣本較遠的訓練例項也會對預測起作用,是預測發生錯誤。在實際應用中,k值一般選擇一個較小的數值,通常採用交叉驗證的方法來選擇最優的k值。隨著訓練例項數目趨向於無窮和k=1時,誤差率不會超過貝葉斯誤差率的2倍,如果k也趨向於無窮,則誤差率趨向於貝葉斯誤差率;

②     該演算法中的分類決策規則往往是多數表決,即由輸入樣本的k個最臨近的訓練例項中的多數類決定輸入樣本的類別;

③     距離度量一般採用LP距離[x2] ,當p=2時,即為歐氏距離,在度量之前,應該將每個屬性的值規範化,這樣有助於防止具有較大初始值域的屬性比具有較小初始值域的屬性的權重過大。

(2)k-近鄰演算法的用途和優缺點

KNN演算法不僅可以用於分類,還可以用於迴歸。通過找出一個樣本的k個最近鄰居,將這些鄰居的屬性的平均值賦給該樣本,就可以得到該樣本的屬性。更有用的方法是將不同距離的鄰居對該樣本產生的影響給予不同的權重(weight),如權重與距離成反比。實現k-近鄰演算法時,主要考慮的問題是如何對訓練資料進行快速k-近鄰搜尋,這在特徵空間維數大及訓練資料容量大時非常必要。

① 優點:精度高、對異常值不敏感、無資料輸入假定。

② 缺點以及部分解決方案:計算複雜度高、空間複雜度高。當樣本不平衡時,如一個類的樣本容量很大,而其他類樣本容量很小時,有可能導致當輸入一個新樣本時,該樣本的k個鄰居中大容量類的樣本佔多數,常用的解決方法是利用距離給每個已知的樣本賦予權重;因為對每一個待分類的文字都要計算它到全體已知樣本的距離,才能求得它的k個最近鄰點,所以計算量較大。目前常用的解決方法是事先對已知樣本點進行剪輯,事先去除對分類作用不大的樣本;該演算法比較適用於樣本容量比較大的類域的自動分類,而那些樣本容量較小的類域採用這種演算法比較容易產生誤分。

③ 適用資料範圍:數值型和標稱型。

注意:KNN演算法中,所選擇的鄰居都是已經正確分類的物件。該方法在定類決策上只依據最鄰近的一個或者幾個樣本的類別來決定待分樣本所屬的類別。

(3)k-近鄰演算法的一般流程

① 收集資料:可以使用任何方法。

② 準備資料:距離計算所需要的數值,最好是結構化的資料格式。

③ 分析資料:可以使用任何方法。

④ 測試演算法:計算錯誤率。

⑤ 使用演算法:首先需要輸入樣本資料和結構化的輸出結果,然後執行k-近鄰演算法判定輸入資料分別屬於哪個分類,最後應用對計算出的分類執行後續的處理。

(4)k-近鄰演算法的實現

對未知類別屬性的資料集中的每個點依次執行以下操作:

①計算已知類別資料集中的點與當前點之間的距離(k-近鄰演算法常用歐氏距離和馬氏距離);

②按照距離遞增次序排序;

③選取與當前點距離最小的k個點;

④確定前k個點所在類別的出現頻率;

⑤返回前k個點出現頻率最高的類別作為當前點的預測分類。

2、決策樹

(1)決策樹演算法的概述

決策樹(Decision Tree)是在已知各種情況發生概率的基礎上,通過構成決策樹來求取淨現值的期望值大於等於零的概率,評價專案風險,判斷其可行性的決策分析方法,是直觀運用概率分析的一種圖解法。在機器學習中,決策樹是一個預測模型,他代表的是物件屬性與物件值之間的一種對映關係。Entropy=系統的凌亂程度。決策樹是一種樹形結構,其中每個內部節點表示一個屬性上的測試,每個分支代表一個測試輸出,每個葉節點代表一種類別。一個決策樹包含三種類型的節點:

①決策點(□),是對幾種可能方案的選擇,即最後選擇的最佳方案。如果決策屬於多級決策,則決策樹的中間可以有多個決策點,以決策樹根部的決策點為最終決策方案,通常用矩形來表示。

②狀態節點(○),代表備選方案的經濟效果(期望值),通過各狀態節點的經濟效果的對比,按照一定的決策標準就可以選出最佳方案。由狀態節點引出的分支稱為概率枝,概率枝的數目表示可能出現的自然狀態數目每個分枝上要註明該狀態出現的概率,通常用圓圈來表示。

③結果節點(△),將每個方案在各種自然狀態下取得的損益值標註於結果節點的右端,通常用三角形來表示。

(2)決策樹優缺點

① 優點:計算複雜度不高,輸出結果易於理解,對中間值的缺失不敏感,可以處理不相關特徵資料。

② 缺點以及部分解決方案:對連續性的欄位比較難預測;對有時間順序的資料,需要很多預處理的工作;當類別太多時,錯誤可能就會增加的比較快;可能會產生過度匹配問題。

③ 適用資料型別:數值型和標稱型。

(3)決策樹的一般流程

①收集資料:可以使用任何方法。

②準備資料:樹構造演算法只適用於標稱型資料,因此數值型資料必須離散化。

③分析資料:可以使用任何方法,構造樹完成之後,我們應該檢查圖形是否符合預期。

④訓練演算法:構造樹的資料結構。

⑤測試演算法:使用經驗樹計算錯誤率。

⑥使用演算法:使用決策樹可以更好地理解資料的內在含義。

3、樸素貝葉斯

(1)樸素貝葉斯演算法概述

貝葉斯分類是一系列分類演算法的總稱,這類演算法均以貝葉斯定理為基礎,故統稱為貝葉斯分類。樸素貝葉斯分類器基於一個簡單的假定:給定目標值時屬性之間相互條件獨立。獨立性假設是指一個詞的出現概率並不依賴於文件中的其他詞。當然我們也知道這個假設過於簡單。這就是之所以稱為樸素貝葉斯的原因。儘管條件獨立性假設並不正確,但是樸素貝葉斯仍然是一種有效的分類器。

(2)樸素貝葉斯優缺點

① 優點:在資料較少的情況下仍然有效,可以處理多類別問題;使用概率有時要比使用硬規則更為有效;貝葉斯概率及貝葉斯準則提供了一種利用已知值來估計未知概率的有效方法;可以通過特徵之間的條件獨立性假設,降低對資料量的需求。

② 缺點以及部分解決方案:對於輸入資料的準備方式較為敏感。

③ 適用資料型別:標稱型資料。

(3)樸素貝葉斯的一般流程

①收集資料:可以使用任何方法。

②準備資料:需要數值型或者布林型資料。

③分析資料:有大量特徵時,繪製特徵作用不大,此時使用直方圖效果更好。

④訓練演算法:計算不同的獨立特徵的條件概率。

⑤測試演算法:計算錯誤率。

⑥使用演算法:一個常見的樸素貝葉斯應用是文件分類。可以在任意的分類場景中使用樸素貝葉斯分類器,不一定非要是文字。

4、Logistic 迴歸

(1)Logistic 迴歸的概述

Logistic迴歸又稱Logistic迴歸分析,是一種廣義的線性迴歸分析模型,常用於資料探勘,疾病自動診斷,經濟預測等領域。發生概率除以沒有發生概率再取對數。就是這個不太繁瑣的變換改變了取值區間的矛盾和因變數自變數間的曲線關係。究其原因,是發生和未發生的概率成為了比值,這個比值就是一個緩衝,將取值範圍擴大,再進行對數變換,整個因變數改變。不僅如此,這種變換往往使得因變數和自變數之間呈線性關係,這是根據大量實踐而總結。所以,Logistic迴歸從根本上解決因變數要不是連續變數怎麼辦的問題。還有,Logistic應用廣泛的原因是許多現實問題跟它的模型吻合。

(2)Logistic 迴歸的優缺點

① 優點:計算代價不高,易於理解和實現。

② 缺點:容易欠擬合,分類精度不高。

③ 適用資料型別:數值型和標稱型資料;因變數為二分類的分類變數或某事件的發生率,並且是數值型變數;重複計數現象指標不適用;殘差和因變數都要服從二項分佈。

(3)Logistic 迴歸的一般流程

①收集資料:採用任意方法收集資料。

②準備資料:由於需要進行距離計算,因此要求資料型別為數值型。

③分析資料:採用任意方法對資料進行分析。

④訓練演算法:大部分時間將用於訓練,訓練的目的是為了找到最佳的分類迴歸係數。

⑤測試演算法:一旦訓練步驟完成,分類將會很快。

⑥使用演算法:首先需要輸入一些資料,並將其轉換成對應的結構化數值;接著,基於訓練好的迴歸係數可以對這些數值進行簡單的迴歸計算,判定它們屬於哪個類別,最後,我們就可以在輸出的類別上做一些其他分析工作。

5、支援向量機(SVM)

(1)SVM的概述

支援向量機可以分析資料,識別模式,用於分類和迴歸分析。給定一組訓練樣本,每個標記為屬於兩類,一個SVM訓練演算法建立了一個模型,分配新的例項為一類或其他類,使其成為非概率二元線性分類。

(2)SVM優缺點

① 優點:泛化錯誤率低,計算開銷不大,結果易解釋。

② 缺點:對引數調節和核函式的選擇敏感,原始分類器不加修改僅適用於處理二類問題。

③ 適用資料型別:數值型和標稱型資料。

(3)SVM的一般流程

① 收集資料:可以使用任意方法。

② 準備資料:需要數值型資料。

③ 分析資料:有助於視覺化分隔超平面。

④ 訓練演算法:SVM的大部分時間都源自訓練,該過程主要實現兩個引數的調優。

⑤ 測試演算法:十分簡單的計算過程就可以實現。

⑥ 使用演算法:幾乎所有分類問題都可以使用SVM,SVM本身是一個二類分類器。

6、AdaBoost元演算法

(1)AdaBoost演算法的概述

自舉匯聚法(bootstrap aggregating),也稱為bagging方法,是在從原始資料集選擇n次後得到n個新資料集的一種技術。新資料集和原資料集的大小相等。每個資料集都是通過在原始資料集中隨機選擇一個樣本來進行替換而得到的。這裡的替換就意味著可以多次地選擇同一樣本。這一性質就允許新資料集中可以有重複的值,而原始資料集的某些值在新集合中則不再出現。在n個數據集建好之後,將某個學習演算法分別作用於每個資料集就得到了n個分類器。當我們要對新資料進行分類時,就可以應用這n個分類器進行分類。與此同時,選擇分類器投票結果中最多的類別作為最後的分類結果。

boosting是一種與bagging很類似的技術。不論是在boosting還是bagging當中,所使用的多個分類器的型別都是一致的。但是在前者當中,不同的分類器是通過序列訓練而獲得的,每個新分類器都根據已訓練出的分類器的效能來進行訓練。boosting是通過集中關注被已有分類器錯分的那些資料來獲得新的分類器。

由於boosting分類的結果是基於所有分類器的加權求和結果的,因此boosting和bagging不太一樣。bagging中的分類器權重是相等的,而boosting中的分類器權重並不相等,每個權重代表的是其對應分類器在上一輪迭代中的成功度。

boosting方法擁有多個版本,其中一個最流行的版本就是AdaBoost 。

(2)AdaBoost演算法的優缺點

① 優點:泛化錯誤率低,易編碼,可以應用在大部分分類器上,無引數調整。

② 缺點:對離群點敏感。

③ 適用資料型別:數值型和標稱型資料。

(3)AdaBoost演算法的一般流程

①收集資料:可以使用任意方法。

②準備資料:依賴於所使用的弱分類器型別,如果是單層決策樹,可以處理任何資料型別。

③分析資料:可以使用任意方法。

④訓練演算法:AdaBoost的大部分時間都用在訓絲上,分類器將多次在同一資料集上訓練弱分類器。

⑤測試演算法:計算分類的錯誤率。

⑥使用演算法:同SVM一樣,AdaBoost預測兩個類別中的一個。如果想把它應用到多個類別的場合,那麼就要像多類SVM中的做法一樣對AdaBoost進行修改。

五、其它資料對機器學習的解釋

1、機器學習的概念

如果我的資料越多,我的模型就越能夠考慮到越多的情況,由此對於新情況的預測效果可能就越好。這是機器學習界“資料為王”思想的一個體現。一般來說(不是絕對),資料越多,最後機器學習生成的模型預測的效果越好。


圖1 機器學習與人類思考的類比

人類在成長、生活過程中積累了很多的歷史與經驗。人類定期地對這些經驗進行“歸納”,獲得了生活的“規律”。當人類遇到未知的問題或者需要對未來進行“推測”的時候,人類使用這些“規律”,對未知問題與未來進行“推測”,從而指導自己的生活和工作。

機器學習中的“訓練”與“預測”過程可以對應到人類的“歸納”和“推測”過程。通過這樣的對應,我們可以發現,機器學習的思想並不複雜,僅僅是對人類在生活中學習成長的一個模擬。由於機器學習不是基於程式設計形成的結果,因此它的處理過程不是因果的邏輯,而是通過歸納思想得出的相關性結論。

這也可以聯想到人類為什麼要學習歷史,歷史實際上是人類過往經驗的總結。有句話說得很好,“歷史往往不一樣,但歷史總是驚人的相似”。通過學習歷史,我們從歷史中歸納出人生與國家的規律,從而指導我們的下一步工作,這是具有莫大價值的。

2、機器學習的範圍

機器學習跟模式識別,統計學習,資料探勘,計算機視覺,語音識別,自然語言處理等領域有著很深的聯絡。從範圍上來說,機器學習跟模式識別,統計學習,資料探勘是類似的,同時,機器學習與其他領域的處理技術的結合,形成了計算機視覺、語音識別、自然語言處理等交叉學科。


圖2 機器學習與相關學科

(1)模式識別

模式識別=機器學習(分類)。兩者的主要區別在於前者是從工業界發展起來的概念,後者則主要源自計算機學科。在著名的《Pattern Recognition And Machine Learning》這本書(已下載)中,Christopher M. Bishop在開頭是這樣說的“Pattern recognition has itsorigins in engineering, whereas machine learning grew out of computer science.However, these activities can be viewed as two facets of the same field, andtogether they have undergone substantial development over the past ten years.”。

(2)資料探勘

資料探勘=機器學習+資料庫。資料探勘僅僅是一種思考方式,告訴我們應該嘗試從資料中挖掘出知識,但不是每個資料都能挖掘出金子的。一個系統絕對不會因為上了一個數據挖掘模組就變得無所不能(這是IBM最喜歡吹噓的),恰恰相反,一個擁有資料探勘思維的人員才是關鍵,而且他還必須對資料有深刻的認識,這樣才可能從資料中匯出模式指引業務的改善。大部分資料探勘中的演算法是機器學習的演算法在資料庫中的優化。

(3)統計學習

統計學習≈機器學習。統計學習是個與機器學習高度重疊的學科。在某種程度上兩者是有分別的,主要在於:統計學習者重點關注的是統計模型的發展與優化,偏數學,而機器學習者更關注的是能夠解決問題,偏實踐,因此機器學習研究者會重點研究學習演算法在計算機上執行的效率與準確性的提升。

(4)計算機視覺

計算機視覺=影象處理+機器學習。影象處理技術用於將影象處理為適合進入機器學習模型中的輸入,機器學習則負責從影象中識別出相關的模式。計算機視覺相關的應用非常的多,例如百度識圖、手寫字元識別、車牌識別等等應用。隨著機器學習的新領域深度學習的發展,大大促進了計算機影象識別的效果,因此未來計算機視覺界的發展前景不可估量。

(5)語音識別

語音識別=語音處理+機器學習。語音識別就是音訊處理技術與機器學習的結合。語音識別技術一般不會單獨使用,一般會結合自然語言處理的相關技術。目前的相關應用有蘋果的語音助手Siri等。

自然語言處理=文字處理+機器學習。自然語言處理技術主要是讓機器理解人類的語言的一門領域。在自然語言處理技術中,大量使用了編譯原理相關的技術,例如詞法分析,語法分析等等,除此之外,在理解這個層面,則使用了語義理解,機器學習等技術。作為唯一由人類自身創造的符號,自然語言處理一直是機器學習界不斷研究的方向。

六、待解決問題

1、以上演算法的延伸優化演算法,還有很多,有待進一步探討研究。

2、以上演算法的總結,僅僅侷限於有監督學習中的分類,對於迴歸預測的相關方法還需要進一步探討學習。

 [x1]所謂監管學習就是給定一堆樣本,每個樣本都有一組屬性和一個類別,這些類別是事先確定的,那麼通過學習得到一個分類器,這個分類器能夠對新出現的物件給出正確的分類。這樣的機器學習就被稱之為監督學

 [x2]定義距離應滿足的條件:

(1)非負性,即對所有的i和j,恆有dij>=0同時,當且僅當兩個樣品的p個變數對應相等時,其等式才成立;

(2)對稱性,即對所有的i,j恆有dij=dji

(3)滿足三角不等式,即對所有的i,j,k,恆有dij<djk+dki

 [x3]自然語言處理是一門融語言學、電腦科學、數學於一體的科學。自然語言處理(NLP)是電腦科學,人工智慧,語言學關注計算機和人類(自然)語言之間的相互作用的領域。(---來自百度百科)

相關推薦

機器學習監督演算法分類

說明:機器學習橫跨電腦科學、工程技術和統計學等多個科學。人們很難直接從原始資料本身獲得所需資訊,機器學習可以把無序的資料轉換成有用的資訊;移動計算和感測器產生的海量資料意味著未來將面臨越來越多的資料,如何從中抽取到有價值的資訊很重要,機器學習可以幫助我們從中抽取有用的資訊。

機器學習K近鄰演算法,kd樹

https://www.cnblogs.com/eyeszjwang/articles/2429382.html kd樹詳解 https://blog.csdn.net/v_JULY_v/article/details/8203674 一、K-近鄰演算法(KNN)概述 

機器學習效能度量指標查準率和查全率

    在很多實際應用中,我們知道僅僅關心正確分類的結果是不夠的,並且,在資料偏斜比較嚴重的情況下,模型準確率可能具有相當程度的誤導性,我們也需要知道資料被錯誤分類的情況,以確認為此需要承擔的分類錯誤的代價。(False Positive假陽性和False Negative假

2019年機器學習追蹤人工智慧發展

2019年機器學習:追蹤人工智慧發展之路 【導讀】“智慧助理”的時代已經到來了。機器學習已經成為全球數字化轉型的關鍵要素之一 ,在企業領域,機器學習用例的增長在過去幾年中也是顯著的。預計機器學習工具和解決方案的企業級採用率將在本十年結束前達到65% - 並且

機器學習十大經典演算法K-近鄰演算法學習筆記)

演算法概述 K-近鄰演算法(k-Nearest Neighbor,KNN)是機器學習演算法中最簡單最容易理解的演算法。該演算法的思路是:給定一個訓練資料集,對新的輸入例項,在訓練資料集中找到與該例項最鄰近的K個例項, 這K個例項的多數屬於某個類,就把該輸入例項分

機器學習十大經典演算法決策樹(學習筆記整理)

一、決策樹概述 決策樹是一種樹形結構,其中每個內部節點表示一個屬性上的測試,每個分支代表一個測試輸出,每個葉節點代表一種類別。決策樹是一個預測模型,代表的是物件屬性與物件值之間的一種對映關係。 最初的節點稱為根節點(如圖中的"顏色"),有分支的節點稱為中間節點

機器學習樸素貝葉斯分類器,決策函式向量化處理,mask使用技巧

文章目錄 前面實現的樸素貝葉斯分類器,決策函式是非向量化的: 藉助於numpy向量化處理,相當於平行計算,注意mask使用技巧,用途較廣: 前面實現的樸素貝葉斯分類器,決策函式是非向量化的: 前面提到過大資料處理,儘量避免個人的遍歷等一些函式

機器學習樸素貝葉斯分類器程式碼實現,決策函式非向量化方式

文章目錄 樸素貝葉斯離散型的演算法描述: 程式碼實現: 實現一個NaiveBayes的基類,以便擴充套件: 實現離散型樸素貝葉斯MultiomialNB類: 實現從檔案中讀取資料: 測試資料: 程式碼測試:

機器學習隨機森林演算法及其實現

文章目錄 隨機森林演算法描述: 如何對features進行bootstrap? 演算法程式碼實現: 隨機森林演算法描述: 如何對features進行bootstrap? 我們需要一個feature_bound引數,每次把可以選

機器學習降維演算法-主成分分析PCA演算法兩種角度的推導

若把高維空間的樣本點(可以想象是一個3維的)對映到一個超平面,怎樣的超平面可以認為是“好的”,可以想到這個超平面大概有這樣的性質: 最近重構行:樣本點到超平面的距離都足夠近;(樣本點變化儘可能小,丟失的資訊儘可能少) 最大可分性:樣本點在這個超平面上的投影儘可能分開.(樣

用Python開始機器學習(10聚類演算法K均值)

我們之前接觸的所有機器學習演算法都有一個共同特點,那就是分類器會接受2個向量:一個是訓練樣本的特徵向量X,一個是樣本實際所屬的型別向量Y。由於訓練資料必須指定其真實分類結果,因此這種機器學習統稱為有監督學習。然而有時候,我們只有訓練樣本的特徵,而對其型別一無所知。這種情況,我

機器學習演算法分類

機器學習分類演算法:3.1. Logistic 迴歸 (對數機率迴歸)Logistic Regression不光可以做二元分類,也可以解決多元分類問題。3.2. 最小二乘迴歸(Ordinary Least Squares Regression)3.3. 貝葉斯分類- 樸素貝葉斯(Navie Bayesian

王小草【機器學習】筆記--無監督演算法聚類

標籤(空格分隔): 王小草機器學習筆記 1. 聚類的概述 存在大量未標註的資料集,即只有特徵,沒有標籤的資料。 根據這些特徵資料計算樣本點之間的相似性。 根據相似性將資料劃分到多個類別中。 使得,同一個類別內的資料相似度大,類別之間的資料相似度小。

機器學習決策樹cart演算法分類與迴歸的應用(上)

#include #include #include #include #include #include #include #include #include #include #include using namespace std; //置信水平取0.95時的卡方表 const double CHI

機器學習(二)監督學習、無監督學習和半監督學習

一、基本概念 1 特徵(feature) 資料的特徵。 舉例:書的內容 2 標籤(label) 資料的標籤。 舉例:書屬於的類別,例如“計算機”“圖形學”“英文書”“教材”等。 3 學習(learning) 將很多資料丟給計算機分析,以此

書單 | 《分散式機器學習演算法、理論與實踐》——理論、方法與實踐的全面彙總(文末福利)...

編者按:人工智慧和大資料時代,分散式機器學習解決了大量最具挑戰性的問題。為了幫助機器學習從業者更

機器學習神經網絡表達

聚類 推薦系統 處理 mar 添加 gist 課程筆記 像素 ... ************************************** 註:本系列博客是博主學習Stanford大學 Andrew Ng 教授的《機器學習》課程筆記。博主深感學過課程後,不進行總

機器學習Python實現聚類算法(三)總結

.fig ask class ted ssi 缺點 處理 blob ron 考慮到學習知識的順序及效率問題,所以後續的幾種聚類方法不再詳細講解原理,也不再寫python實現的源代碼,只介紹下算法的基本思路,使大家對每種算法有個直觀的印象,從而可以更好的理解函數中

機器學習貝葉斯分類

貝葉斯 逆向 檢測 .net 極大似然估計 href ref .com blank 參考文獻 從貝葉斯定理說開去 關鍵詞:逆向概率;先驗概率;後驗概率 我所理解的貝葉斯定理--知乎專欄 關鍵詞:醫院病癥檢測中的真假陽性 似然與極大似然估計--知乎專欄 關鍵詞:似然與概率的區

斯坦福大學公開課機器學習Neural Networks,representation: non-linear hypotheses(為什麽需要做非線性分類器)

繼續 例子 產生 成本 log repr 概率 .cn 成了 如上圖所示,如果用邏輯回歸來解決這個問題,首先需要構造一個包含很多非線性項的邏輯回歸函數g(x)。這裏g仍是s型函數(即 )。我們能讓函數包含很多像這的多項式,當多項式足夠多時,那麽你也許能夠得到可以