機器學習--入門答疑

剛接觸機器學習這一個月我都作了什麼?

這一個月,從對機器學習充滿好奇與畏懼,到對各類算法稍有理解以及圍繞推薦場景的編碼實踐,算是對機器學習有了一個入門的體驗。可是中間也踩過很多坑,好比啃過線性代數的教材、看過無聊的機器學習課程、追太高端的機器學習書籍、陷入一個算法沒法自拔(最後也沒整明白)...其實,學習機器學習沒有那麼難,也很容易走偏。謹以此文,做爲ML入門小白的一個小小的參考...html

本篇雖不是這一個月的流水帳,可是基本按照下面的思路對着一個月作了一次總結:python

  • 什麼是機器學習?
  • 機器學習都有什麼算法?
  • 我的對機器學習的三種境界理解
  • 推薦的學習路線
  • 推薦資源

但願讀者有所收穫,另外,若是文中有任何理解上的錯誤,還望指正!

什麼是機器學習?

以前在沒有具體接觸到機器學習前,我大概對他有一個概念上的認識,以爲是一種很高級的算法,能讓機器學會不少的事情,就像...《個人機器人女朋友》裏那樣!算法

或者是《機械公敵》裏的智能機器人?...編程

可是,這些其實都是對機器學習的一種誤解。機器學習並非讓機器像人同樣會學習,而是經過一種固定的編程模式,對數據進行處理。按照百度的定義,它是這樣的:markdown

專門研究計算機怎樣模擬或實現人類的學習行爲,以獲取新的知識或技能,從新組織已有的知識結構使之不斷改善自身的性能。機器學習

其實機器學習就是經過一些前人總結的數據公式,幫咱們簡化了不少手工操做很麻煩甚至沒法操做的事情。就舉個身邊很常見的例子,當你在淘寶搜索了某個寶貝後,以後的商品頁面會爲你推薦跟這個搜索相關的商品;再比汽車在通過司機的一段駕駛後,汽車本身能基於道路情況自動調整方向盤以及車速,實現無人駕駛;再如,家裏的熱水器會記錄你使用熱水的時間,提早一段時間燒水,而在其餘時間不加熱,以節省水電。這些都是機器學習,都是身邊已經出現或者即將出現的場景,因此,機器學習其實就在咱們身邊。工具

機器學習都有哪些算法?

在機器學習中,算法能夠按照多種維度進行分類,好比監督學習、無監督學習、強化學習等...讓人看着就眼暈。post

記得有一篇文章總結的就很是易懂,他認爲機器學習其實能夠分紅三類,分類、迴歸、聚類。性能

  • 分類聽着名字就很容易理解了,好比給你一筐水果,水果裏面有蘋果、香蕉,須要把它們分紅兩類。
  • 迴歸來源於單詞regression,它能夠理解成是一種預測,好比線性迴歸,他能夠根據樣本數據學習出一個線性的公式,好比y=ax,當你給定一個x的值時,能夠推算出對應的y值。固然具體的場景中,就不是簡單的一維了...
  • 聚類,跟前面的分類有些不一樣,好比一筐水果,你都不知道里面裝的是什麼,須要經過味道、顏色、形狀、大小等多個屬性,把它們進行歸類。

結合到算法裏面:學習

  • 分類相關的算法有:K-近鄰算法、決策樹、樸素貝葉斯、邏輯迴歸、支持向量機等
  • 迴歸相關的算法有:線性迴歸、樹迴歸等
  • 聚類相關的算法有:K-均值算法、Apriori等

若是看過一遍《機器學習實戰》,應該就會對上述的算法有必定的瞭解。不須要到公式推導級別,先能瞭解他們的用法便可,好比:

  • K-近鄰就是已知幾個分類,判斷新的節點屬於哪一個分類時,只須要看距離它必定範圍內,哪一個分類的數據多。有點像近朱者赤近墨者黑的意思。
  • 決策樹就是經過一大堆的問題,判斷屬於哪一個分類。好比,相親的時候,會問「你是作什麼的?」「有沒有房?」「有沒有車?」——最後判斷,是否繼續交往。
  • 樸素貝葉斯看着名字高大上,其實就是根據機率選擇,屬於哪一個分類的機率大,就歸屬這個分類
  • 邏輯迴歸它是把線性迴歸的結果映射到01區間
  • 線性迴歸能夠簡單的理解成y=ax,可是其實在多維空間比這個複雜得多
  • K-均值就是一大堆散落的點,隨機幾個中心,這些點按照距離選擇他們最近的中心組成一個類別
  • Apriori只要說一個啤酒與尿布,你們就應該明白了。

這麼多算法其實只是機器學習中的一部分....

機器學習的應用場景

機器學習的應用仍是很普遍的,好比無人駕駛、機器人等等高大上的東西,以及我們身邊的拼車算法、電商的個性化推薦、婚戀網站的快速配偶等等。只要是涉及到數據之間的關係,均可以使用機器學習來達到很好的效果。

我的理解的機器學習的三種境界

這三種境界純粹是我的的胡亂設定,僅僅是爲了給本身的學習定下一個目標!

第一層 瞭解算法的過程和做用

這種通常是那些自學機器學習的朋友,在看過幾本機器學習相關的書籍後,對全部的算法都有一點了解。能跟別討論一些機器學習的算法和用途,而且能理解相關技術分享大體過程。

第二層 能把算法運用到實踐中

這一層能夠認爲是對某個機器學習的庫比較熟悉,能真正的利用機器學習來解決一些問題。好比可使用Spark MLLib中的某個算法解決實際的問題,如基於物品或者用戶的協同過濾算法。這就好像是使用現代的機械工具蓋房子,而不是像過去純人工搬石頭壘長城,效率和產出上都要好的多。

第三層 對算法的推導融會貫通

這種能夠說是集數學與計算機功底於一身,是倚天劍與屠龍刀的合體。對數學公式推導瞭如指掌,各類模型的優化也深諳其道。其實機器學習使用某個庫出一個簡單的效果很簡單,可是想要對算法模型進行優化卻很難,大多時候都是盯着算法結果,目瞪口呆,不知道下一步該怎麼辦。若是對算法瞭解的很深,對實際的業務又很熟悉,那麼就能結合兩點對算法模型進行優化,改進機器學習的結果。

我的學習機器學習的路線規劃

通過不到一個月的學習,對機器學習也算是初步有了必定的瞭解,最起碼知道機器學習能幹什麼了,因此如今還在處於上面的第一個境界....

這期間也走了很多的彎路,浪費了很多的時間。因此在這裏總結一下,也給你們當作一個參考:

  • 1 最快的入門方式,就是先百度、必應一下,瞭解下機器學習的概念。
  • 2 推薦閱讀《機器學習實戰》瞭解下機器學習相關的算法。我以前也看過機械工業出版社的《機器學習》、也看過點周志華老師的《機器學習》,前一本概念太多,後一本公式也挺多。《機器學習實戰》相對來講要好得多,先介紹點理論背景,在基於python介紹下算法的實現以及一兩個案例。
  • 3 不少人都以爲機器學習須要很好的數學功底,因而學習機器學習前,先捧着高數、線代、機率論看,結果看了兩天,以爲枯燥無味,就打算放棄。其實不必的,結合上面的《機器學習實戰》,遇到什麼公式,進行相應的複習就好了,這也是爲何把數學放在第三個步驟。其實機器學習裏面能理解高數的求導、線代的矩陣以及向量、機率的指望方差等就差很少了,其餘有須要的話針對學習就行。
  • 4 學習機器學習確定是要看吳恩達老師的公開課了,公開課的地址,我剛看了兩集,感受仍是很是不錯的。
  • 5 學習Spark MLLib相關的算法實現,若是有時間的話,能夠看看源碼。

經過上面的學習,暫時能夠到達第二個層次了。我想通常搞計算機的,應該不多有能對各類算法推導融會貫通的。因此第三種境界,就留給其餘人吧....

推薦資源

1 《機器學習實戰》

  • 推薦指數:★★★★★
  • 推薦理由: 理論、算法都有,比較好懂

2 機器學習 斯坦福 公開課

  • 推薦指數:★★★★☆
  • 推薦理由:權威大拿帶你飛,還有什麼理由不上車?

3 《推薦系統實踐》

  • 推薦指數:★★★☆☆
  • 推薦理由:若是是想作個性化推薦,那麼必需要看看這本書!

4 Spark MLLib官方文檔以及example代碼樣例

  • 推薦指數:★★☆☆☆
  • 推薦理由:官方文檔大致上知道有什麼內容就行,主要是推薦看看example裏面提供的代碼,能幫助少走很多彎路。

 

出處:http://www.cnblogs.com/xing901022/p/6953696.html

相關文章
相關標籤/搜索