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