《數據挖掘導論》實驗課——實驗四、數據挖掘之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(cx)=p(x)p(xc)p(c)

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

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

四、實驗內容

1. 利用KNN對鳶尾花數據進行分類。

(1) 調用數據的方法如下:

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

image.png
(2)數據進行KNN分類

首先導入鳶尾花數據集

image.png

獲取並划分數據集

image.png

聲明訓練並評價模型

image.png

進行樣本測試

image.png

2. 利用Navie Bayes對鳶尾花數據建模

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

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

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

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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM