1. 程式人生 > >分類(2):k-最近鄰、貝葉斯分類器

分類(2):k-最近鄰、貝葉斯分類器

一、k-最近鄰

1、演算法

積極學習方法(eager learner):通過訓練樣本建立模型。
消極學習方法(lazy learner):例項的學習,k-最近鄰就屬於這種。

k-最近鄰演算法:
令k是最近鄰數目,D是訓練樣例集合
for z in 樣例集合:
  計算 z 和每個樣例 (x,y) 的距離 d
  選擇離 z 前 k 個近距離的點,為集合 Dt
  z的標記 y 為 Dt 中類較多的

k-最近鄰採用多數表決的方法,該演算法對 k 敏感:

y=argmaxv(xi,yi)DtI(v=yi)
所以,需要降低 k 的影響,一種途徑就是對距離的不同加權,如下,因為距離遠的影響要弱一些,以距離平方的倒數為權值。
y
=argmaxv(xi,yi)Dtwi×I(v=yi),wi=1d(x,xi)2
2、最近鄰分類器特徵:

(1)例項的學習,不需要建模,但分類測試的開銷很大。
(2)當k比較小的時候,對噪聲非常敏感。
(3)可以生成任意決策邊界。

二、貝葉斯分類器

1、貝葉斯公式
P(Yj|X)=P(X|Yj)P(Yj)P(X)=P(X|Yj)P(Yj)ni=1P(X|Yi)P(Yi)
2、樸素貝葉斯
(1)條件獨立性:

給定 Z,X 條件獨立於 Y:

P(X|Y,Z)=P(X|Z)
則有:
P(X,Y|Z)=P(Z,Y,X)P(Z)=P(Z,Y
,X)
P(Y,Z)
P(Y,Z)P(Z)=P(X|Y,Z)P(Y|Z)
=P(X|Z)P(Y|Z)
(2)樸素貝葉斯分類器:
P(Y|X)=P(X|Y)P(Y)P(X)=P(X1,...,Xd)P(Y)P(X)=P(Y)di=1P(Xi|Y)P(X)
(3)連續屬性的條件概率:

<1>把每個連續屬性離散化,用相應的區間去替代原來的屬性,但若某一個區間的樣本數目過少,不容易做出可靠的估計。
<2>可以假設連續變數服從正態分佈,Xi的概率等於:

P(Xi=xi|Y=yj)=12πσije(xiμij)22σij
其中 mu 用樣本均值估計, sigma 用樣本方差估計。
(4)樸素貝葉斯舉例:

拖欠貸款為 Y 變數。
5_01.png

測試記錄X=(有房=否,婚姻狀況=已婚,年收入=120K),求後驗概率P(No|X)、P(Yes|X)。
總的 Y 可以知道,P(Yes)=0.3,P(No)=0.7。則:

P(X | No)=P(有房=否 | No)x P(婚姻狀況=已婚 | No)x P(年收入=120K | No)=0.0024
P(X | Yes)= P(有房=否 | Yes)x P(婚姻狀況=已婚 | Yes)x P(年收入=120K | Yes)=0

因為P(No|X)>P(Yes|X),所以該測試分類為No,不拖欠貸款。
上例中,P(婚姻狀況=已婚 | Yes)=0,可能會出現極端現象,為了防止出現0,樸素貝葉斯沒法正確分類,可以使用 m 估計(m-estimate):

P(xi|yj)=

相關推薦

分類2k-近鄰分類

一、k-最近鄰 1、演算法 積極學習方法(eager learner):通過訓練樣本建立模型。 消極學習方法(lazy learner):例項的學習,k-最近鄰就屬於這種。 k-最近鄰演算法: 令k是最近鄰數目,D是訓練樣例集合 for

斯坦福CS231n專案實戰k近鄰kNN分類演算法

k最近鄰分類(kNN,K Nearest neighbor)分類演算法是一種最簡單的分類器之一。在kNN演算法訓練過程中,它將所有訓練樣本的輸入和輸出label都儲存起來。測試過程中,計算測試樣本與每個訓練樣本的L1或L2距離,選取與測試樣本距離最近的前k個

模板超程式設計2計算

   本文就Loki編譯期技術中的型別列表Typelist作了一些擴充套件,增加了以下幾個方法:      • 獲取最大和最小長度,即求取Typelist中長度最大和最小的值        • 獲取最大和最小型別,即求取Typelist中長度最大和最小的型別實現    位於Loki::TL名稱空

python數字影象處理2影象的讀取顯示與儲存

skimage提供了io模組,顧名思義,這個模組是用來圖片輸入輸出操作的。為了方便練習,也提供一個data模組,裡面嵌套了一些示例圖片,我們可以直接使用。 引入skimage模組可用: 1 from skimage import io

AWS機器學習初探2文字翻譯Translate文字轉語音Polly語音轉文字Transcribe

這幾個服務的功能和使用都很直接和簡單,因此放在一篇文章中介紹。 1. 文字翻譯服務 Translate 1.1 功能介紹 AWS Translate 服務是一種AWS 機器學習應用服務,它利用高階機器學習技術來進行文字翻譯。它的使用非常簡單,只需要提供輸入文字,該服務就給出輸出文字。 輸入

TensorFlow 入門 第一課--基本函式學習2tf.nn.conv2d tf.contrib.layers.flattentf.nn.max_pool 詳解

Tensorflow 提供了一些內建的API實現了CNN網路結構中的卷積,池化,全連線網路等運算操作。tf.nn.conv2d(input,filter, strides, padding, data_

大資料之Spark--- Spark機器學習,樸素,酒水評估和分類案例學習,垃圾郵件過濾學習案例,電商商品推薦,電影推薦學習案例

一、Saprk機器學習介紹 ------------------------------------------------------------------ 1.監督學習 a.有訓練資料集,符合規範的資料 b.根據資料集,產生一個推斷函式

機器學習分類模型--線性判別法距離判別法分類

機器學習(六)分類模型--線性判別法、距離判別法、貝葉斯分類器   首先我們瞭解常見的分類模型和演算法有哪些   線性判別法 簡單來說就是用一些規定來尋找某一條直線,用直線劃分學習集,然後根據待測點在直線的哪一邊決定它的分類 如圖,假如紅色這條線是找

簡單的分類演示含Matlab程式)

plot(x(1,1:N/2),x(2,1:N/2),'rs'); hold on; plot(x(1,1+N/2:N),x(2,1+N/2:N),'go'); title('2d testing data'); hold on;%% gaussian model as a baseline [err,h]

kaggle 影評情感分析1—— TF-IDF+Logistic迴歸/樸素/SGD

前言 kaggle的這個starting competition (Bag of words meet bags of popcorns) 其實是一個word2vec-tutorial, 但是本篇文章沒有用到 word2vec, 只用了 TF-IDF 的方式將句

Python3《機器學習實戰》學習筆記k-近鄰演算法

**轉載:**http://blog.csdn.net/c406495762執行平臺: WindowsPython版本: Python3.xIDE: Sublime text3 他的個人網站:http://cuijiahua.com   文章目錄

《機器學習實戰》 筆記K-近鄰演算法

一、K-近鄰演算法 1.1 k-近鄰演算法簡介 簡單的說,K-近鄰演算法採用測量不同特徵值之間的距離的方法進行分類。 1.2 原理 存在一個樣本資料集合,也稱作訓練樣本集,並且樣本集中每個資料都存在標籤,即我們知道樣本集中每一資料 與所屬分類的對應關係。輸入沒有標籤的新資料

《機器學習實戰》學習筆記k-近鄰演算法

k-近鄰演算法 原書中程式碼為python2中語法,python3的語法參考連結:https://blog.csdn.net/c406495762/article/details/75172850 給出k-近鄰演算法的完整程式碼(海倫相親程式) import numpy a

統計學習方法筆記K近鄰法的實現kd樹

  實現k近鄰演算法時,首要考慮的問題是如何對訓練資料進行快速的k近鄰搜尋。這點在特徵空間的維數大於訓練資料容量時尤為重要。 構造kd樹   kd 樹是一種對k為空間中的例項點進行儲存的一邊對其進行快速檢索的樹形資料結構。kd樹是二叉樹,表示對k維空間的一個劃分(parti

python3.5《機器學習實戰》學習筆記k近鄰演算法

轉載請註明作者和出處:http://blog.csdn.net/u013829973 系統版本:window 7 (64bit) python版本:python 3.5 IDE:Spyder (一個比較方便的辦法是安裝anaconda,那麼Spyder和

MLScikit-Learn 學習筆記3 --- Nearest Neighbors 近鄰 迴歸及相關演算法

1 最近鄰迴歸 最近鄰迴歸是用在標籤值是連續取值的場景智商的,而不是離散取值,而是用最近鄰迴歸進行查詢的點,最後得到的結果是其所有最近鄰居的平均值。 scikit-learn 在迴歸部分,同樣實現了兩種迴歸演算法,和之前的一樣,和KNN思想近似的KNeigh

python3.5《機器學習實戰》學習筆記k近鄰演算法scikit-learn實戰手寫體識別

轉載請註明作者和出處:http://blog.csdn.net/u013829973 系統版本:window 7 (64bit) 我的GitHub:https://github.com/weepon python版本:python 3.5 IDE:Spy

Python3《機器學習實戰》學習筆記k-近鄰演算法(史詩級乾貨長文)

#一 簡單k-近鄰演算法     本文將從k-鄰近演算法的思想開始講起,使用python3一步一步編寫程式碼進行實戰訓練。並且,我也提供了相應的資料集,對程式碼進行了詳細的註釋。除此之外,本文也對sklearn實現k-鄰近演算法的方法進行了講解。實戰例項:

機器學習回顧篇2小二乘法

1 引言 在機器學習常用的優化演算法中,梯度下降法和最小二乘法佔盡了風騷。梯度下降法上一篇中已經詳細介紹過了,那麼這一篇,我們繼續說一說最小二乘法。 2 什麼是最小二乘法 描述預測模型準確程度有多重不同的方法: (1)誤差和最小化。這種方法存在的問題是正負誤差會相互抵消,導致描述不準確。 (2)誤差

Windows Phone開發2豎立自信,初試鋒茫

一鍵 優秀 保持 知識 sdn ant emulator 一個 動畫 上一篇文章中,我們聊了一些“大炮”話題,從這篇文章開始,我們一起來學習WP開發吧。 一、我們有哪些裝備。 安裝完VS 學習版 for WP後,也連同SDK一並安裝了,不必像安卓那樣,安裝JDK,下載