1. 程式人生 > >《資料探勘導論》實驗課——實驗四、資料探勘之KNN,Naive Bayes

《資料探勘導論》實驗課——實驗四、資料探勘之KNN,Naive Bayes

實驗四、資料探勘之KNN,Naive Bayes

一、實驗目的

1. 掌握KNN的原理

2. 掌握Naive Bayes的原理

3. 學會利用KNN與Navie Bayes解決分類問題

二、實驗工具

1. Anaconda

2. sklearn

三、實驗簡介

1. KNN

KNN(K-Nearest Neighbor)工作原理:存在一個樣本資料集合,也稱為訓練樣本集,並且樣本集中每個資料都存在標籤,即我們知道樣本集中每一資料與所屬分類對應的關係。輸入沒有標籤的資料後,將新資料中的每個特徵與樣本集中資料對應的特徵進行比較,提取出樣本集中特徵最相似資料(最近鄰)的分類標籤。一般來說,我們只選擇樣本資料集中前k個最相似的資料,這就是k近鄰演算法中k的出處,通常k是不大於20的整數。最後選擇k個最相似資料中出現次數最多的分類作為新資料的分類。

說明:KNN沒有顯示的訓練過程,它是“懶惰學習”的代表,它在訓練階段只是把資料儲存下來,訓練時間開銷為0,等收到測試樣本後進行處理。

2. Navie Bayes

樸素貝葉斯分類器中最核心的便是貝葉斯準則,他用如下的公式表示:

p(c|x)= \frac{p(x|c)p(c)}{p(x)}p(c∣x)=p(x)p(x∣c)p(c)​

在機器學習中,樸素貝葉斯分類器是一個基於貝葉斯定理的比較簡單的概率分類器,其中 naive(樸素)是指的對於模型中各個 feature(特徵) 有強獨立性的假設,並未將 feature 間的相關性納入考慮中。

樸素貝葉斯分類器一個比較著名的應用是用於對垃圾郵件分類,通常用文字特徵來識別垃圾郵件,是文字分類中比較常用的一種方法。樸素貝葉斯分類通過選擇 token(通常是郵件中的單詞)來得到垃圾郵件和非垃圾郵件間的關聯,再通過貝葉斯定理來計算概率從而對郵件進行分類。

四、實驗內容

1. 利用KNN對鳶尾花資料進行分類。

(1) 呼叫資料的方法如下:

from sklearn.datasets import load_iris iris = load_iris()# 從sklearn 資料集中獲取鳶尾花資料。


(2)資料進行KNN分類

首先匯入鳶尾花資料集

獲取並劃分資料集

宣告訓練並評價模型

進行樣本測試

2. 利用Navie Bayes對鳶尾花資料建模


輸出測試樣本在各個類標記上預測概率值對應對數值,
返回測試樣本對映到指定類標記上的得分(準確率).

3. 不使用sklearn中的分類方法,自己編寫KNN程式(建議用python語言),並對鳶尾花資料進行分類。

4. (選做) 不使用sklearn中的分類方法,自己編寫Navie Bayes程式(建議用python語言),並對鳶尾花資料進行分類。

五、實驗總結(寫出本次實驗的收穫,遇到的問題等)

本次實驗自主學習探索了sklearn中GaussianNB建模和KNeighborsClassifier分類。呼叫封裝的方法實現了模型的訓練以及測試。
但是對knn理解程度不夠,已經Python語言掌握不熟,未能自行實現knn程式的編寫對鳶尾花進行分類,需要加強學