先附上Scikit-learn中文文檔:

scikit-learn中文社區

在過去的幾年裡,人們對機器學習產生了新的興趣。這種復甦似乎是由強大的基本因素推動的 - 全球各地的終端都在釋放出的大量數據,並且這些數據的成本非常低廉,計算成本是有史以來是最低的!

然而,並非每個人都了解機器學習是什麼。這裡有幾個例子:

  • 什麼是機器學習?它與大數據和業務分析有何不同?
  • 機器學習,數據分析,數據挖掘,數據科學和AI之間有什麼區別?

最近,我們發布了一個有趣的(但非常真實的)主題。

說道這一點,考慮到這個話題上的混亂程度,我們打算寫一篇關於機器學習的介紹性文章。這個想法是去掉所有可能在過嚇唬人的術語,創造一些可以被5歲的孩子輕鬆了解的東西(emmmmmmm............好吧,對不起,可能需要高中畢業)!

機器學習究竟什麼是?我的一個小實驗......

為了確保我不會高估(或低估)目標受眾的能力,我找到了10個對分析完全陌生的人。他們之前都沒有聽說過機器學習(是的,真的有這樣的人!!!!!)。他們是這樣說的:

  • 我不知道,可能是向機器中學習?
  • 讓機器學習一些東西,也就是編程機器軟體
  • 藉助計算機幫助我學習?
  • 通過在線課程學習(!!!)

這很有趣!完美的解釋了他們認為的機器學習。以下是我向這些人解釋機器學習的概念:

  • 機器學習是指以最智能的方式處理大量數據(通過開發演算法)以獲得可操作的見解的技術。

這時,他們看著我,就好像我是火星人一樣對他們說話!所以,我停止了愚蠢的術語講解,然後反過來問他們問題,方便他們可以更深入的了解:

  • KJ:當你在谷歌搜索某些東西時,你認為會發生什麼?
  • 組員:Google會顯示與該搜索相關的網頁。
  • KJ:那很好!但究竟是什麼讓Google可以向你顯示這些相關頁面呢?

這次看起來他們想的比較多。然後組內的一些人開始發言

  • 組員:Google會查看用戶過去的點擊次數,了解哪些網頁與這些搜索更相關,然後在搜索結果上提供這些結果。

這是一個很好的嘗試。但我還必須控制住自己的衝動,告訴他們Google做到這一點要比他們這個簡單的概念複雜的多。但是,我想我有一個更好的方法來解釋機器學習。所以,我繼續說:

  • KJ:好的,這聽起來不錯。但是,Google會定期處理多少次搜索以及所有搜索的類型?
  • 組員:這一定是一個很大的數字 - 可能每年是一萬億次搜索
  • KJ:那麼,你們認為Google如何準確地滿足如此多的請求?你們是不是認為有人坐在Google辦公室並不斷處理哪些搜索結果是跟搜索的問題是相關的呢?
  • 小組成員:我還沒有想過,但是不會有人去處理這些,因為這好像聽起來不像是人類可以處理的。
  • KJ:你是對的。這是機器學習發揮作用的地方。機器學習是一組技術,以最智能的方式處理大量數據(通過開發演算法或一組邏輯規則), 來獲得可操作的結果(在我們討論的問題中是為用戶提供搜索)。

這個時候小組成員們按照意料之中的點了點頭,看起來像我已經完成任務......耶!可是總覺得哪裡不對呢…

現在有一些常見的問題 - 比如機器學習與X有什麼不同?

你開始學習有關機器學習的那一刻,你會看到各種知識好像火箭一樣在高速的轟炸著你。這些是術語在行業內使用的比較多。以下是其中一些:人工智慧,深度學習,數據挖掘和統計。

為了讓你更加清楚理解,我以簡單的方式解釋了這些術語。你還會了解到這些術語在機器學習中的重要性:

什麼是人工智慧(AI):

它指的是一台計算機(機器)進行編程使得自己變得合理的程序。啊! 什麼是理性的?理性是做出決定的基礎。

我提到「理性」而不是智力(如預期的那樣),因為我們人類傾向於做出高度理性和可行的決策而不是明確的智慧。這是因為所有智能決策都不需要理性和可行(我的假設)。因此,使用人工智慧背後的核心動機是以一種時髦的方式實現計算機(機器)的行為,而不是由愚蠢的人類指導!

人工智慧可以包括用於檢查程序中的某些參數是否正常運行的程序。例如,如果參數說「X」超過某個閾值,機器可能會發出警報,而該閾值反過來可能又會影響相關過程的結果。

人工智慧在機器學習中的應用

機器學習是人工智慧的一個子集,其中機器經過培訓,可以從中學習過去的經驗。過去的經驗是通過收集的數據制定的。然後它結合樸素貝葉斯,支持向量機等演算法來提供最終結果。

什麼是統計:

在這個高水平的階段,我假設你已經了解了統計學。如果沒有的話,這裡有一個可以讓你快速了解統計學的定義,統計學是數學的一個分支,它利用數據,或者是整個群體的數據,或者從群體中抽取一個樣本,來進行分析並給出推論。使用的技術統計有回歸、方差、標準差、條件概率等等。

在機器學習中使用統計學

讓我們理解這一點,首先需要假設,我需要將收件箱中的郵件分為兩類:「垃圾郵件」和「重要郵件」。為了識別垃圾郵件,我可以使用稱為樸素貝葉斯的機器學習演算法,該演算法將檢查過去垃圾郵件的頻率,從而將新郵件識別為垃圾郵件。樸素貝葉斯使用統計技術貝葉斯定理(通常稱為條件概率)。因此,我們可以說機器學習演算法使用統計概念來執行機器學習。

PS:機器學習和統計模型之間的主要區別來自它們的發源地。機器學習起源於計算機科學系,統計建模來自數學系。此外,任何統計建模都假設許多分布,而機器學習演算法通常不知道所有屬性的分布。

什麼是深度學習:

深度學習與機器學習演算法(人工神經網路,ANN)相關聯的,該演算法使用人腦的概念來促進任意函數的建模。神經網路需要大量數據,並且該演算法在同時對多個輸出進行建模時具有高度靈活性。神經網路是一個更複雜的主題,我們可以在完全獨立的文章中對其進行討論。

什麼是數據挖掘:

在我剛開始做數據分析師的日子裡,我總是習慣於混淆兩個術語:機器學習和數據挖掘。但是,後來我了解到,數據挖掘處理的是搜索特定信息。機器學習專註於完成一項特定的任務。讓我舉一個幫助我記住差異的例子; 教別人如何跳舞是機器學習。利用某人在城市中尋找最佳的舞蹈中心是數據挖掘。是不是超級簡單!

但是,我們究竟如何教機器?

教機器涉及到一個結構化過程,這個過程中,每個階段都可以構建更好的機器版本。為簡化起見,教學機器的過程可分為三個部分:

我將在隨後的文章中詳細介紹這3個步驟中的每一個。到目前為止,你應該明白,這3個步驟確保機器的整體學習能夠同等重要地執行給定的任務。機器的成功取決於兩個因素:

  1. 抽象數據的泛化效果如何。
  2. 這台機器如何把它的學習應用到預測未來的實際應用中。

機器學習的步驟是什麼?

有5個基本步驟用於執行機器學習任務:

  1. 收集數據:無論是來自excel,access,文本文件等的原始數據,這一步(收集過去的數據)構成了未來學習的基礎。相關數據的種類,密度和數量越多,機器的學習前景就越好。
  2. 準備數據:任何分析過程都會依賴於使用的數據質量如何。人們需要花時間確定數據質量,然後採取措施解決諸如缺失的數據和異常值的處理等問題。探索性分析可能是一種詳細研究數據細微差別的方法,從而使數據的質量迅速提高。
  3. 訓練模型:此步驟涉及以模型的形式選擇適當的演算法和數據表示。清理後的數據分為兩部分 - 訓練和測試(比例視前提確定); 第一部分(訓練數據)用於開發模型。第二部分(測試數據)用作參考依據。
  4. 評估模型:為了測試準確性,使用數據的第二部分(保持/測試數據)。此步驟根據結果確定演算法選擇的精度。檢查模型準確性的更好測試是查看其在模型構建期間根本未使用的數據的性能。
  5. 提高性能:此步驟可能涉及選擇完全不同的模型或引入更多變數來提高效率。這就是為什麼需要花費大量時間進行數據收集和準備的原因。

無論是任何模型,這5個步驟都可用於構建技術,當我們討論演算法時,您將找到這五個步驟如何出現在每個模型中!

機器學習演算法有哪些類型?

監督學習/預測模型:

顧名思義,預測模型用於根據歷史數據預測未來結果。預測模型通常從一開始就給出明確的指示,如需要學習的內容以及如何學習。這類學習演算法被稱為監督學習。

例如:當營銷公司試圖找出哪些客戶可能會流失時,就會使用監督學習。我們還可以用它來預測地震,龍捲風等危險發生的可能性,目的是確定總保險價值。使用的演算法的一些示例是:最近鄰演算法,樸素貝葉斯演算法,決策樹演算法,回歸演算法等。

無監督學習/描述性模型:

它用於訓練描述模型,其中沒有設置目標,並且沒有一個特徵比另一個重要。無監督學習的情況可以是:當零售商希望找出產品組合時,顧客往往會更頻繁地購買。此外,在製藥工業中,可以使用無監督學習來預測哪些疾病可能與糖尿病一起發生。這裡使用的演算法示例是:K-均值聚類演算法

強化學習(RL):

這是機器學習的一個例子,其中機器被訓練根據業務需求做出特定的決定,唯一的座右銘是最大化效率(性能)。強化學習所涉及的理念是:機器/軟體代理根據其所處的環境不斷地自我訓練,並應用它豐富的知識來解決業務問題。這種持續的學習過程可以減少人類專業知識的參與,從而節省大量時間!

RL中使用的演算法的示例是馬爾可夫決策過程。

PS:監督學習和強化學習(RL)之間存在細微差別。RL主要涉及通過與環境交互來學習。RL代理從其過去的經驗中學習,而不是從其持續的試驗和錯誤學習過程中學習,而是外部主管提供示例的監督學習中學習。

了解差異的一個很好的例子是無人駕駛汽車。自駕車使用強化學習來不斷做出決策 - 走哪條路?速度是是多少?這些問題都是與環境互動後決定的。監督學習的一個簡單表現是預測計程車從一個地方到另一個地方的車費。

機器學習有哪些應用?

了解機器學習的應用是非常有趣的。Google和Facebook廣泛使用ML將其各自的廣告推送給相關用戶。以下是你應該了解的一些ML應用:

  • 銀行和金融服務:ML可用於預測可能違約支付貸款或信用卡賬單的客戶。這是至關重要的,因為機器學習將幫助銀行識別那些是可以獲得貸款和信用卡的客戶。
  • 醫療保健:它用於根據患者的癥狀診斷致命疾病(例如癌症),並根據類似患者的過去數據對其進行統計。
  • 零售:它用於識別銷售頻繁(快速移動)的產品和緩慢移動的產品,幫助零售商決定從貨架上引入或移除哪種產品。此外,機器學習演算法可用於查找哪兩個/三個或更多產品一起銷售。這樣做是為了設計客戶忠誠度計劃,從而幫助零售商開發和維護忠誠的客戶。

這些例子只是冰山一角。機器學習在每個領域都有廣泛的應用。可以查看一些Kaggle問題以獲得更多知識,上面包含的例子很容易理解,至少可以體驗機器學習的無所不能。

隨著人工智慧的熱潮,人們開始逐漸的對機器學習產生了興趣,而這種興趣也是全球化,雖然人們對機器學習有很大的興趣,但是人們對機器學習似乎並沒有真正的了解,而文章的作者藉由向一些非數據科學行業內的小白科普機器學習的過程中,用非常白話的語言向我們介紹了什麼是機器學習,一些機器學習中的專業術語,機器學習的步驟和機器學習的類型與應用。並且通過一些小案例向我們解釋了各種演算法的作用,在我認為,機器學習是進入人工智慧領域一塊很好的墊腳石,至少不會再未來的浪潮中使我們迷失了方向。


機器學習是一門非常交叉的科學。

概念:多領域交叉學科,涉及概率論、統計學、逼近論、凸分析、演算法複雜度理論等多門學科。專門研究計算機怎樣模擬或實現人類的學習行為,以獲取新的知識或技能,重新組織已有的知識結構使之不斷改善自身的性能。

對於剛入門的小白來說,很多時候並不是找不到資料學習,而是資料太多太雜,在眼花繚亂之中很難找到一條完備的學習路徑;

下面就自己的經驗來給你推薦一條完善的學習路線;

1、python-basic

在機器學習領域,實現代碼大部分都是使用python寫的。

一句笑話:python除了不能生孩子,其他的都行。

但我不是說只學習python就可以了,當然學有餘力的話還可以去學習一下經典的C/C++, 就比如在CV(機器視覺)領域,Yolov3(一款小眾的深度學習框架) 其源碼都是用純C語言和CUDA底層編寫的,所以它的特點讓它在Yolov3項目中大放光彩:速度快,充分發揮多核處理器和GPU並行運算的功能。

2、numpy

NumPy(Numerical Python) 是 Python 語言的一個擴展程序庫,支持大量的維度數組與矩陣運算,此外也針對數組運算提供大量的數學函數庫。

NumPy 是一個運行速度非常快的數學庫,主要用於數組計算,包含:

  • 一個強大的N維數組對象 ndarray
  • 廣播功能函數
  • 整合 C/C++/Fortran 代碼的工具
  • 線性代數、傅里葉變換、隨機數生成等功能

在機器學習領域,使用Numpy來搭建科學計算環境是常用的。

3、Pandas

pandas 是基於Numpy 的一種工具,該工具是為了解決數據分析任務而創建的。Pandas 納入了大量庫和一些標準的數據模型,提供了高效地操作大型數據集所需的工具。

4、Scipy

Scipy是一個用於數學、科學、工程領域的常用軟體包,可以處理插值、積分、優化、圖像處理、常微分方程數值解的求解、信號處理等問題。它用於有效計算Numpy矩陣,使Numpy和Scipy協同工作,高效解決問題。

5、data-visualization(數據可視化基礎,包含matplotlib和seaborn)

此時就到了數據可視化的階段了,在這一階段的學習過程中,趣味性相對提升。

哪個男孩不喜歡花花綠綠的圖表呢?

Seaborn和Matplotlib是Python最強大的兩個可視化庫。

使用效果如下面這種散點圖,當然還有很多其他的圖表類型。

6、scikit-learn基礎

此時騷年你就快熬出頭了

scikit-learn,又寫作sklearn,是一個開源的基於python語言的機器學習工具包。它通過NumPy, SciPy和Matplotlib等python數值計算的庫實現高效的演算法應用,並且涵蓋了幾乎所有主流機器學習演算法。在工程應用中,用python手寫代碼來從頭實現一個演算法的可能性非常低,這樣不僅耗時耗力,還不一定能夠寫出構架清晰,穩定性強的模型。更多情況下,是分析採集到的數據,根據數據特徵選擇適合的演算法,在工具包中調用演算法,調整演算法的參數,獲取需要的信息,從而實現演算法效率和效果之間的平衡。而sklearn,正是這樣一個可以幫助我們高效實現演算法應用的工具包。

sklearn 實現了很多演算法,面對這麼多的演算法,如何去選擇呢?其實選擇的主要考慮的就是需要解決的問題以及數據量的大小。sklearn官方提供了一個選擇演算法的引導圖。

7、machine-learning(機器學習基礎)

恭喜你,現在你已經差不多搞懂了ML是個什麼東西。

現在開始進入下階段的打怪升級。

平時請注意保養頭髮。

下面推薦一個對小白友好的ML的網站,資源雖好,但不要貪杯哦~

Machine Learning?

www.cntofu.com

上面就是答主認為合理科學的一條ML的學習路線。

一條路誰都可以走,重要的是誰會走到頭。

最後注意保養頭髮~

如果有興趣請關注我的CSDN博客,小菜雞不定時分享知識。

馬飛頭禿了嗎?_Rachel_07_CSDN博客-Notes,opencv,軟體配置領域博主?

blog.csdn.net圖標


能不能入門個人覺得很大一個因素就是學習的順序,下面是一篇最近寫的一個觀點,題主可以參考!

入門機器學習從理論開始還是從實戰開始??

www.zhihu.com圖標

憑個人經驗回答,不喜勿噴.

首先機器學習是一個很大的範圍,你可以先找你最感興趣領域,然後看看領域內目前最火的技術是什麼,這樣我們就確定了一個學習的方向.

機器學習的兩條大腿一定要抱緊了: 數學+編程

一個新手,成長最快的方法便是項目實踐,這個項目可以是一個簡單的分類,一個簡單的回歸,不一定是很複雜的項目.這個階段我稱之為感悟期,重點在於感悟機器學習大概是怎麼回事.

下面是一些入門的例子:

手寫數字識別?

www.zhihu.com圖標mmggqq:Scikit-Learn預測葡萄酒質量-從零構建預測模型?

zhuanlan.zhihu.com圖標傅少搞數據:基於Python預測波士頓房價?

zhuanlan.zhihu.com圖標

過了感悟期,可以閱讀一些經典書籍,了解各種方法的基礎內容,增長自己的知識面.

  • 神經網路
  • 決策樹
  • 貝葉斯分類
  • KNN
  • 支持向量機
  • Bososting
  • 隨機森林
  • ......

深度學習入門 (豆瓣)?

book.douban.com圖標機器學習 (豆瓣)?

book.douban.com圖標

在了解完常見方法之後,可以在比賽平台上邊學習邊實踐,競賽平台上的一些經驗都是實打實的乾貨.

天池大數據眾智平台-阿里雲天池?

tianchi.aliyun.com

AI研習社 - 研習AI產學研新知,助力AI學術開發者成長。?

god.yanxishe.com

FlyAI-AI競賽服務平台?

www.flyai.com圖標

emmm,學習是永無止境的,如果你對現有的演算法都比較熟悉,且專註於最新的研究成果或者應用,可以找所研究領域頂級會議/期刊上的論文看看.

機器學習領域有哪些著名的期刊和會議??

www.zhihu.com圖標


AI愛好者們,利用閑暇時間了解AI,希望學習時間自由度高一些。我們最經典重要的AI知識整理成圖,並推薦經典學習材料和鏈接,希望AI愛好者高效清晰的掌握AI的精髓,真正無師自通。


學習路線

參考台灣大學李宏毅老師的LearningMap,制定了這次培訓的LearningMap,圖中學習的順序也做了相關的標註。我們先從監督學習中的線性回歸問題開始學習。因為機器學習需要一定的數學基礎,有些數學知識還是大學的時候學習的,可能大家有些已經忘記了,所以在線性回歸之前我們也準備了線性代數、概率論和資訊理論的材料供大家複習。


學習材料

主要參考資料

1、《機器學習課程-吳恩達網易公開課》

吳恩達機器學習課程對應的課件

(視頻課程file:///C:/Users/l00358533/AppData/Local/Temp/mume11834-8984-17lcwsg.dtnl1bgldi.html 2/2

http://open.163.com/special/opencourse/machinelearning.html)

2、《機器學習實戰》

這本書將理論和實踐相結合,裡面會有一些演算法應用的實際例子,供大家參考,主要採用python語言。

3、《machinelearninginaction.zip》

包含《機器學習實戰》中的每章節實踐代碼和數據。

4、《深度學習_中文.pdf》

一本主要介紹深度學習演算法的材料,前面的章節也包含了數據基礎知識 和機器學習的簡單介紹。

5、《統計學習方法(李航).pdf》

李航老師的統計學方法主要介紹了幾種經典的演算法,LR,SVM,CART等,推導和演算法也比較詳細,建議仔細閱讀。

6、《機器學習(周志華)》

周老師的這本書講解比較詳細,內容也很豐富,除了我們相關的章節, 其他的內容大家有時間也可以都看看。

7、《李宏毅深度學習2017視頻》

youtube上可以觀看,每節課對應的視頻詳細網址會具體給出。

8、《深度學習2017ppt.rar》

輔助參考資料

1、《機器學習基石視頻》

2、《機器學習技法視頻》

這兩門課程都是由台灣林軒田老師主講的,像決策樹,隨機森林,GBDT 在這門課程中都有講解,想詳細了解的同學可以選擇對應的視頻觀看。youtube上可以看。

3、《麻省理工公開課:線性代數》

4、Gilbert Strang教授的網易公開課

人工智慧園地:AI愛好者們看過來,一張圖讓你入門AI?

zhuanlan.zhihu.com圖標
推薦閱讀:
相关文章