k近鄰法(k-nearest neighbor, k-NN)
原理:
存在一個樣本數(shù)據(jù)集合,也稱作訓(xùn)練樣本集,并且樣本集中每個數(shù)據(jù)都存在標(biāo)簽,即我們知道樣本集中每一數(shù)據(jù)與所屬分類的對應(yīng)關(guān)系。輸入沒有標(biāo)簽的新數(shù)據(jù)后,將新數(shù)據(jù)的每個特征與樣本集中數(shù)據(jù)對應(yīng)的特征進(jìn)行比較,然后算法提取樣本集中特征最相似數(shù)據(jù)(最近鄰)的分類標(biāo)簽。一般來說,我們只選擇樣本數(shù)據(jù)集中前k個最相似的數(shù)據(jù),這就是k-近鄰算法中k的出處,通常k是不大于20的整數(shù)。 最后,選擇k個最相似數(shù)據(jù)中出現(xiàn)次數(shù)最多的分類,作為新數(shù)據(jù)的分類。?
優(yōu)缺點(diǎn):
優(yōu)點(diǎn):精度高、對異常值不敏感、無數(shù)據(jù)輸入假定。
缺點(diǎn):計(jì)算復(fù)雜度高、空間復(fù)雜度高。
適用范圍:數(shù)值型和標(biāo)稱型。
sklearn簡介
sklearn(Scikit learn),是機(jī)器學(xué)習(xí)領(lǐng)域當(dāng)中最知名的python模塊之一。
使用sklearn可以很方便的實(shí)現(xiàn)一個機(jī)器學(xué)習(xí)算法。?有效減少我們特定任務(wù)的實(shí)現(xiàn)周期。達(dá)到只需要調(diào)用幾行API即可實(shí)現(xiàn)一個復(fù)雜算法的效果。
包含了很多機(jī)器學(xué)習(xí)的方式:
??Classification 分類
??Regression 回歸
??Clustering 非監(jiān)督分類
??Dimensionality reduction 數(shù)據(jù)降維
??Model Selection 模型選擇
?? Preprocessing 數(shù)據(jù)與處理
Python實(shí)踐案例:sklearn手寫數(shù)字識別
已知:?軟件處理后的?“需要識別的數(shù)字 ”的TXT數(shù)據(jù)文件。
? ? ? ? ? ?特點(diǎn):??具有相同的色彩和大?。簩捀呤?2像素x32像素。
? ? ? ? ? ? ? ? ? ? ? ??? 文件有統(tǒng)一命名格式:數(shù)字的值_該數(shù)字的樣本序號? ?
? ? ? ? ? ? ? ? ? ? ? ?? 按 0-9 十個數(shù)字分類的文件,每個數(shù)字200個樣本? ? ? ? ??
求:? ?未知數(shù)字文件是 0-9 中哪一個數(shù)字

代碼:



結(jié)果:

學(xué)習(xí)來源:《機(jī)器學(xué)習(xí)實(shí)戰(zhàn)》 [美] Peter Harrington
? ? ? ? ? ? ? ? ? ?Jack Cui 博文https://cuijiahua.com/