1. 程式人生 > >機器學習入門學習資源

機器學習入門學習資源

這是一篇很難寫的文章,因為我希望這篇文章能對學習者有所啟發。我在空白頁前坐下,並且問自己了一個很難的問題:什麼樣的庫、課程、論文和書籍對於機器學習的初學者來說是最好的。

文章裡到底寫什麼、不寫什麼,這個問題真的讓我很煩惱。我必須把自己當做一個程式設計師和一個機器學習的初學者,站在這個角度去考慮最合適的資源。

我找出了每個型別中最適合的資源。如果你是一個真正的初學者,並且樂意於開始瞭解機器學習領域的相關知識,我希望,你可以在我的文章中找到有用的資料。我的建議是,從中挑出一件來,一本書或者是一個庫,反覆閱讀或者認真學習所有的相關教程。挑出一個並且堅持學習,直到你完全掌握,再重新選擇一個,重複這個學習過程。現在就讓我們開始吧!

Programming Libraries 程式設計庫資源

我是一個“學習要敢於冒險和嘗試”觀念的倡導者。這是我學習程式設計的方式,我相信很多人也是這樣學習程式設計的。先了解你的能力極限,然後去拓展你的能力。如果你瞭解如何程式設計,可以將程式設計經驗很快借鑑到深入學習機器學習上。在你實現一個實際的產品系統之前,你必須遵循一些規則、學習相關數學知識。

找到一個庫並且仔細閱讀相關文件,根據教程,開始嘗試實現一些東西。下面列出的是開源的機器學習庫中最好的幾種。我認為,並不是他們中的每一種都適合用在你的系統中,但是他們是你學習、探索和實驗的好材料。

你可以從一個由你熟悉的語言編寫的庫開始學習,然後再去學習其他功能強大的庫。如果你是一個優秀的程式設計師,你會知道怎樣從一種語言,簡單合理地遷移到另一種語言。語言的邏輯都是相同的,只是語法和API稍有不同。

  • R Project for Statistical Computing:這是一個開發環境,採用一種近似於Lisp的指令碼語言。在這個庫中,所有你想要的與統計相關的功能都通過R語言提供,包括一些複雜的圖示。CRAN(你可以認為是機器學弟的第三方包)中的機器學習目錄下的程式碼,是由統計技術方法和其他相關領域中的領軍人物編寫的。如果你想做實驗,或是快速拓展知識,R語言都是必須學習的。但它可能不是你學習的第一站。
  • WEKA:這是一個數據挖掘工作平臺,為使用者提供數一系列據挖掘全過程的API、命令列和圖形化使用者介面。你可以準備資料、視覺化、建立分類、進行迴歸分析、建立聚類模型,同時可以通過第三方外掛執行其他演算法。除了WEKA之外, 
    Mahout
    是Hadoop中為機器學習提供的一個很好的JAVA框架,你可以自行學習。如果你是機器學習和大資料學習的新手,那麼堅持學習WEKA,並且全心全意地學習一個庫。
  • Scikit Learn:這是用Python編寫的,基於NumPy和SciPy的機器學習庫。如果你是一個Python或者Ruby語言程式設計師,這是適合你用的。這個庫很使用者介面友好,功能強大,並且配有詳細的文件說明。如果你想試試別的庫,你可以選擇Orange。
  • Octave:如果你很熟悉MatLab,或者你是尋求改變的NumPy程式設計師,你可以考慮 Octave。這是一個數值計算環境,與MatLab像是,藉助Octave你可以很方便地解決線性和非線性問題,比如機器學習演算法底層涉及的問題。如果你有工程背景,那麼你可以由此入手。
  • BigML:可能你並不想進行程式設計工作。你完全可以不通過程式碼,來使用 WEKA那樣的工具。你通過使用BigMLS的服務來進行更加深入的工作。BigML通過Web頁面,提供了機器學習的介面,因此你可以通過瀏覽器來建立模型。

挑選出一個平臺,並且在你實際學習機器學習的時候使用它。不要紙上談兵,要去實踐!

Video Courses視訊課程

很多人都是通過視訊資源開始接觸機器學習的。我在YouTube和VideoLectures上看了很多於機器學習相關的視訊資源。這樣做的問題是,你可能只是觀看視訊而並不實際去做。我的建議是,你在觀看視訊的時候,應該多記筆記,及時後來你會拋棄你的筆記。同時,我建議你將學到的東西付諸實踐。

坦白講,我沒有看見特別合適初學者的視訊資源。視訊資源都需要你掌握一定的線性代數、概率論等知識。Andrew Ng在斯坦福的講解可能是最適合初學者的,下面是我推薦的一些視訊資源。

  • Stanford Machine Learning斯坦福的機器學習課程:可以在Coursera上觀看,這門課是由 Andrew Ng講解的。只要註冊,你可以隨時觀看所有的課程視訊,從Stanford CS229 course下載講義和筆記。這門課包括了家庭作業和小測試,課程主要講解了線性代數的知識,使用Octave庫。
  • Caltech Learning from Data加利福尼亞理工學院的資料分析課程:你可以在edX上學習這門課程,課程是由Yaser Abu-Mostafa講解的。所有的課程視訊和資料都在加利福尼亞理工學院的網站上。與斯坦福的課程類似,你可以根據自己的情況安排學習進度,完成家庭作業和小論文。它與斯坦福的課程主題相似,關注更多的細節和數學知識。對於初學者來說,家庭作業可能稍有難度。
  • Machine Learning Category on VideoLectures.Net網站中的機器學習目錄:這是個很容易令人眼花繚亂的資源庫。你可以找出比較感興趣的資源,並且深入學習。不要糾結於不適合你的視訊,或者對於感興趣的內容你可以做筆記。我自己會一直重複深入學習一些問題,同時發現新的話題進行學習。此外,在這個網站上你可以發現是這個領域的大師是什麼樣的。
  • “Getting In Shape For The Sport Of Data Science” – 由Jeremy Howard講授:這是與機器學習競賽者的對話,他們是一些實踐中的R語言使用者。這是非常珍貴的資源,因為很少有人會討論研究一個問題的完整過程和究竟怎樣做。我曾經幻想過在網上找到一個TV秀,記錄機器學習競賽的全過程。這就是我開始學習機器學習的經歷!

Overview Papers綜述論文

如果你並不習慣閱讀科研論文,你會發現論文的語言非常晦澀難懂。一篇論文就像是一本教科書的片段,但是論文會介紹一個實驗或者是領域中其他的前沿知識。然而,如果你準備從閱讀論文開始學習機器學習的話,你還是可以找到一些很有意思的文章的。

  • The Discipline of Machine Learning機器學習中的規則:這是由Tom Mitchell編著的白皮書,其中定義了機器學習的規則。Mitchell在說服CMU總裁為一個百年內都存在的問題建立一個獨立的機器學習部門時,也用到了這本書中的觀點。

我只是列出了兩篇重要的論文,因為閱讀論文會讓你陷入困境。

Beginner Machine Learning Books給機器學習初學者的書

關於機器學習的書有很多,但是幾乎沒有為初學者量身定做的。什麼樣的人才是初學者呢?最有可能的情況是,你從另外一個完全不同的領域比如:電腦科學、程式設計或者是統計學,來到機器學習領域。那麼,大部分的書籍要求你有一定的線性代數和概率論的基礎。

但是,還有一些書通過講解最少的演算法來鼓勵程式設計師學習機器學習,書中會介紹一些可以使用工具、程式設計函式庫來讓程式設計師嘗試。其中最有代表性的書是:《Programming Collective Intelligence》,《Machine Learning for Hackers》,《Hackersand Data Mining: Practical Machine Learning Tools and Techniques》(Python版, R版, 以及Java版)。如果感到迷惑的話,你可以選擇其中一本開始學習。

Machine_Learning02
  • Machine Learning for Hackers  (中文版:機器學習:實用案例解析 ):我建議你在閱讀了《Programming Collective Intelligence》一書之後,再閱讀這本書。這本書中也提供了很多實踐練習,但是涉及更多的資料分析,並且使用R語言。我個人很喜歡這本書!
  • Machine Learning: An Algorithmic Perspective:這本書是《Programming Collective Intelligence》的高階版本。它們目的相同(讓程式設計師開始瞭解機器學習),但是這本書包括一些數學知識,參考樣例和phython程式片段。如果你有興趣的話,我建議你在看完《Programming Collective Intelligence》之後來閱讀這本書。
  • 資料探勘:實用機器學習工具與技術(英文版·第3版) :我自己是從這本書開始瞭解機器學習的,那時是2000年這本書還是第一版。我那時是Java程式設計師,這本書和WEKA庫為我的學習和實踐提供了一個很好的環境。我通過這樣的平臺和一些外掛,實現我的演算法,並且真正開始實踐機器學習和資料探勘的過程。我強烈推薦這本書,和這樣的學習過程。

有一些人認為那些經典的機器學習教科書很了不起。 我也贊同,那些書的確非常好。但是,我認為,對於初學者來說,這些書可能並不合適。

Further Reading 繼續閱讀

在寫這篇文章時,我認真思考了相關問題,同時也參考了其他人推薦的資料,以確保我沒有遺漏任何重要參考資料。為了確保文章的完整性,下面也列出了一些網上流行的,可以供初學者使用的材料。.

你是不是以及讀過或者用過上面的一些資源了呢?你怎麼看這個問題?

我是不是如願為那些對機器學習有興趣的初學者提供了重要、有用的資源呢?請留下你的建議,讓我們分享!


相關推薦

機器學習入門學習資源

這是一篇很難寫的文章,因為我希望這篇文章能對學習者有所啟發。我在空白頁前坐下,並且問自己了一個很難的問題:什麼樣的庫、課程、論文和書籍對於機器學習的初學者來說是最好的。 文章裡到底寫什麼、不寫什麼,這個問題真的讓我很煩惱。我必須把自己當做一個程式設計師和一個機器學習的初學者,站在這個角度去考慮最合適的資

資源】100頁機器學習入門完整版,初學者必備!

【導讀】近日,作者Andriy Burkov放出了他撰寫的《The Hundred-Page Machine Learning Book》的這本書的最新版,只有100頁,目標是任何只要有基礎數學知識的人都能看懂的機器學習書籍。這本書的十一個章節最新版都已經在網站上公開,本書將涵蓋監督學習和非監督學習

機器學習的最佳入門學習資源

這是一篇很難寫的文章,因為我希望這篇文章能對學習者有所啟發。我在空白頁前坐下,並且問自己了一個很難的問題:什麼樣的庫、課程、論文和書籍對於機器學習的初學者來說是最好的。 文章裡到底寫什麼、不寫什麼,這個問題真的讓我很煩惱。我必須把自己當做一個程式設計師和一個機器學習

機器學習最佳入門學習資源

原文連結: Jason Brownlee   翻譯: 伯樂線上 - programmer_lin %-------------------------------------------------------------------% 這是一篇很難寫的文章,因為我希

機器學習最佳入門學習資料匯總

行程 view 概率 應該 mic 時有 挖掘 書包 發現 譯者:teyla 原文作者:Jasonb 發布:2014-06-05 13:54:15 挑錯 這篇文章的確很難寫,因為我希望它真正地對初學者有幫助。面前放著一張空白的紙,我坐下來問自己一個難題:面對一個對機器學習

『Python』MachineLearning機器學習入門_效率對比

cnblogs 新的 arange 學習 nump 部分 運行 orm blog 效率對比: 老生常談了,不過這次用了個新的模塊, 運行時間測試模塊timeti: 1 import timeit 2 3 normal = timeit.timeit(‘sum(x*

『Python』MachineLearning機器學習入門_極小的機器學習應用

highlight 保存 數值 out 有意思 port del ear 解方程 一個小知識: 有意思的是,scipy囊括了numpy的命名空間,也就是說所有np.func都可以通過sp.func等價調用。 簡介: 本部分對一個互聯網公司的流量進行擬合處理,學習最基本的機器

機器學習入門 - 1. 介紹與決策樹(decision tree)

recursion machine learning programmming 機器學習(Machine Learning) 介紹與決策樹(Decision Tree)機器學習入門系列 是 個人學習過程中的一些記錄與心得。其主要以要點形式呈現,簡潔明了。1.什麽是機器學習?一個比較概括的理解是:

機器學習入門:線性回歸及梯度下降

想要 oom 考試 erl text local oca 希望 觀察 機器學習入門:線性回歸及梯度下降 本文會講到: (1)線性回歸的定義 (2)單變量線性回歸 (3)cost function:評價線性回歸是否擬合訓練集的方法 (4)梯度下

機器學習--入門答疑

類別 邏輯 啤酒 gre 是否 知識結構 中間 場景 討論 剛接觸機器學習這一個月我都做了什麽? 這一個月,從對機器學習充滿好奇與畏懼,到對各種算法稍有理解以及圍繞推薦場景的編碼實踐,算是對機器學習有了一個入門的體驗。但是中間也踩過不少坑,比如啃過線性代數的教材、

機器學習入門之四:機器學習的方法-神經網絡(轉載)

轉載 bsp 圖像 src nbsp 加速 數值 str 我們   轉自 飛鳥各投林   神經網絡      神經網絡(也稱之為人工神經網絡,ANN)算法是80年代機器學習界非常流行的算法,不過在90年代中途衰落。現在,攜著“深度學習”之勢,神

機器學習入門之決策樹算法

所有 最大的 id3 次數 要去 決策樹算法 4.5 獲取 ddl 1、什麽是決策樹(Decision Tree) 決策樹是一個類似於流程圖的樹結構,其中每一個樹節點表示一個屬性上的測試,每一個分支代表一個屬性的輸出,每一個樹葉節點代 表一個類或者類的分布

機器學習入門之python實現圖片簡單分類

numbers org 路徑 圖片分類 jpg animal 入門 res windows 小任務:實現圖片分類 1.圖片素材 python批量壓縮jpg圖片: PIL庫 resize http://blog.csdn.net/u012234115/article/

機器學習入門點滴(一)(待補充完整)

arr intro 統計 int ica nts 機器學習算法 .com 場景 Step1-知識準備: 1. 數學:線性代數,概率論和統計,高數 2. 程序語言:Matlab R 或 Python(只用於學習入門,不是實現的最佳語言) 3. 推薦書籍:選擇一到兩本公式較少、

機器學習入門之使用numpy和matplotlib繪制圖形

作用 應該 方式 9.png 5.1 環境 就是 清華大學 圖1   機器學習當中能深入淺出的方法第一步就是先學會用numpy了。numpy是一個第三方的開源python庫,他提供了許多科學的數值計算工具,尤其是大型矩陣計算,但使用配置非常簡單,結合matplotlib能夠

前端開發工程師從入門到精通學習過程及資源總結(持續更新中)

開發實戰 set dex 從入門到精通 main 知識 uno 基礎入門 易雲 職位名稱:前端開發工程師 學習概要:1、先了解基礎,html/css/JavaScript是基礎。html/css就是做靜態頁面的,javascript是做動態的。 2、學習框架:jQuery(

機器學習入門-載入sklearn中資料並用matplotlib進行視覺化

from sklearn import datasets import matplotlib.pyplot as plt def get_data(): """ 從sklearn中獲取鳶尾花的資料 :return: 鳶尾花資料的字典,字典中包括的key有:【'data'

機器學習入門

題外話:第二次純手打編輯部落格啦! 以下內容摘自百度百科: AI概念:   人工智慧(Artificial Intelligence),英文縮寫為AI。它是研究、開發用於模擬、延伸和擴充套件人的智慧的理論、方法、技術及應用系統的一門新的技術科學。 機器學習:

機器學習入門之房價預測(線性迴歸)

#!/usr/bin/env python # coding: utf-8 # In[1]: # 1.定義問題 # 2.匯入資料 # 匯入類庫 import numpy as np import pandas as pd import matplotlib.pyplot as plt impo

機器學習入門 線性迴歸及梯度下降

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!