當前位置:
首頁 > 最新 > 機器學習實戰

機器學習實戰

最近的閑暇時間越來越少,每周至少要運行出來一個經典的機器學習演算法,而且每兩周要讀懂一篇外文文獻並在周六彙報,而且小編自認代碼能力不足,所以很少寫作了。因此,就在這裡發表一些自己的每周工作,給自己的生活做一些總結。

小編的專業是深度學習,也算是機器學習的一個重要分支了,所以必須參透機器學習的種種規則定義。今天小編主要看了機器學習實戰這本書的前兩章,在這裡做一個簡單的總結。

機器學習的真實含義:利用計算機來彰顯數據背後的意義。簡單來說,機器學習就是把無序的數據轉換為有用的信息。

監督學習(supervised learning)與無監督學習(unsupervised learning)的區別在於輸入的樣本集是否有標籤。

分類回歸屬於有監督學習。分類,顧名思義就是將輸入的樣本按類別進行劃分,它是機器學習的主要任務;回歸主要用於預測數值型數據,比如數據擬合曲線(通過給定點的最優擬合曲線)。之所以兩者屬於監督學習,是因為這類演算法必須知道預測什麼,即目標變數的分類信息。

聚類屬於無監督學習 。聚類是將數據集合分成由類似的對象組成的多個類的過程。

開發機器學習應用程序的步驟:①收集數據。為節省時間,可使用公開的數據源;②準備輸入數據。得到數據之後,還必須保證數據格式是否符合要求;③分析輸入數據。查看是否有異常數據,確保數據集無垃圾數據(若信任數據源,可跳過此步驟);④訓練演算法。機器學習演算法從這一步開始真正的學習;⑤測試演算法。檢驗演算法成功率,若不滿意結果跳回第四步;⑥使用演算法。將機器學習演算法轉換為應用程序,執行實際任務。

註:第四步和第五步是機器學習演算法的核心。

機器學習演算法可由多種語言實現,在此主要講python。小編在自己電腦上安裝了兩個版本的python,因為大家都了解2.X和3.X的語法在某些地方稍有不同。

python語言的優勢在於①語法清晰;②易於操作純文本文件;③使用廣泛,存在大量的開發文檔。唯一的缺點就是性能問題。

機器學習演算法大量的使用python里的Numpy函數庫,所以要提前安好,可利用pip指令進行安裝(小編就是這麼做的)。在python的Scripts文件夾下打開命令窗口並輸入:pip list,可以看到安裝的python模塊。

在Shell腳本下輸入以下命令,出現下面的輸出結果說明安裝正確。

k-近鄰演算法(kNN)

優點:精度高、對異常值不敏感、無數據輸入假定

缺點:計算複雜度高、空間複雜度高

適用數據範圍:數值型和標稱型

原理:存在一個樣本數據集,也稱作訓練樣本集,並且樣本集中每個數據都存在標籤,即我們知道樣本集中每一數據與所屬分類的對應關係。輸入沒有標籤的新數據後,將新數據的每個特徵與樣本集中數據的特徵進行對比,然後演算法提取樣本集中特徵最相似數據(最近鄰)的分類標籤。一般來說,我們只選樣本數據集中前k個相似的數據,這就是k近鄰演算法k的出處。

偽代碼:

對未知類別屬性的數據集中的每個點依次執行以下操作:

(1)計算已知類別數據集中的點與當前點之間的距離;

(2)按照距離遞增次序排序;

(3)選取與當前點距離最小的k個點;

(4)確定前k個點所在類別出現概率;

(5)返回前k個出現頻率最高的類別作為當前點的預測分類。

樣本點分布情況:

①每周消費的冰淇淋公升數(縱軸)與玩視頻所耗時間百分比(橫軸)數據散點圖

玩視頻所耗時間百分比(縱軸)與每年獲取的飛行常客里程數(橫軸)數據散點圖

測試結果:錯誤率0.064


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器學習 的精彩文章:

谷歌傳道AI的方法論:通過免費在線課程教你掌控人工智慧和機器學習
第55期:Python機器學習實踐指南、Tensorflow 實戰Google深度學習框架

TAG:機器學習 |