KNN(K-Nearest Neighbor)工做原理:存在一個樣本數據集合,也稱爲訓練樣本集,而且樣本集中每一個數據都存在標籤,即咱們知道樣本集中每一數據與所屬分類對應的關係。輸入沒有標籤的數據後,將新數據中的每一個特徵與樣本集中數據對應的特徵進行比較,提取出樣本集中特徵最類似數據(最近鄰)的分類標籤。通常來講,咱們只選擇樣本數據集中前k個最類似的數據,這就是k近鄰算法中k的出處,一般k是不大於20的整數。最後選擇k個最類似數據中出現次數最多的分類做爲新數據的分類。html
說明:KNN沒有顯示的訓練過程,它是「懶惰學習」的表明,它在訓練階段只是把數據保存下來,訓練時間開銷爲0,等收到測試樣本後進行處理。python
樸素貝葉斯分類器中最核心的即是貝葉斯準則,他用以下的公式表示:算法
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) 調用數據的方法以下:測試
from sklearn.datasets import load_iris iris = load_iris()# 從sklearn 數據集中獲取鳶尾花數據。
(2)數據進行KNN分類spa
輸出測試樣本在各個類標記上預測機率值對應對數值,
返回測試樣本映射到指定類標記上的得分(準確率).
rest
本次實驗自主學習探索了sklearn中GaussianNB建模和KNeighborsClassifier分類。調用封裝的方法實現了模型的訓練以及測試。
可是對knn理解程度不夠,已經Python語言掌握不熟,未能自行實現knn程序的編寫對鳶尾花進行分類,須要增強學習!code