⑴ 如何學習機器學習的一點心得
學習之前還是要了解下目前工業界所需要的機器學習/人工智慧人才所需要必備的技能是哪些?你才好針對性地去學習。正好我前兩天剛聽了菜鳥窩(一個程序猿的黃埔軍校)的一位阿里機器學習演算法工程師的課,幫助我理清了思路,在此分享下。
網路教程還是挺多的,就看怎麼學習了,不過遇到比較好的老師帶,會少走很多彎路。如果經濟上壓力不大,建議可以去報一下菜鳥窩的機器學習班,畢竟人家老師都是BAT實戰的,知道企業中真正要用到的東西。
不知道有沒幫到你?
⑵ 決策樹方法的基本思想是什麼
決策樹的基本思想
決策樹演算法是最早的機器學習演算法之一。
演算法框架
1.決策樹主函數
各種決策樹的主函數都大同小異,本質上是一個遞歸函數。該函數的主要功能是按照某種規則生長出決策樹的各個分支節點,並根據終止條件結束演算法。一般來講,主函數需要完成如下幾個功能。
(1)輸入需要分類的數據集和類別標簽
(2)根據某種分類規則得到最優的劃分特徵,並創建特徵的劃分節點--計算最優特徵子函數
(3)按照該特徵的每個取值劃分數據集為若幹部分--劃分數據集子函數
(4)根據劃分子函數的計算結果構建出新的節點,作為樹生長出的新分支
(5)檢驗是否符合遞歸的終止條件
(6)將劃分的新節點包含的數據集和類別標簽作為輸入,遞歸執行上述步驟。
2.計算最優特徵子函數
計算最優特徵子函數是除主函數外最重要的函數。每種決策樹之所以不同,一般都是因為最優特徵選擇的標准上有所差異,不同的標准導致不同類型的決策樹。如:ID3的最優特徵選擇標準是信息增益、C4.5是信息增益率、CART是節點方差的大小等。
在演算法邏輯上,一般選擇最優特徵需要遍歷整個數據集,評估每個特徵,找到最優的那一個特徵返回。
3.劃分數據集函數
劃分數據集函數的主要功能是分隔數據集,有的需要刪除某個特徵軸所在的數據列,返回剩餘的數據集;有的乾脆將數據集一分為二。
4.分類器
所有的機器學習演算法都要勇於分類或回歸預測。決策樹的分類器就是通過遍歷整個決策樹,使測試集數據找到決策樹中葉子節點對應的類別標簽。這個標簽就是返回的結果。
⑶ 干貨 | 基礎機器學習演算法
本篇內容主要是面向機器學習初學者,介紹常見的機器學習演算法,當然,歡迎同行交流。
哲學要回答的基本問題是從哪裡來、我是誰、到哪裡去,尋找答案的過程或許可以借鑒機器學習的套路:組織數據->挖掘知識->預測未來。組織數據即為設計特徵,生成滿足特定格式要求的樣本,挖掘知識即建模,而預測未來就是對模型的應用。
特徵設計依賴於對業務場景的理解,可分為連續特徵、離散特徵和組合高階特徵。本篇重點是機器學習演算法的介紹,可以分為監督學習和無監督學習兩大類。
無監督學習演算法很多,最近幾年業界比較關注主題模型,LSA->PLSA->LDA 為主題模型三個發展階段的典型演算法,它們主要是建模假設條件上存在差異。LSA假設文檔只有一個主題,PLSA 假設各個主題的概率分布不變(theta 都是固定的),LDA 假設每個文檔和詞的主題概率是可變的。
LDA 演算法本質可以藉助上帝擲骰子幫助理解,詳細內容可參加 Rickjin 寫的《 LDA 數據八卦》文章,淺顯易懂,順便也科普了很多數學知識,非常推薦。
監督學習可分為分類和回歸,感知器是最簡單的線性分類器,現在實際應用比較少,但它是神經網路、深度學習的基本單元。
線性函數擬合數據並基於閾值分類時,很容易受雜訊樣本的干擾,影響分類的准確性。邏輯回歸(Logistic Regression)利用 sigmoid 函數將模型輸出約束在 0 到 1 之間,能夠有效弱化雜訊數據的負面影響,被廣泛應用於互聯網廣告點擊率預估。
邏輯回歸模型參數可以通過最大似然求解,首先定義目標函數 L ( theta ),然後 log 處理將目標函數的乘法邏輯轉化為求和邏輯(最大化似然概率 -> 最小化損失函數),最後採用梯度下降求解。
相比於線性分類去,決策樹等非線性分類器具有更強的分類能力,ID3 和 C4.5 是典型的決策樹演算法,建模流程基本相似,兩者主要在增益函數(目標函數)的定義不同。
線性回歸和線性分類在表達形式上是類似的,本質區別是分類的目標函數是離散值,而回歸的目標函數是連續值。目標函數的不同導致回歸通常基於最小二乘定義目標函數,當然,在觀測誤差滿足高斯分布的假設情況下,最小二乘和最大似然可以等價。
當梯度下降求解模型參數時,可以採用 Batch 模式或者 Stochastic 模式,通常而言,Batch 模式准確性更高,Stochastic 模式復雜度更低。
上文已經提到,感知器雖然是最簡單的線性分類器,但是可以視為深度學習的基本單元,模型參數可以由自動編碼( Auto Encoder )等方法求解。
深度學習的優勢之一可以理解為特徵抽象,從底層特徵學習獲得高階特徵,描述更為復雜的信息結構。例如,從像素層特徵學習抽象出描述紋理結構的邊緣輪廓特徵,更進一步學習獲得表徵物體局部的更高階特徵。
俗話說三個臭皮匠賽過諸葛亮,無論是線性分類還是深度學習,都是單個模型演算法單打獨斗,有沒有一種集百家之長的方法,將模型處理數據的精度更進一步提升呢?當然,Model Ensembe l就是解決這個問題。Bagging 為方法之一,對於給定數據處理任務,採用不同模型/參數/特徵訓練多組模型參數,最後採用投票或者加權平均的方式輸出最終結果。
Boosting為Model Ensemble 的另外一種方法,其思想為模型每次迭代時通過調整錯誤樣本的損失權重提升對數據樣本整體的處理精度,典型演算法包括 AdaBoost 、GBDT 等。
不同的數據任務場景,可以選擇不同的 Model Ensemble 方法,對於深度學習,可以對隱層節點採用 DropOut 的方法實現類似的效果。
介紹了這么多機器學習基礎演算法,說一說評價模型優劣的基本准則。欠擬合和過擬合是經常出現的兩種情況,簡單的判定方法是比較訓練誤差和測試誤差的關系,當欠擬合時,可以設計更多特徵來提升模型訓練精度,當過擬合時,可以優化特徵量降低模型復雜度來提升模型測試精度。
特徵量是模型復雜度的直觀反映,模型訓練之前設定輸入的特徵量是一種方法,另外一種比較常用的方法是在模型訓練過程中,將特徵參數的正則約束項引入目標函數/損失函數,基於訓練過程篩選優質特徵。
模型調優是一個細致活,最終還是需要能夠對實際場景給出可靠的預測結果,解決實際問題。期待學以致用! 作者 曉惑 本文轉自阿里技術,轉載需授權