機器學習之路-0-開篇和學習資源
機器學習想做深、做專、做出品味來,需要對編程、算法、數學和計算機分布式技術等領域有一定的掌握。故此路和以往的技術升級相比,門檻提高了許多。編程,精通不是必要條件,但一定要熟練應用一門語言,非專業人士也可以學習;數學,需要掌握概率論、線性代數和微積分等基本理論;計算機分布式技術,可選項,不是必需的。
另外還有一個就是統計,統計和大數據的源頭都是對數據的分析,因為統計是一門有很深理論基礎的學問,所以了解統計的知識,對增強數據的分析能力是有幫助的,而且也能避免掉到坑里。不是入門的必選,但是邁向高級階段的必修課。
本人也是一名在這條路上摸索的程序猿,有幸的是目前的工作內容也在相同方向上,可以多些時間和精力的投入。寫此教程,一是學習的總結,為自己設定一個可以衡量的目標,自我監督;二是結交同道的伙伴們,共同成長。
本系列文章的核心思想只有一個:
以動手實戰帶動理論的學習
本教程的開發,將遵從敏捷實踐,一開始可能會有很多不準確、不嚴謹的地方,希望大家多批評指正,不斷完善。
程序猿學習新技術,第一個問題就是用什么語言?考察過R語言、Java和Python,最終選擇了Python。作為程序猿,出生于統計學的R一來就被斃了,Python和Java相比,區別是很明顯的,在入門學習這塊,Python是學習資料和工具最多的。所以從學習的角度講,先用python吧。以后實際工作和產品研發再用Java也不遲,沒有太大影響的。一旦掌握了算法和思路,語言只是工具而已。
機器學習的資料,知乎上有很多,還可以百度一下。各種文章多得就像娛樂版的明星新聞一樣。這里就只說下我現在學習過的資料,僅供參考:
書:《機器學習實戰》(https://book.douban.com/subject/24703171/),盡管有說代碼寫得不好,數學理論介紹不夠詳盡的差評,但是完全滿足實戰的需求。
此書特點:各主流算法只介紹了基礎原理部分,雖然數學部分論述簡略,但是我們可以通過相應的知識點去知乎、百度或Google上補充。某些大而全的書,雖然都講了,但似乎又什么都沒講;另外,就是大量基于Python的練習題,并且附有參考代碼哦~。
視頻:看過最火爆的Andrew Ng的視頻,看了幾次課就沒看了。主要是自己需要的是一個有快速反饋(動手練習)的學習過程,所以只有等以后再繼續“拜看”了。上了“小象”的2017年1月的機器學習課程,避免廣告不多討論。“書非買不能讀”呀~,花了錢的才能逼著自己前進。
數學:又把大學的教材買了一套回來,有概率論、線性代數和高等數學。需要的同學可以到“閑魚”二手貨上面看看。主要作為參考用書,看到不懂的公式復習一下。有空的同學呢,最好還是再完整溫習一遍。
接下來的部分是Python有關機器學習的工具和數學庫的介紹,大家可以先準備下學習環境:
1. Anaconda,https://www.continuum.io/anaconda-overview。這是一個集成了python運行環境、機器學習所需的依賴庫和代碼編輯器的安裝程序。對于快速搭建學習環境,安裝這一個就夠了。Python選擇安裝2.7版本的,因為網上大量的示例和代碼都是基于2.7的。
2. Python語言學習,網上2.7的教程很多,重點了解下語法、方法和數據結構,其它的內容都可以等到以后用到的時候再學習。
好了,準備工作就這些,今日練習:
- 下載并安裝Anaconda,熟悉使用ipython交互環境
- Python語言基礎入門自學
【本文為51CTO專欄作者“吳思楠”的原創稿件,轉載請通過51CTO聯系作者獲取授權】