天天看點

政策産品經理深入淺出了解機器學習算法原理

機器學習簡單來說就是機器從曆史過去的資料、知識中總結出規律經驗,用于提升系統的度量能力。本文作者對十大機器學習算法的前三個進行了分析介紹,一起來看一下吧。
政策産品經理深入淺出了解機器學習算法原理

今天我們來講講關于基礎的機器學習算法與對應的适用場景,幫助政策産品建立起來最為基礎的“工具方案-問題”的認知思路,幫助大家更好了解十大機器學習算法的思想和了解對應的應用場景。

了解機器學習另一個重要的點是,在和算法工程師溝通過的時候,“知其然更知其是以然”,而不能做“黑盒産品經理”,這種甚至都不能被稱之為政策産品,無法為自己的業務名額和業務方向負責。

那麼,接下來我們圍繞以下幾個部分來給大家介紹一下政策産品必知的十大機器學習算法,幫助大家做簡單入門,感興趣還是建議大家閱讀專業的機器學習書籍,如果有幫助到大家,辛苦大家幫忙點個喜歡、收藏以及評論一下。

一、機器學習的分類

1. 定義本質

首先,我們在介紹機器學習的分類之前,我們需要了解清楚機器學習的本質是什麼,簡單來說就是機器從曆史過去的資料、知識中總結出來規律經驗用于提升系統的度量能力。舉個栗子,我們将“好西瓜”開瓜的經驗以【資料】形式傳遞給模型(考慮西瓜蒂、花紋以及敲擊的實心聲音)給到模型,在面對新瓜,模型就會給我們判定是否為“好瓜”的結論,是以說機器學習就是一門研究“學習算法”的學問。

政策産品經理深入淺出了解機器學習算法原理

2. 機器學習分類及對應關系

機器學習的算法大緻可以分為三類:監督學習算法、無監督學習算法以及強化學習算法。

1)監督學習算法 – Supervised Algorithms

簡單來說在監督學習訓練過程中,可以由訓練資料集學到或建立一個模式(函數 / learning model),并依此模式推測新的執行個體。

在監督學習當中,需要給算法去提供一些解決方案需要的訓練資料,成為所謂的标簽和标記;簡單說就是要有自變量(X)和因變量(Y),同時可用來分類和回歸。那麼常見的監督學習算法有:K鄰近、線性回歸、邏輯回歸、支援向量機(SVM)、決策樹和随機森林、神經網絡。

政策産品經理深入淺出了解機器學習算法原理

2)無監督學習算法 – Unsupervised Algorithms

無監督學習的訓練資料都是不需要經标記,算法會在沒有指導的情況下自動學習;訓練時候的資料是隻有自變量但是沒有對應的因變量。

常見的無監督學習:聚類算法(K-meansK均值、最大期望算法)、關聯規則學習(Apriori、Eclat)等;例如京東電商平台根據C端使用者購物頻次、平均客單價、購物的筆單數以及年均消費力等,将這些使用者自動“聚類”為幾個不同類别,然後在進行人工标記。

政策産品經理深入淺出了解機器學習算法原理

3)強化學習算法 – Reinforcement Algorithms

主要基于決策進行訓練,算法根據輸出結果(決策)的成功或錯誤來訓練自己,以負面回報的形式獲得懲罰。它必須自行學習什麼是最好的政策,進而随着時間推移獲得最大的回報。

例如我們熟悉的“阿爾法狗Alpha Go”就是在和優秀棋手中不斷對弈,通過輸赢的對弈起棋局來訓練自己如何走下一步是勝率最大的走法,有一部叫做疑犯追蹤的美劇也是圍繞這個視角來描述的,這也是離我們所謂的人工智能最近的一種算法類型。

政策産品經理深入淺出了解機器學習算法原理

二、基本的機器學習算法分類

1. 線性回歸-Linear Regression

首先,了解一個概念,回歸-Regression和我平時了解的回歸-return的概念不一樣,這裡回歸指代的是“推導”的意思。回歸算法是相對于分類算法而存在的,和我們想要預測的因變量y的類型相關。

  • 如果y是個分類離散變量,例如預測性别男/女,預測使用者在推薦位是否點選,預測人外套的顔色紅/綠/黃/黑…,那麼我們就需要用分類模型的算法訓練資料并作出對應的預測;
  • 如果y是個連續性變量,例如京東購物使用者的年齡(25、40、60)、購物使用者的年收入水準(30萬/50萬/100萬/1000萬…),使用者逛推薦位feeds流的停留時長(5s/10s/15s…)這種的我們就需要用到回歸模型的算法去做訓練資料的預測;

但是,分類問題其實和回歸問題是可以互相轉化的,例如上面我們說的在推薦位feeds發生點選行為,如果變成預測C端使用者的點選機率,從10%,11%到100%,轉化為大于50%則為預測點選,小于50%則為不點選,我們就從回歸模型的問題變成了一個分類問題。

線性回歸算是機器學習入門型算法,可以用一個簡單的二進制一次方程來做概述說明,由下圖我們可以得到一個y = a+bx 的二進制一次方程,給定a、b兩個參數的時候,畫在坐标軸最終是一條直線;可以看到圖中有許多的散點圖,我們需要通過一條直線去盡可能的拟合途中的資料點,這就叫一進制線性回歸。

政策産品經理深入淺出了解機器學習算法原理

但是,我們也發現上面的所有散點圖并不能被一條一進制二次方程穿過,就和現實世界的資料一樣,我們隻能盡可能的找到規律,找到一條最合适的直線;是以,不可避免地發現預測理論值Predicted Value和實際值之間會存在差别,這個也就是我們所說的“誤差”,是以我們往往在一進制二次回歸方程裡會帶上一個尾巴來來進行誤差c,也就是y = a+ bx +c。

因為資料并不是真的落在一條直線上,而是分布再周圍,是以我們需要找到一個合适的a和b,來找到一條“合适的曲線”,那麼為了求得a和b,我們就需要用到損失函數的概念。

政策産品經理深入淺出了解機器學習算法原理

誤差說白了就是真實值和預測值之間的內插補點,也可以了解為距離;我們把上圖當中每一個點單獨的誤內插補點求出來,計算出對應的值:

再把每一個點做平方後的累加合,這樣就可以完全的量化出來你和曲線上直線對應的點和實際值之間的誤差距離,用公式表示如下:

這個公式是殘差平方和-SSE(Sum of Squares for Error),在機器學習中它是回歸問題當中使用的損失函數,用于衡量回歸模型誤差的函數,也就是我們要的“直線”的評價拟合成都的标準标準。這個函數的值越小,說明直線越能拟合我們的資料。最後如何求的最佳參數a和b,我們一般需要使用梯度下降法或者最小二乘法求得,後續展開分享,就不再這裡贅述了。

2. 邏輯回歸-Logistic Regression

前面給大家介紹了邏輯回歸常常用來解決分類問題,業界常用來做搜尋結果頁/推薦資訊流當中使用者是否點選、金融系統當中判定是否違約客戶等等。

記住一句關鍵的話:分類本質上是用邏輯回歸當中的目的和結果,其中間過程還是回歸性質。為什麼這麼說,舉個例子,京東推薦系統當中會把使用者在推薦位對商品點選的可能性“機率”歸一到(0,1),然後給可能性在加一個門檻值0.5,比方說點選預測的可能性是0.5以上,預測判定為會被點選,小于0.6則預測為不會被點選。

由此可見,所有實際點值都落在了y = 1 和y = 0上了(縱坐标非0即1),如果用一個單一的一進制二次線性方程拟合效果會比較差,隻有少數的點才被落在了直線上。

政策産品經理深入淺出了解機器學習算法原理

實際上,邏輯回歸一般會采用sigmoid的函數去做拟合,sigmoid函數在本身是一個s型曲線函數,在取值範圍之間(-∞,+∞)會在y = 0 和y = 1之間會有平滑過渡,用來表示預測的概念,也就是事件發生的“可能性”。

政策産品經理深入淺出了解機器學習算法原理

多元一次方程一般的形式為可以表現為如下圖,一般可以簡寫成為矩陣形式Y = Xβ:

政策産品經理深入淺出了解機器學習算法原理

将特征權重求和Xβ帶入,領所有預測為正例得機率P(Y = 1),例如在京東推薦系統當中,預測這一次行為時被點選,那麼邏輯回歸的形式就變成了如下的條件公式預測:

整個邏輯回歸的函數就構造完成了,下面就是通過梯度下降法來求解β獲得最佳位置參數去建構最佳函數去拟合所有的點,關于梯度下降法我們單獨起一篇文章來進行介紹;

3. K鄰近算法KNN-KNearestNeighbor

KNN是比較入門級的機器學習分類算法,整體思路比較的簡單,核心就是的思維就是中國古代中的“近朱者赤近墨者黑”的思想。其中KNN當中的K指代的就是最近的K個點的個數來預測位置的資料點,其中選擇K值就是預測精準度的一個關鍵性質的因素。

政策産品經理深入淺出了解機器學習算法原理

KNN做的就是選出距離目标點Predicted點位距離最近的k個點,看這k個點的大多數顔色是什麼形狀。這裡我們可以通過歐氏距離來度量和計算預測Predicted點位和K個點之間的距離。

  • case 1:當我們把K設為1的時候,可以看出來,預測點位距離黃色的“+”最近,那麼我們在判定點的類型的時候會把預測點位判定成為“+”
  • case 2:當我們把K設為5的時候,可以看出來距離最近的點位有1個“+”,1個“O”,還有3個“△”,那麼我們召會将預測Predict的點位會判定成為“△”

結論:由此我們可以知道K的選擇不同,對于得到的結果大相徑庭,是以選擇K值也就成為了KNN算法的關鍵。

政策産品經理深入淺出了解機器學習算法原理

KNN的分類邊界是非線性的,K越小越容易過拟合,我們看到到K = 1的時候,這個時候隻會根據最近的單個點進行預測,如果最近的一個點是相反的噪點,這個時候就預測出錯,這個時候無形之中增加了計算的複雜度,魯棒穩健性比較差。但是如果K取得比較大(例如K = 100)的時候,這個時候又會欠拟合,模型計算非常簡單,并且分類的邊界也會比較的平滑。

是以,我們找到合适的K的過程,就是一個不斷的調參過程,比較經典合适的方法就是N折交叉驗證法,下圖展示的是5折交叉驗證,講一直到的樣本集合分為5各等分,其中四份作為訓練集,1份作為驗證集,設定 參數,做出5個等分。

政策産品經理深入淺出了解機器學習算法原理

具體來說:

  • 第一步:把樣本集分成5個小的子集,編号為train1、train2、train3、train4、train5;
  • 第二步:先用train1、train2、train3、train4模組化,得到model1,并在train5上計算誤差error1;
  • 第三步:在用train1、train2、train3、train5模組化,得到model2,并在train4上計算誤差error2;
  • ……..
  • 重複以上步驟,建立5個model模型,将5個誤內插補點相加後除以5得到平均誤差。

做完交叉驗證之後,我們就設定超參數從k=1開始嘗試,計算K=1時的平均誤內插補點,每次K增加2,最終能選到産生最小誤內插補點的K(因為随着K變大,誤內插補點會先變小後變大嘛)。

這裡有個主意的點,我們一般都對K會取奇數而不取偶數,因為偶數有一定的可能會導緻點打平(例如有4個點其中2個黃色“+”,2個“O”),這樣就無法判斷Predict 點位究竟是屬于黃色“+”,還是“O”,是以盡量避免這種問題。

最後還要注意的點就是點位需要做“标準化”,如果不做标準化,可能會因為點位會受到點位影響嚴重,一般會采用極差法消除兩級或者是标準差标準法。

KNN本身是沒有訓練過程的,也沒有模型的參數,是以再驗證過程中是和已知的樣本點的距離來學習。

KNN的優點就在于原理簡單也比較号實作,對于非線性規則分類效果是要更加優于先行分類器;缺點也十分明顯:需要存儲全部的資料集、而且需要計算每一個預測Predict和已知點的距離比較耗時,并且不太适合于特征空間次元比較高的場景類型。

三、小結回顧

今天我們先簡單了解一下機器學習十大算法中的前三個,對于政策産品經理來說,知道其算法原理邏輯思考和應用場景是非常有必要的,政策産品在解決業務場景時候需要抽象化分類思考具體的問題,對症下藥看碟夾菜,這樣才能實實在在提升自己解決問題的能力。

像是線性回歸,我們即用來做線性預測,比方說預測信用卡使用者的生命周期,通過收入、年齡以及居住小區等來給使用者評級;例如邏輯回歸,我們就用來預測推薦系統使用者的點選行為,通過使用者的畫像、線上/離線行為記錄來預測使用者是否會點選。了解了核心實質,其實就是工具場景的應用了。

本文由 @政策産品Arthur 原創釋出于人人都是産品經理,未經許可,禁止轉載

題圖來自 Unsplash,基于 CC0 協定

該文觀點僅代表作者本人,人人都是産品經理平台僅提供資訊存儲空間服務。

繼續閱讀