search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

機器學習技術——有監督學習

文章全部內容皆為原創,歡迎分享,但請註明作者及出處且勿擅自修改任何內容。

關於作者:

楊滔,桃樹科技(TaoData)創始人,專註於下一代人工智慧產品的研發、應用與商業化。擁有超過十年機器學習研究與應用經驗。奧克蘭大學機器學習博士,悉尼科技大學博士后。創立桃數科技前,任職阿里巴巴集團數據科學家,建立淘寶網數據科學團隊,首創聚划算爆款模型。

毫無疑問,機器學習技術將成為未來社會最重要的基礎技術之一。機器學習技術之所以越來越重要,主要是因為:

  • 數據無處不在。高質量的數據越多,機器學習的價值就越大。
  • 機器永不停歇。人會疲憊,機器卻7*24小時不停運轉。比人笨一點的機器,卻更努力。
  • 機器學習解決的是決策問題,而決策機制的優化可以同時提高許多應用場景的工作效率。

本文介紹有監督學習(Supervised Learning),機器學習技術中應用場景最多的技術類型。

有監督學習是通過設定目標變數,基於一系列訓練樣本從數據中建立模型,從而基於模型預測新數據目標變數值的演算法技術。在有監督學習中,目標變數本身的設定是由人來定義的。目標變數定義的好,模型才有可能預測準確。

有監督學習包括以下幾個步驟:

1. 問題定義

首先,我們需要設定預測對象和目標變數,即,演算法預測的單位和目標分別是什麼。

在信用風控模型中,業務目標是預測信貸客戶未來一段時間形成壞賬的風險。因此,預測對象是信貸客戶,目標變數是客戶未來一段時間是否成為壞賬(壞賬為1,非壞賬為0)。在商品轉化率預測模型中,業務目標是預測商品上線后的成交轉化率。因此,預測對象是商品,目標變數是商品上線后的成交轉化率(可能是0,0.1或0.9)。

目標變數可能是因子型變數(目標變數的取值是一系列類別,例如,0或1)或者數值型變數(目標變數取值為連續型數值,例如,0,0.1或0.9)。如果目標變數是因子型變數,則該問題為有監督學習中的分類(Classification)問題;如果目標變數是數值型變數,則該問題為有監督學習中的回歸(Regression)問題。

除了目標變數,預測對象還存在一系列特徵變數(即,描述該對象的數據維度)。有監督學習演算法是通過學習目標變數和特徵變數之間的映射關係,從而建立預測模型。在信用風控模型中,有監督學習模型試圖通過信貸客戶(預測對象)的一系列維度(例如,基本信息、交易流水變化、徵信信息、瀏覽行為特徵、社交信息、工商法院信息)來學習這些維度如何影響客戶的還款信用。

在有監督學習中,如果我們可以獲得一個樣本的目標變數,則這些樣本為訓練樣本;如果我們不知道一個樣本的目標變數,則這些樣本為預測樣本。在模型訓練階段,有監督學習演算法基於訓練樣本來建立模型;在模型預測階段,模型對新樣本進行預測;當我們獲得新數據的真實目標變數值之後,預測效果便可以在測試階段評估。

2. 數據準備

當我們明確了有監督學習中的預測對象、目標變數、問題類型和特徵變數之後,我們便可以著手準備數據。

在有監督學習中,我們必須確定以下數據:

  • 預測對象變數名稱(例如,CustomerID);
  • 目標變數名稱(例如,Target);
  • 預測對象的特徵變數的變數名和變數類型。在這裡,我們無需主觀判斷模型最終會使用什麼特徵變數,僅僅需要把模型可能使用的所有特徵變數丟給演算法即可(演算法可以自動學習模型使用的變數)。

在有監督學習(分類或回歸)中,變數類型一般包括:數值型變數(例如,0.1或0.9),因子型變數(例如,0/1,男/女),文本型變數(例如,「桃樹科技在杭州」,「桃樹英文名字是TaoData」)和時間型變數(例如,「1985-08-11」)。

當我們確定以上數據之後,便可以準備好如下數據:

  • 訓練數據:包括預測對象和目標變數的一張寬表
  • 數據字典:特徵變數名稱以及對應的變數類型
  • 測試數據:包括預測對象和目標變數的一張寬表(目標變數僅用於測試預測效果,而不用於預測本身)

有了這些數據之後,有監督學習技術需要對這些原始數據進行清洗、加工和處理,以便演算法可以用於建模。學術界發表的演算法一般都假設數據已經是乾淨和被處理過的,而實踐中大部分數據都是粗糙,不適合直接建模的。

在機器學習領域,學術界和商業應用中最大的差異是是否假設數據已經準備好了。

數據處理的主要內容包括:

  • 缺失值填充:對數據中的缺失值進行填充,並統計每個樣本的缺失值個數作為特徵
  • 樣本選擇:剔除重複樣本和異常樣本,對不均勻樣本進行模擬或抽樣,從而保證訓練樣本在不同目標變數的取值範圍內具備充分代表性
  • 變數選擇:根據變數的variance,覆蓋率,單變數與目標變數的相關度,變數彼此之間的共線性來選擇適合進入模型的變數
  • 變數衍生和變數轉化:將因子型、文本型和時間型變數轉化為數值型變數,抽取變數彼此之間的交叉關係,對歪曲變數進行轉化,將變數分箱處理
  • 降維:將原始變數投射到新空間中,抽取可以獲得更多信息的新特徵,並且降低維度
  • 統計分析:對數據進行多方位可視化分析

3. 演算法調優

不同的演算法適用於不同的數據。沒有最好的演算法,只有最合適的演算法。

在有監督學習中,如果特徵變數大部分是統計類特徵,預測能力最好的演算法一般包括GBDT、XGBoost、Random Forest等樹狀演算法。樹狀演算法具備特徵選擇能力,並且可以輸出模型使用的變數權重,便於分析師理解業務。但當數據中特徵變數的維度太高時,樹狀演算法一般不適用。

如果有監督學習的數據大部分為文本特徵,SVM演算法的預測能力一般最好。但是,SVM演算法的建模效率比較低,並且SVM的效果高度依賴參數選擇。NaiveBayes也是常用的文本挖掘演算法,但它需要高度依賴特徵選擇演算法(NaiveBayes假設變數彼此獨立)。

在小數據建模中,CART演算法可以輸出一系列規則幫助分析師快速理解數據背後的規律。例如,在醫學診斷中,CART演算法可以幫助醫生提供數據背後的規則和線索。

在海量數據的有監督學習建模中,分散式版本的LR演算法是常用的預測演算法,但LR演算法也高度依賴數據處理演算法,需要大量的離線調試,模型維護成本較高。

在有監督學習中,如果特徵變數大部分是原始特徵並且原始特徵可以窮舉數據信息(例如,圖像識別和語音識別),深度學習演算法是最佳選擇,但對深度學習演算法的調參是一個複雜過程。

在機器學習技術的應用實踐中,當數據被充分處理之後,演算法和參數的選擇是最影響模型效果的。選擇演算法和參數,背後本身需要一套演算法,這還是機器學習技術應用領域的一個空白。

4. 知識發現

有監督學習演算法通過從訓練數據中建模,不僅用於預測新數據,還可以為我們提供知識發現。對於一部分有監督學習演算法,我們可以得到:

1)模型使用了哪些變數以及變數的權重是什麼?

2)在單次預測中,影響預測打分的top k變數以及對應的影響權重是什麼?

通過理解模型使用的重要變數,分析師還可以從數據源入手,抽取更多與重要特徵變數相關的原始變數。在這種情況下,模型不僅可以使用原始數據建模,同時可以提供進一步抽取原始數據的線索。當數據源在不斷變化的情況下,建模是一個迭代優化的過程。

當數據樣本不大的情況下,分析模型使用的變數權重可能是比預測效果更好的判斷模型有效性的標準。

5. 效果分析

無論是分類還是回歸問題,有監督學習演算法都是試圖建立一個預測模型,從而最小化預測誤差。在分類問題中,量化預測誤差的指標包括:AUC, KS, Accuracy, Precision, Recall, F1 measure。在回歸問題中,量化預測誤差的指標包括:RMSE, RMSLE, MAE, Gini。

在效果分析階段,我們一般會重點關注Performance Table——基於模型預測打分將測試數據分為20個集合。我們可以關注每個集合的效果指標,並且可以基於此判斷如何切割預測打分的閾值。

6. 模型部署

有監督學習建模整體可以分為模型原型確立(model prototyping)和模型部署(model deployment)兩個部分。

在模型原型確立部分,我們重點關注使用什麼數據、演算法、參數以及分析指標;在模型部署階段,我們將數據和有監督學習演算法對接后,讓機器可以持續學習,並將機器學習結果持續與生產系統對接。

在這裡,我們需要了解數據安全要求、數據存儲環境和業務系統環境。我們認為最合適的模型部署方式是:

最常見做法是把模型部署為Web Service形式,讓不同業務系統可以API實時調用不同的模型。

機器學習技術的應用不僅包括演算法研究,而是包括問題定義、數據準備、演算法調優、知識發現、效果分析和模型部署等環節。不難發現,應用有監督學習技術是一個很繁瑣,很容易掉進坑裡(又不知道自己在坑裡)。

我們公司(桃樹科技)自己通過大量的試驗,提煉了這樣一套機器學習引擎,我們給它起名字叫做DataBrain。DataBrain的價值就在於大幅度降低了使用機器學習技術的門檻,讓分析師或工程師把注意力集中在業務需求、產品體驗和用什麼數據上,演算法僅僅是一個工具,幫助使用者解決問題的工具。

Java開發工程測試程師等職位正在開放招聘。

有興趣與一起玩轉數據科學,做出最酷的人工智慧產品?不如投份簡歷互相認識一下?

桃樹誠邀你的加入!

如果你願意與我們一起共建AI時代的獨角獸,請將你的簡歷並註明你應聘的職位發送至:[email protected]



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦