1. 程式人生 > >k-近鄰學習,樸素貝葉斯,期望最大化,最大熵模型演算法介紹

k-近鄰學習,樸素貝葉斯,期望最大化,最大熵模型演算法介紹

k-近鄰學習 k-Nearest Neighbor(KNN)

1. 演算法描述

k-近鄰學習是一種監督的分類迴歸方法。工作機制:給定測試樣本,基於某種距離度量找出訓練集中與其最接近的k和訓練樣本,然後基於這k個“鄰居”的資訊進行預測。通常,在分類任務中採用“投票法”;在迴歸任務中採用“平均法”(也可根據距離遠近進行“加權”)。**三個基本要素:**k值得選擇,距離度量及分類/迴歸決策規則。“懶惰學習”沒有顯示的訓練過程。

1.1 距離度量

Lp距離:Lp(xi,xj)=(l=1n|xlixlj|p)1p,p1,當p=2 稱為“歐氏距離”(Eucliden distanceL2),當p

=1 稱為“曼哈頓距離”,當p= 時,它是各個座標距離的最大值:L(xi,xj)=maxl|xlixlj|
1.2 k值得選擇

k值較小,相當於用較小的鄰域進行預測,優點是可以學習的近似誤差會減小,缺點是學習的估計誤差會增大,k值的減小會使模型變複雜,容易過擬合;k值較大,相當於用較大的鄰域進行預測,優點是可以減小學習的估計誤差,缺點是學習的近似誤差會增大。通常採用“交叉驗證”來選取最優的k值。

2. 優缺點

優點:

1.簡單好用,容易理解,精度高,理論成熟,既可以用來做分類也可以用來做迴歸;

2.可用於數值型資料和離散型資料;

3.訓練時間複雜度為O(n);無資料輸入假定;

4.對異常值不敏感

5.KNN是一種線上技術,新資料可以直接加入資料集而不必進行重新訓練

6.計算時間和空間線性於訓練集的規模

缺點:

1.計算複雜性高;空間複雜性高;

2.樣本不平衡問題(即有些類別的樣本數量很多,而其它樣本的數量很少);

3.KNN每一次分類都會重新進行一次全域性運算,計算量太大。

4.最大的缺點是無法給出資料的內在含義。

5.k值大小的選擇。

3. kd樹

為了提高k近鄰搜尋的效率,考慮使用特殊的結構儲存訓練資料,以減少計算距離的次數。

kd樹是一種對k維空間中的例項點進行儲存以便進行快速檢索的樹形資料結構,kd樹是二叉樹,對k維空間的一個劃分。

構造kd樹:構造根節點,使根節點對應於k維空間包含所有例項點的超矩形區域;通過下面的遞迴,不斷地對k維空間進行切分,生成子節點:在節點上選擇一個座標軸和該座標軸上的一個切分點(選擇中位數作為切分點得到的kd樹是平衡點),將當前結點切分為左右子節點(將超矩形區域通過切分點且垂直切分軸的平面切分為兩個子區域);直到兩個子節點不能再切分為止。

用kd樹的最近鄰搜尋

  1. 在kd樹中找出包含目標點x的葉節點:從根節點出發,遞迴地向下訪問kd樹。若目標點當前維的座標小於切分點的座標,則移動到左子節點,否則移動到右子節點,直到子節點為葉子結點為止。

  2. 以此葉節點為“當前最近點”。

  3. 遞迴的向上回退,在每個節點進行以下操作:

    a) 如果該節點儲存的例項點比當前最近點距離目標更近,則以該例項點為“當前最近點”。

    b) 當前最近點一定存在於該節點一個子節點對應的區域。檢查該子節點的父節點的另一個子節點對應的區域是否有更近的點(具體的,檢查另一個子結點對應的區域是否與以目標點為球心、以目標點與“當前最近點”間的距離為半徑的超球體相交。如果相交,可能在另一個子結點對應的區域記憶體在距離目標更近的點,移動到另一個子結點。接著,遞迴的進行最近鄰搜尋。如果不相交,向上回退)。

  4. 當回退到根節點時,搜尋結束。最後的“當前最近點”為目標點的最近鄰點

如果例項點是隨機分佈的,kd樹搜尋的平均計算複雜度是O(logm),這裡m是訓練例項數。kd樹更適用於訓練例項數遠大於空間維數時的k近鄰搜尋。當空間維數接近訓練例項數時,它的效率會迅速下降,幾乎接近線性掃描。

樸素貝葉斯,期望最大化,最大熵模型

1. 貝葉斯分類器

1.1 樸素貝葉斯(naive bayes)

樸素貝葉斯法是基於貝葉斯定理(P(A|B)=P(A)P(B|A)P(B) )與特徵條件獨立假設(分類的特徵在類確定的條件下都是條件獨立的)的分類方法工作機制:對於給定訓練資料集,首先基於特徵條件獨立假設學習輸入/輸出的聯合概率分佈;然後基於此模型,對給定的測試樣本,利用貝葉斯定理求出後驗概率最大的輸出。設輸入空間XRn為n維向量的集合,輸出空間為類標記集合Y={c1,c2,,cK} 。輸入為特徵向量xX,輸出標記為yYX表示輸入空間上的隨機變數,Y表示輸出空間上的隨機變數,P(X,Y)表示XY聯合概率分佈,且訓練資料集D={(x1,y1),(x2,y3),,(xm,ym)}P(X,Y)獨立分佈產生。

1.1.1 樸素貝葉斯演算法流程

樸素貝葉斯通過訓練資料集學習聯合概率分佈,具體由先驗概率分佈:P(Y=ck)條件概率分佈:P(X=x|Y=ck)=P(X1=x1,X2=x2,,Xm=xm|Y=ck),得到聯合概率分佈為P(X,Y)=P(Y=ck)P(X=x|Y=ck)。此外由條件獨立假設有:P(X=x|Y=ck)=j=1nP(Xj=xj|Y=ck)

樸素貝葉斯分類時,對給定的輸入x,通過學習得到的模型計算後驗概率分佈P(Y=ck|X=x),將後驗概率最大的類作為

相關推薦

k-近鄰學習,樸素期望最大化模型演算法介紹

k-近鄰學習 k-Nearest Neighbor(KNN) 1. 演算法描述 k-近鄰學習是一種監督的分類迴歸方法。工作機制:給定測試樣本,基於某種距離度量找出訓練集中與其最接近的k和訓練樣本,然後基於這k個“鄰居”的資訊進行預測。通常,在分類任務中採用“

機器學習--樸素分類以及拉普拉斯校準

機器學習算法 我們 earch lov 單詞 標註 樸素貝葉斯分類 images 劃分 原文鏈接:http://chant00.com/2017/09/18/%E8%B4%9D%E5%8F%B6%E6%96%AF/

機器學習---樸素分類器(Machine Learning Naive Bayes Classifier)

垃圾郵件 垃圾 bubuko 自己 整理 href 極值 multi 帶來 樸素貝葉斯分類器是一組簡單快速的分類算法。網上已經有很多文章介紹,比如這篇寫得比較好:https://blog.csdn.net/sinat_36246371/article/details/601

【機器學習--樸素與SVM進行病情分類預測】

     貝葉斯定理由英國數學家托馬斯.貝葉斯(Thomas Baves)在1763提出,因此得名貝葉斯定理。貝葉斯定理也稱貝葉斯推理,是關於隨機事件的條件概率的一則定理。 對於兩個事件A和B,事件A發生則B也發生的概率記為P(B|A),事件B發生則A也發生的概率記為P

機器學習——樸素(Naive Bayes)詳細解讀

在機器學習中,樸素貝葉斯是一個分類模型,輸出的預測值是離散值。在講該模型之前首先有必要先了解貝葉斯定理,以該定理為基礎的統計學派在統計學領域佔據重要的地位,它是從觀察者的角度出發,觀察者所掌握的資訊量左右了觀察者對事件的認知。 貝葉斯公式

機器學習——樸素演算法

概率定義為一件事情發生的可能性 概率分為聯合概率和條件概率  聯合概率:包含多個條件,且所有條件同時成立的概率 記作:P(A,B)  P(A,B)=P(A)P(B) 條件概率:就是事件A在另外一個事件B已經發生的條件概率 記作:P(A|B)  

機器學習-*-樸素

說明 貝葉斯定理 有事件A、事件B,其中事件B有 B 1

機器學習——樸素演算法Python實現

簡介 這裡參考《統計學習方法》李航編進行學習總結。詳細演算法介紹參見書籍,這裡只說明關鍵內容。 即 條件獨立下:p{X=x|Y=y}=p{X1=x1|Y=y} * p{X2=x2|Y=y} *...* p{Xn=xn|Y=y} (4.4)等價於p{Y=ck|X=x

機器學習樸素演算法

樸素貝葉斯屬於監督學習的生成模型,實現簡單,沒有迭代,學習效率高,在大樣本量下會有較好表現。但因為假設太強——特徵條件獨立,在輸入向量的特徵條件有關聯的場景下,並不適用。 樸素貝葉斯演算法:主要思路是通過聯合概率建模,運用貝葉斯定理求解後驗概率;將後驗概率最大者對應的類別作

機器學習--樸素分類演算法學習筆記

一、基於貝葉斯決策理論的分類方法 優點:在資料較少的情況下仍然有效,可以處理多類別問題。 缺點:對於輸入資料的準備方式較為敏感。 適用資料型別:標稱型資料。 現在假設有一個數據集,它由兩類資料構

機器學習 - 樸素(下)- 樸素分類器

機器學習 - 樸素貝葉斯(下)- 樸素貝葉斯分類器 樸素貝葉斯 重要假設 特徵型別 樸素貝葉斯分類模型 舉例 貝葉斯估計 模型特點

機器學習 - 樸素(上)- 概率論基礎

機器學習 - 樸素貝葉斯(上)- 概率論基礎 概率 聯合概率,邊緣概率 and 條件概率 先驗概率 and 後驗概率 全概率公式 貝葉斯公式

通俗易懂機器學習——樸素演算法

本文將敘述樸素貝葉斯演算法的來龍去脈,從數學推導到計算演練到程式設計實戰 文章內容有借鑑網路資料、李航《統計學習方法》、吳軍《數學之美》加以整理及補充 2、條件概率 3、聯合分佈 樸素貝葉斯演算法 樸素貝葉斯法是基於貝葉斯定

學習樸素演算法的5個簡單步驟

  貝葉斯分類是一類分類演算法的總稱,這類演算法均以貝葉斯定理為基礎,故統稱為貝葉斯分類。 而樸素貝葉斯分類是貝葉斯分類中最簡單,也是常見的一種分類方法。 本文將通過6個步驟帶領你學習樸素貝葉斯演算法。   Step1 什麼是樸素貝葉斯演算法? 樸

機器學習之(1)——學習樸素-三種模型理論+python程式碼程式設計例項

本文來源於: 部落格:http://blog.csdn.net/u012162613/article/details/48323777 http://blog.csdn.net/zhihaoma/article/details/51052064  感謝作者的分享,非常感謝

系統學習樸素-三種模型

概率論相關數學公式 條件概率: 相互獨立事件: 貝葉斯定理: 樸素貝葉斯分類器 眾所周知,樸素貝葉斯是一種簡單但是非常強大的線性分類器。它在垃圾郵件分類,疾病診斷中都取得了很大的成功。它只所以稱為樸素,是因為它假設特徵之間是相互獨立的,但是在現實生活中

機器學習--樸素模型原理

技術 附加 數據 求最大值 計數 .... 皮爾遜 max 數學家 樸素貝葉斯中的樸素是指特征條件獨立假設, 貝葉斯是指貝葉斯定理, 我們從貝葉斯定理開始說起吧. 1. 貝葉斯定理 貝葉斯定理是用來描述兩個條件概率之間的關系 1). 什麽是條件概率? 如果有兩個事

李航·統計學習方法筆記·第6章 logistic regression與模型(1)·邏輯蒂迴歸模型

第6章 logistic regression與最大熵模型(1)·邏輯斯蒂迴歸模型 標籤(空格分隔): 機器學習教程·李航統計學習方法 邏輯斯蒂:logistic 李航書中稱之為:邏輯斯蒂迴歸模型 周志華書中稱之為:對數機率迴歸模

機器學習之分類器——Matlab中各種分類器的使用總結(隨機森林、支援向量機、K近鄰分類器、樸素等)

      Matlab中常用的分類器有隨機森林分類器、支援向量機(SVM)、K近鄰分類器、樸素貝葉斯、整合學習方法和鑑別分析分類器等。各分類器的相關Matlab函式使用方法如下:首先對以下介紹中所用到的一些變數做統一的說明:    train_data——訓練樣本,矩陣的每

分類與監督學習樸素分類演算法

1.理解分類與監督學習、聚類與無監督學習。 簡述分類與聚類的聯絡與區別。 簡述什麼是監督學習與無監督學習。 區別:分類:我們是知道這個資料集是有多少種類的,然後對它們分類歸納。比如對一個學校的在校大學生進行性別分類,我們會下意識很清楚知道分為“男”,“女”。 聚類:對資料集操作時,我們是不