數據分析入門一 k近鄰

數據分析入門一 k近鄰

來自專欄 小提琴與計算機

孤山寺北賈亭西,水面初平雲腳底.。

幾處早鶯爭暖樹,誰家新燕啄春泥,。

亂花漸欲迷人眼,淺草才能沒馬蹄。

最愛湖東行不足,綠楊蔭里白沙堤。

——《錢塘湖春行》白居易

一、前言

因為學業繁忙,大概有半年的時間沒有寫文章了。現在,已經快4月了,春意盎然,我準備分享自己的學習數據分析的歷程。

數據入門系列分別為三節,分別介紹k近鄰(knn),支持向量機演算法(svm)和卷積神經網路(cnn)在圖像識別中的應用。

至於小提琴系列,我一定儘快抽出閑暇時段更新。

二、數據分析入門例題

分析例題簡述:通過已知的4萬條手寫數字加標籤,去預測未知的2萬條手寫數字標籤。

分析語言建議:python

工作軟體建議:PyCharm

參加比賽鏈接:Digit Recognizer | Kaggle

三、數據分析入門方法一k近鄰

當下載上述例題的的數據集後,需要將數據進行預處理。因為一個圖像可以用一行向量表示,而我們可以用python中,reshape命令將其重新定義。效果如下圖所示:

k近鄰方法介紹:由於數據集中給定了4萬個有標籤的圖像,需要去預測2萬個圖像的未知標籤。可以通過觀察未知標籤的圖像周圍最近的的k個標籤來決定,就是近朱者赤,近墨者黑。如下圖所示,在k=5的k近鄰演算法中, X_{u} 的5最近鄰中有4個是紅色,1個是綠色。所以認為 X_{u} 是紅色。

三、k近鄰的改進

k近鄰演算法最重要的就是k值選取,不同的k值選取,可能得出不同的標籤。使用越多訓練集去預測結果,結果越準確。但k近鄰演算法在相同數據集的情況下,準確率低於支持向量機和卷積神經網路。這也是k近鄰使用比較少的原因,這個演算法比較簡單,就不提供源代碼了,想親手實現的小夥伴,可以參考《機器學習實戰》。

如果你在kaggle比賽中使用k近鄰演算法,名次在50%-75%左右。正確率能接近97%

四、本系列其他文章

數據分析入門二——圖像處理支持向量機

數據分析入門三——圖像處理卷積神經網路

五、我想說的話

無論是小提琴練習還是數據分析入門,都是實踐為主,文章只能引人入門,不能代替實踐。我希望能用最簡潔的語言,讓非專業人士快速了解數據分析,然後自己動手去完成項目。

最後,如果有緣,願意閱讀這篇文章的讀者,您在閱讀中或實踐中有任何問題,都可以在評論區反饋。您的支持,也是我創作的動力之一。謝謝~


推薦閱讀:

機器學習實戰之kNN演算法

TAG:數據分析 | k近鄰法 |