這一個月,從對機器學習充滿好奇與畏懼,到對各類算法稍有理解以及圍繞推薦場景的編碼實踐,算是對機器學習有了一個入門的體驗。可是中間也踩過很多坑,好比啃過線性代數的教材、看過無聊的機器學習課程、追太高端的機器學習書籍、陷入一個算法沒法自拔(最後也沒整明白)...其實,學習機器學習沒有那麼難,也很容易走偏。謹以此文,做爲ML入門小白的一個小小的參考...html
本篇雖不是這一個月的流水帳,可是基本按照下面的思路對着一個月作了一次總結:python
以前在沒有具體接觸到機器學習前,我大概對他有一個概念上的認識,以爲是一種很高級的算法,能讓機器學會不少的事情,就像...《個人機器人女朋友》裏那樣!算法
或者是《機械公敵》裏的智能機器人?...編程
可是,這些其實都是對機器學習的一種誤解。機器學習並非讓機器像人同樣會學習,而是經過一種固定的編程模式,對數據進行處理。按照百度的定義,它是這樣的:markdown
專門研究計算機怎樣模擬或實現人類的學習行爲,以獲取新的知識或技能,從新組織已有的知識結構使之不斷改善自身的性能。機器學習
其實機器學習就是經過一些前人總結的數據公式,幫咱們簡化了不少手工操做很麻煩甚至沒法操做的事情。就舉個身邊很常見的例子,當你在淘寶搜索了某個寶貝後,以後的商品頁面會爲你推薦跟這個搜索相關的商品;再比汽車在通過司機的一段駕駛後,汽車本身能基於道路情況自動調整方向盤以及車速,實現無人駕駛;再如,家裏的熱水器會記錄你使用熱水的時間,提早一段時間燒水,而在其餘時間不加熱,以節省水電。這些都是機器學習,都是身邊已經出現或者即將出現的場景,因此,機器學習其實就在咱們身邊。工具
在機器學習中,算法能夠按照多種維度進行分類,好比監督學習、無監督學習、強化學習等...讓人看着就眼暈。post
記得有一篇文章總結的就很是易懂,他認爲機器學習其實能夠分紅三類,分類、迴歸、聚類。性能
結合到算法裏面:學習
若是看過一遍《機器學習實戰》,應該就會對上述的算法有必定的瞭解。不須要到公式推導級別,先能瞭解他們的用法便可,好比:
K-近鄰
就是已知幾個分類,判斷新的節點屬於哪一個分類時,只須要看距離它必定範圍內,哪一個分類的數據多。有點像近朱者赤近墨者黑的意思。決策樹
就是經過一大堆的問題,判斷屬於哪一個分類。好比,相親的時候,會問「你是作什麼的?」「有沒有房?」「有沒有車?」——最後判斷,是否繼續交往。樸素貝葉斯
看着名字高大上,其實就是根據機率選擇,屬於哪一個分類的機率大,就歸屬這個分類邏輯迴歸
它是把線性迴歸的結果映射到01區間線性迴歸
能夠簡單的理解成y=ax,可是其實在多維空間比這個複雜得多K-均值
就是一大堆散落的點,隨機幾個中心,這些點按照距離選擇他們最近的中心組成一個類別Apriori
只要說一個啤酒與尿布
,你們就應該明白了。這麼多算法其實只是機器學習中的一部分....
機器學習的應用仍是很普遍的,好比無人駕駛、機器人等等高大上的東西,以及我們身邊的拼車算法、電商的個性化推薦、婚戀網站的快速配偶等等。只要是涉及到數據之間的關係,均可以使用機器學習來達到很好的效果。
這三種境界純粹是我的的胡亂設定,僅僅是爲了給本身的學習定下一個目標!
這種通常是那些自學機器學習的朋友,在看過幾本機器學習相關的書籍後,對全部的算法都有一點了解。能跟別討論一些機器學習的算法和用途,而且能理解相關技術分享大體過程。
這一層能夠認爲是對某個機器學習的庫比較熟悉,能真正的利用機器學習來解決一些問題。好比可使用Spark MLLib中的某個算法解決實際的問題,如基於物品或者用戶的協同過濾算法。這就好像是使用現代的機械工具蓋房子,而不是像過去純人工搬石頭壘長城,效率和產出上都要好的多。
這種能夠說是集數學與計算機功底於一身,是倚天劍與屠龍刀的合體。對數學公式推導瞭如指掌,各類模型的優化也深諳其道。其實機器學習使用某個庫出一個簡單的效果很簡單,可是想要對算法模型進行優化卻很難,大多時候都是盯着算法結果,目瞪口呆,不知道下一步該怎麼辦。若是對算法瞭解的很深,對實際的業務又很熟悉,那麼就能結合兩點對算法模型進行優化,改進機器學習的結果。
通過不到一個月的學習,對機器學習也算是初步有了必定的瞭解,最起碼知道機器學習能幹什麼了,因此如今還在處於上面的第一個境界....
這期間也走了很多的彎路,浪費了很多的時間。因此在這裏總結一下,也給你們當作一個參考:
經過上面的學習,暫時能夠到達第二個層次了。我想通常搞計算機的,應該不多有能對各類算法推導融會貫通的。因此第三種境界,就留給其餘人吧....
1 《機器學習實戰》
3 《推薦系統實踐》
4 Spark MLLib官方文檔以及example代碼樣例
出處:http://www.cnblogs.com/xing901022/p/6953696.html