隨著人工智能的火熱,數據科學領域逐漸被人們所熟知,相信你肯定也聽說過諸如一些機器學習,深度學習之類讓人聽不懂的術語,而隨著概念的火熱,想進入人工智能這個領域的人越來越多,原因無他,隨著這個領域的火爆未來的發展機會,發展潮流乃至薪資都是非??扇说?,但是許多人雖然想進入這個領域,卻發現無從下手,或者說已經了解了人工智能這個概念想開始學習機器學習,卻不知道如何入門的人,今天我們就借助這篇文章,講述一下,機器學習應該怎么樣入門。
數據挖掘
要了解機器學習,首先就不得不談到數據挖掘,所謂數據挖掘,是指在數據中挖掘有價值的信息,最早定義的數據挖掘是KDD的一個步驟,后隨著挖掘的應用場景不斷豐富,其技術有了長足的發展,如今的數據挖掘,其概念無論從內涵還是外延角度而言都已獨立成為一門學科。
數據挖掘的特征是對客觀世界的抽象,算法則是對事物運行規律內嵌邏輯的還原,算法作用于特征從而無限逼近客觀事物運行規律的過程則是機器學習或者數據挖掘的過程。
數據挖掘算法分類
但凡從數據中進行有價值信息的挖掘,均可稱為數據挖掘,時至今日,數據挖掘核心算法主要可分為數理統計分析算法和機器學習算法兩大類
數理統計分析算法
核心算法理論基于統計學相關理論,所有模型均經過嚴格數學理論驗證,建模過程本質上是由現有模型理論出發向外求的過程
機器學習算法
和數理統計分析算法不同,機器學習算法側重于學習的過程,即利用數據訓練模型,具體問題具體分析
數理統計分析一般流程
基于數理統計原理進行的分析,現在稱作數理統計分析,也是數據挖掘的一個分支,如線性回歸、時間序列等算法,至今仍然是使用最廣泛的算法
數理統計分析一般遵循假設檢驗-建模參數選擇-構建模型-建設檢驗評估模型-參數調優這五個步驟。
機器學習一般流程
機器學習的定義:一個計算機程序可以從經驗E中學習某些類型的任務T和性能度量P,而且它在任務T中的性能(用P度量)可以隨著經驗E的提高而提高
機器學習鼻祖:感知機理論
隨著計算機運算能力不斷提升,數理統計分析大行其道。但人們并不止步于此,50年代就被提出的感知機理論在80年代再次進入公眾視野,人們開始嘗試使用計算機訓練多層感知機,也就是現在所謂的神經網絡。
神經網絡算法的計算機實踐是成功的,這即是神經網絡算法本身諸多優秀特性所導致,也是計算機運算讓神經網絡迭代運算如虎添翼
算法分類
從算法理論層面來說,數理統計是基于統計學原理設計的一系列算法,大多是基于少量樣本的統計推斷,其算法雖然大多誕生實踐較早,但在當今數據環境中仍然能夠發揮巨大價值。機器學習是需要更多的計算資源及數據量支撐,計算前無需預設過多條件,運算過程會不斷迭代,直至收斂。
從算法應用情景來分的話可以分為三個方面:
有監督學習:在有標簽數據上執行的分類、回歸或者預測類算法。
無監督學習:在無標簽的數據上執行聚類、頻繁項挖掘等算法。
半監督學習、強化學習…
數據挖掘常用算法
數理統計
機器學習
有監督學習
線性回歸、邏輯回歸、時間序列、嶺回歸、貝葉斯網絡
KNN、決策樹、神經網絡、支持向量機
無監督學習
假設檢驗、參數估計
聚類分析、協同過濾、關聯規則
機器學習算法分類
算法大類
代表算法
距離類模型
KNN、K-Means
線性方程模型
線性回歸、嶺回歸、Lasso、彈性網、邏輯回歸
規則類模型
樹模型、Apriori、FP-Growth
條件概率模型
樸素貝葉斯、貝葉斯網絡
強學習器
支持向量機、神經網絡
集成算法
Bagging、Boosting
算法學習的三重境界
學習算法有三種境界:
掌握算法入口出口
理解原理,靈活調優
融會貫通,設計算法
第一重境界,將算法本身當做黑箱,在不知道算法具體原理的情況下能夠掌握算法的基本應用情景(有監督、無監督),以及算法的基本使用情景,能夠調包實現算法。
第二重境界則是能夠深入了解、掌握算法原理,并在此基礎上明白算法實踐過程中的關鍵技術、核心參數,最好能夠利用編程語言手動實現算法,能夠解讀算法執行結果,并在理解原理的基礎上對通過調參對算法進行優化
最后一重境界,實際上也是算法(研發)工程師的主要工作任務,即能夠結合業務場景、自身數學基礎來進行有針對性的算法研發,此部分工作不僅需要扎實的算法基本原理知識,也需要扎實的編程能力。
機器學習的學習安排
理論基礎講完,接下來就是要介紹一下我們應該如何的去安排我們如何去學習機器學習了,當前主流的數據挖掘算法——機器學習大類算法并非完全由一個個獨立的算法所組成,機器學習算法內部有諸多相通之處,核心思想高度一致,彼此之間處理手段也有相互借鑒的地方,因此教學過程不僅對將各個算法的核心原理、編程語言實現方法進行講解,還需要對更為一般的機器學習方法論進行系統的講解。我們的學習任務也分為三個階段:
算法入門
算法大爆炸
高階算法
第一階段
第一階段主要是進行算法入門,主要學習的是兩點:核心算法和機器學習方法論
核心算法:基于距離的模型:KNN最近鄰分類器、聚類分析(K-Means、DBSCAN和層次聚類)
機器學習方法論:基于距離的機器學習模型評估指標、加權距離與優化方法、學習曲線、交叉驗證方法等
第二階段
第二階段是算法大爆炸,在有了第一階段基本算法思維培養和基本方法論掌握的基礎上,第二階段將對當前主流機器學習算法進行講解學習,也是分為核心算法和機器學習方法論。
核心算法:樹模型:包括ID3、C4.5、CART等;回歸分析:包括線性回歸、嶺回歸、Lasso、廣義線性回歸(邏輯回歸)等;貝葉斯分類器;關聯規則:包括Apriori、FP-Growth、PrefixSpan等
機器學習方法論:機器學習算法一般流程、常用凸函數優化方法(梯度下降、最小二乘法、坐標軸下降、擬牛頓法等)、概率分類問題模型評估指標(ROC、AUC)、感知機模型基本原理
第三階段
第三階段也就是最后一個階段是學習講解當前機器學習算法的高階算法部分,主要包括由感知機模型衍生而來的兩個模型:神經網絡和SVM,以及一些常用的集成方法。此部分所謂高級算法,即指其基本原理要更加艱深,也指其使用過程難度更大。
核心算法:神經網絡,多層感知機模型;SVM,包括線性SVM分類器、高斯核SVM分類器;集成算法:Bagging和Boosting兩大類算法,包括AdaBoost、隨機森林等。
機器學習方法論:偏倚-方差評估體系、核函數方法、SMO算法原理等
算法
以上就是我么學習機器學習的三個階段,接下來我們簡單的討論而言,在各種領域中,算法是何物。
在計算機領域中,算法用來調整語法結構、數據結構,從而優化程序執行效率;
在數學領域中,算法指的是在根據一定條件構建的模型是否有解、是否存在最優解,及獲取解的過程
而在數據分析、數據挖掘或機器學習領域,算法用于捕捉數據背后隱藏的客觀規律,去解決和實際業務高度相關的某些問題。某些時候算法是為了調整數據結構、降低程序的時間復雜度,提高計算機執行效率(如FP-Growth),多數時候算法是為了解決最優化問題(如最小二乘法、梯度下降等),更多時候算法就是一個數學模型,作用于特定的數據,產出特定的結論,解決特定的問題。
機器學習的一般流程
機器學習的一般流程是分為六個步驟:
提出問題:回歸、分類,還是探索數據結構
底層核心邏輯,如自變量加權求和預測因變量
構建算法體系或算法方程,如
設置模型超參數,然后根據問題構造損失函數,損失函數是一個包含模型參數的方程
利用最優化算法求解損失函數極值,常用最小二乘法、梯度下降、牛頓法、坐標軸下降算法等,在求解損失函數極值的過程就是求解方程參數值的過程
構建模型評估指標,尋找模型優化途徑,模型調參。
算法理論、編程語言與算法庫
接下來我們討論一下算法理論、編程語言和算法庫這三者的關系。
首先,算法理論是此三者中最核心的知識內容,掌握算法基本理論、擁有算法素養和算法思維才能根據需求及數據情況合理選擇選法、根據模型結果進行算法調優,并合理解讀模型結果;
其次,算法需要利用計算機來執行,因此我們需要將算法中的人類邏輯轉化為計算機邏輯交付計算機執行,此過程需要用到編程語言,但其只是算法實踐的工具
最終,算法庫將進一步封裝算法底層執行過程,提供整潔而統一的接口給用戶使用,從而降低算法使用門檻。
學習目標
最后我們樹立一下我們有關機器學習的學習目標:
掌握常用算法的核心原理
掌握機器學習一般方法論
了解常用算法的優化方法
樹立數據挖掘思想和機器學習思想
以上就是有關機器學習入門的步驟希望大家在看完之后可以明白什么是機器學習,并且堅定的在這條道路上走下去,緊跟時代的潮流,早日找到自己滿意的一份領域內的工作,謝謝。