《機器學習入門實戰》第 01 篇 如何入門機器學習?

機器學習與數據挖掘

如果你是一個想要入門數據科學的初學者,首先需要面對的就是各種相關的名詞和概念。例如,什麼是人工智能、機器學習、數據挖掘以及統計分析?簡單來說,它們之間的關係如下圖所示。

concept
統計學是通過搜索、整理、分析、描述數據等手段,以達到推斷所測對象的本質,甚至預測對象未來的一門綜合性科學。統計學方法主要分爲描述統計和推斷統計;例如計算大學生身高的平均數、標準差以及收入和學歷之間是否具有統計相關性都屬於描述統計,而通過全國人口普查掌握全國人口的基本情況屬於推斷統計。

機器學習是人工智能(AI)的一個分支,涉及概率論、統計學、逼近論、凸分析、算法複雜度理論等多門學科。機器學習專門研究計算機怎樣模擬或實現人類的學習行爲,以獲取新的知識或技能,重新組織已有的知識結構使之不斷改善自身的性能。

數據庫是按照數據結構來組織、存儲和管理數據的倉庫;數據倉庫(DW)是爲了提供報告服務和決策支持的特定數據庫。我們常見的數據庫有 Oracle、MySQL、SQL Server、MongoDB、以及 Apace Hive、HBase 等。

數據挖掘一般是指從大量的數據中通過算法搜索隱藏於其中信息的過程。數據挖掘是集統計學、機器學習和數據庫技術於一體的多學科領域。爲了便於理解,我們可以將數據挖掘的作用分爲兩種:通過統計數據分析來解釋過去以及基於機器學習算法預測未來,如下圖所示。
data minig
解釋過去本質上也是爲了能夠預測未來。通過統計學和可視化的方法對數據進行探索,從而發現歷史數據中的規律或者問題;並且爲後續的數據挖掘與數據建模工作做好準備。

預測未來的主要方式是建立預測算法模型。如果預測結果是離散的類別值則稱爲分類,例如垃圾郵件檢測、圖像識別等;如果預測結果是連續的數值則稱爲迴歸,例如藥物反應、股票價格預測等;聚類則是將相似的觀測值分配同一個組中,例如用戶畫像、推薦系統等;關聯規則可以在觀察結果中找到事務的之間關聯,例如哪些產品經常被一起購買。

機器學習領域提供了大量用於數據挖掘的算法,同時也給我們的選擇帶來一定的困難;下面是一個常見的機器學習算法速查表(英文原版),可以方便我們需要時查詢。
cheet sheet

知道這些概念之後,我們來討論一下初學者應該如何入門機器學習。如果你去網絡上搜索,大概會得到以下一些建議:

  • 閱讀專業書籍
  • 學習 MOOC 課程
  • 閱讀各種博客文章
  • 嘗試 Kaggle/天池競賽

不過,這些建議實際上大部分都不適合入門學習。學習一門技術或者技能的方法概括起來大概也就兩種:理論先行或者實踐先行。

傳統入門方法的問題

大部分傳統學習方法採用理論先行的方式,首先需要我們掌握的基礎包括:

  • 高等數學
  • 微積分
  • 概論論與統計
  • 線性代數
  • 信息論
  • 計算機編程語言
  • 數據結構與算法
  • 機器學習算法
  • 最優化理論

然後,我們可以開始實現簡單的機器學習算法,參加一些相關領域的競賽,嘗試在實際工作中使用所學的知識。

對於任何初學者來說,如果一開始就要面對這麼多的理論知識,不但耗時而且很容易影響學習的積極性。記得以前我們學習英語時,老師總是要求背誦各種單詞,記住各種主謂賓、定狀補的語法,而很少能夠有理解語義的鍛鍊環境;導致現在還是有些拒絕學習英語。

english

傳統的機器學習入門方法也存在同樣的問題:過於專注理論算法和底層細節,而不是解決實際問題

逆向學習方法

與傳統學習方向相反的是,逆向學習方法採用實踐先行的理念,以解決數據挖掘的實際問題驅動學習過程。想想我們小時候是怎麼學會說話的,肯定不是先學各種拼音、漢字和語法,而是在實際生活中不斷地聽和說就自然會說話了;當然,想要成爲語言學家肯定要研究這些語言細節,也需要付出比常人多很多倍的努力。
child
當然,並不是說不需要基礎理論知識。理論非常重要,但是對於入門的初學者,應該先對整體的流程建立認知;然後再從實踐到理論,有針對性的學習各個知識點。這樣更容易獲得成就感,提高學習的積極性,有利於初學者的入門。

因此,我們將會採用以下方法帶領大家入門:

  1. 選擇一個行業成熟的系統化流程;
  2. 選擇適合初學者入門的工具平臺;
  3. 專注於解決實際的數據挖掘問題;
  4. 針對性地擴展算法原理和知識點。

首先,我們需要站在前人的基礎上;數據挖掘領域實際上很早就建立了成熟的行業流程,即 CRISP-DM(cross-industry standard process for data mining)。我們將其轉換爲以下流程圖:
流程
爲了解決現實世界中的問題,我們通過採集原始數據,經過格式化、清洗、轉換和特徵選擇等預處理,以及探索性數據分析,得到適合建立模型的數據;然後比較和選擇不同的算法,對其進行評估和調優;反覆整個過程最終獲得並利用結果。

常見的機器學習和數據挖掘平臺有很多,包括商業平臺 SPSS、SAS 以及 Matlab 等;開源的 Python、R 語言等;大數據平臺 Mahout、Spark 等。我們將會使用一個免費開源的機器學習平臺:Orange。它是一個非常適合初學者入門的工具,提供了簡單易用的圖形操作界面,無需任何編程和算法基礎就能完成各種機器學習和數據挖掘任務。以下是一個 Orange 分類工作流的界面。
orange
不僅如此,Orange 基於 Python 開發,並且使用 Python 代碼庫進行科學計算,例如 numpy、scipy 以及 scikit-learn;高級用戶既可以通過 Python 編程爲其提供擴展的功能,也可以將其作爲 Python 的一個編程模塊使用。

專欄內容介紹

目標人羣

本專欄以實戰爲主,面向零基礎的初學者,學習的前提包括:

  • 對數據挖掘和機器學習感興趣;
  • 無需程基礎,但會使用計算機;
  • 具有最基本的數學知識。

專欄章節

專欄預計包含以下內容:

  1. 如何入門機器學習?
  2. Orange 機器學習平臺的安裝與使用;
  3. 如何加載本地、網站以及數據庫中的數據集;
  4. 數據的描述性統計分析與數據可視化探索;
  5. 數據預處理:縮放、轉換以及缺失值處理;
  6. 第一個數據分類實戰:識別鳶尾花的品種;
  7. 算法性能評估:交叉驗證和評價指標;
  8. 常用分類算法性能比較實驗;
  9. 利用集成學習提高機器學習的效果;
  10. 利用迴歸算法預測房價和股票走勢;
  11. 通過聚類算法實現用戶畫像;
  12. 通過關聯規則實現產品推薦;
  13. 通過特徵工程提高模型的上限;
  14. 模型的保存與上線部署。

歡迎關注❤️、點贊👍、轉發📣!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章