策略產(chǎn)品經(jīng)理深入淺出了解機器學習算法原理(上篇)
機器學習簡單來說就是機器從歷史過去的數(shù)據(jù)、知識中總結出規(guī)律經(jīng)驗,用于提升系統(tǒng)的度量能力。本文作者對十大機器學習算法的前三個進行了分析介紹,一起來看一下吧。
今天我們來講講關于基礎的機器學習算法與對應的適用場景,幫助策略產(chǎn)品建立起來最為基礎的“工具方案-問題”的認知思路,幫助大家更好理解十大機器學習算法的思想和理解對應的應用場景。
了解機器學習另一個重要的點是,在和算法工程師溝通過的時候,“知其然更知其所以然”,而不能做“黑盒產(chǎn)品經(jīng)理”,這種甚至都不能被稱之為策略產(chǎn)品,無法為自己的業(yè)務指標和業(yè)務方向負責。
那么,接下來我們圍繞以下幾個部分來給大家介紹一下策略產(chǎn)品必知的十大機器學習算法,幫助大家做簡單入門,感興趣還是建議大家閱讀專業(yè)的機器學習書籍,如果有幫助到大家,辛苦大家?guī)兔c個喜歡、收藏以及評論一下。
一、機器學習的分類
1. 定義本質
首先,我們在介紹機器學習的分類之前,我們需要了解清楚機器學習的本質是什么,簡單來說就是機器從歷史過去的數(shù)據(jù)、知識中總結出來規(guī)律經(jīng)驗用于提升系統(tǒng)的度量能力。舉個栗子,我們將“好西瓜”開瓜的經(jīng)驗以【數(shù)據(jù)】形式傳遞給模型(考慮西瓜蒂、花紋以及敲擊的實心聲音)給到模型,在面對新瓜,模型就會給我們判定是否為“好瓜”的結論,所以說機器學習就是一門研究“學習算法”的學問。
2. 機器學習分類及對應關系
機器學習的算法大致可以分為三類:監(jiān)督學習算法、無監(jiān)督學習算法以及強化學習算法。
1)監(jiān)督學習算法 – Supervised Algorithms
簡單來說在監(jiān)督學習訓練過程中,可以由訓練數(shù)據(jù)集學到或建立一個模式(函數(shù) / learning model),并依此模式推測新的實例。
在監(jiān)督學習當中,需要給算法去提供一些解決方案需要的訓練數(shù)據(jù),成為所謂的標簽和標記;簡單說就是要有自變量(X)和因變量(Y),同時可用來分類和回歸。那么常見的監(jiān)督學習算法有:K鄰近、線性回歸、邏輯回歸、支持向量機(SVM)、決策樹和隨機森林、神經(jīng)網(wǎng)絡。
2)無監(jiān)督學習算法 – Unsupervised Algorithms
無監(jiān)督學習的訓練數(shù)據(jù)都是不需要經(jīng)標記,算法會在沒有指導的情況下自動學習;訓練時候的數(shù)據(jù)是只有自變量但是沒有對應的因變量。
常見的無監(jiān)督學習:聚類算法(K-meansK均值、最大期望算法)、關聯(lián)規(guī)則學習(Apriori、Eclat)等;例如京東電商平臺根據(jù)C端用戶購物頻次、平均客單價、購物的筆單數(shù)以及年均消費力等,將這些用戶自動“聚類”為幾個不同類別,然后在進行人工標記。
3)強化學習算法 – Reinforcement Algorithms
主要基于決策進行訓練,算法根據(jù)輸出結果(決策)的成功或錯誤來訓練自己,以負面回報的形式獲得懲罰。它必須自行學習什么是最好的策略,從而隨著時間推移獲得最大的回報。
例如我們熟悉的“阿爾法狗Alpha Go”就是在和優(yōu)秀棋手中不斷對弈,通過輸贏的對弈起棋局來訓練自己如何走下一步是勝率最大的走法,有一部叫做疑犯追蹤的美劇也是圍繞這個視角來描述的,這也是離我們所謂的人工智能最近的一種算法類型。
二、基本的機器學習算法分類
1. 線性回歸-Linear Regression
首先,理解一個概念,回歸-Regression和我平時理解的回歸-return的概念不一樣,這里回歸指代的是“推導”的意思?;貧w算法是相對于分類算法而存在的,和我們想要預測的因變量y的類型相關。
- 如果y是個分類離散變量,例如預測性別男/女,預測用戶在推薦位是否點擊,預測人外套的顏色紅/綠/黃/黑…,那么我們就需要用分類模型的算法訓練數(shù)據(jù)并作出對應的預測;
- 如果y是個連續(xù)性變量,例如京東購物用戶的年齡(25、40、60)、購物用戶的年收入水平(30萬/50萬/100萬/1000萬…),用戶逛推薦位feeds流的停留時長(5s/10s/15s…)這種的我們就需要用到回歸模型的算法去做訓練數(shù)據(jù)的預測;
但是,分類問題其實和回歸問題是可以相互轉化的,例如上面我們說的在推薦位feeds發(fā)生點擊行為,如果變成預測C端用戶的點擊概率,從10%,11%到100%,轉化為大于50%則為預測點擊,小于50%則為不點擊,我們就從回歸模型的問題變成了一個分類問題。
線性回歸算是機器學習入門型算法,可以用一個簡單的二元一次方程來做概述說明,由下圖我們可以得到一個y = a+bx 的二元一次方程,給定a、b兩個參數(shù)的時候,畫在坐標軸最終是一條直線;可以看到圖中有許多的散點圖,我們需要通過一條直線去盡可能的擬合途中的數(shù)據(jù)點,這就叫一元線性回歸。
但是,我們也發(fā)現(xiàn)上面的所有散點圖并不能被一條一元二次方程穿過,就和現(xiàn)實世界的數(shù)據(jù)一樣,我們只能盡可能的找到規(guī)律,找到一條最合適的直線;所以,不可避免地發(fā)現(xiàn)預測理論值Predicted Value和實際值之間會存在差別,這個也就是我們所說的“誤差”,所以我們往往在一元二次回歸方程里會帶上一個尾巴來來進行誤差c,也就是y = a+ bx +c。
因為數(shù)據(jù)并不是真的落在一條直線上,而是分布再周圍,所以我們需要找到一個合適的a和b,來找到一條“合適的曲線”,那么為了求得a和b,我們就需要用到損失函數(shù)的概念。
誤差說白了就是真實值和預測值之間的差值,也可以理解為距離;我們把上圖當中每一個點單獨的誤差值求出來,計算出對應的值:
再把每一個點做平方后的累加合,這樣就可以完全的量化出來你和曲線上直線對應的點和實際值之間的誤差距離,用公式表示如下:
這個公式是殘差平方和-SSE(Sum of Squares for Error),在機器學習中它是回歸問題當中使用的損失函數(shù),用于衡量回歸模型誤差的函數(shù),也就是我們要的“直線”的評價擬合成都的標準標準。這個函數(shù)的值越小,說明直線越能擬合我們的數(shù)據(jù)。最后如何求的最佳參數(shù)a和b,我們一般需要使用梯度下降法或者最小二乘法求得,后續(xù)展開分享,就不再這里贅述了。
2. 邏輯回歸-Logistic Regression
前面給大家介紹了邏輯回歸常常用來解決分類問題,業(yè)界常用來做搜索結果頁/推薦信息流當中用戶是否點擊、金融系統(tǒng)當中判定是否違約客戶等等。
記住一句關鍵的話:分類本質上是用邏輯回歸當中的目的和結果,其中間過程還是回歸性質。為什么這么說,舉個例子,京東推薦系統(tǒng)當中會把用戶在推薦位對商品點擊的可能性“概率”歸一到(0,1),然后給可能性在加一個閾值0.5,比方說點擊預測的可能性是0.5以上,預測判定為會被點擊,小于0.6則預測為不會被點擊。
由此可見,所有實際點值都落在了y = 1 和y = 0上了(縱坐標非0即1),如果用一個單一的一元二次線性方程擬合效果會比較差,只有少數(shù)的點才被落在了直線上。
實際上,邏輯回歸一般會采用sigmoid的函數(shù)去做擬合,sigmoid函數(shù)在本身是一個s型曲線函數(shù),在取值范圍之間(-∞,+∞)會在y = 0 和y = 1之間會有平滑過渡,用來表示預測的概念,也就是事件發(fā)生的“可能性”。
多元一次方程一般的形式為可以表現(xiàn)為如下圖,一般可以簡寫成為矩陣形式Y = Xβ:
將特征加權求和Xβ帶入,領所有預測為正例得概率P(Y = 1),例如在京東推薦系統(tǒng)當中,預測這一次行為時被點擊,那么邏輯回歸的形式就變成了如下的條件公式預測:
整個邏輯回歸的函數(shù)就構造完成了,下面就是通過梯度下降法來求解β獲得最佳位置參數(shù)去構建最佳函數(shù)去擬合所有的點,關于梯度下降法我們單獨起一篇文章來進行介紹;
3. K鄰近算法KNN-KNearestNeighbor
KNN是比較入門級的機器學習分類算法,整體思路比較的簡單,核心就是的思維就是中國古代中的“近朱者赤近墨者黑”的思想。其中KNN當中的K指代的就是最近的K個點的個數(shù)來預測位置的數(shù)據(jù)點,其中選擇K值就是預測精準度的一個關鍵性質的因素。
KNN做的就是選出距離目標點Predicted點位距離最近的k個點,看這k個點的大多數(shù)顏色是什么形狀。這里我們可以通過歐氏距離來度量和計算預測Predicted點位和K個點之間的距離。
- case 1:當我們把K設為1的時候,可以看出來,預測點位距離黃色的“+”最近,那么我們在判定點的類型的時候會把預測點位判定成為“+”
- case 2:當我們把K設為5的時候,可以看出來距離最近的點位有1個“+”,1個“O”,還有3個“△”,那么我們召會將預測Predict的點位會判定成為“△”
結論:由此我們可以知道K的選擇不同,對于得到的結果大相徑庭,所以選擇K值也就成為了KNN算法的關鍵。
KNN的分類邊界是非線性的,K越小越容易過擬合,我們看到到K = 1的時候,這個時候只會根據(jù)最近的單個點進行預測,如果最近的一個點是相反的噪點,這個時候就預測出錯,這個時候無形之中增加了計算的復雜度,魯棒穩(wěn)健性比較差。但是如果K取得比較大(例如K = 100)的時候,這個時候又會欠擬合,模型計算非常簡單,并且分類的邊界也會比較的平滑。
所以,我們找到合適的K的過程,就是一個不斷的調(diào)參過程,比較經(jīng)典合適的方法就是N折交叉驗證法,下圖展示的是5折交叉驗證,講一直到的樣本集合分為5各等分,其中四份作為訓練集,1份作為驗證集,設定 參數(shù),做出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得到平均誤差。
做完交叉驗證之后,我們就設置超參數(shù)從k=1開始嘗試,計算K=1時的平均誤差值,每次K增加2,最終能選到產(chǎn)生最小誤差值的K(因為隨著K變大,誤差值會先變小后變大嘛)。
這里有個主意的點,我們一般都對K會取奇數(shù)而不取偶數(shù),因為偶數(shù)有一定的可能會導致點打平(例如有4個點其中2個黃色“+”,2個“O”),這樣就無法判斷Predict 點位究竟是屬于黃色“+”,還是“O”,所以盡量避免這種問題。
最后還要注意的點就是點位需要做“標準化”,如果不做標準化,可能會因為點位會受到點位影響嚴重,一般會采用極差法消除兩級或者是標準差標準法。
KNN本身是沒有訓練過程的,也沒有模型的參數(shù),所以再驗證過程中是和已知的樣本點的距離來學習。
KNN的優(yōu)點就在于原理簡單也比較號實現(xiàn),對于非線性規(guī)則分類效果是要更加優(yōu)于先行分類器;缺點也十分明顯:需要存儲全部的數(shù)據(jù)集、而且需要計算每一個預測Predict和已知點的距離比較耗時,并且不太適合于特征空間維度比較高的場景類型。
三、小結回顧
今天我們先簡單了解一下機器學習十大算法中的前三個,對于策略產(chǎn)品經(jīng)理來說,知道其算法原理邏輯思考和應用場景是非常有必要的,策略產(chǎn)品在解決業(yè)務場景時候需要抽象化分類思考具體的問題,對癥下藥看碟夾菜,這樣才能實實在在提升自己解決問題的能力。
像是線性回歸,我們即用來做線性預測,比方說預測信用卡用戶的生命周期,通過收入、年齡以及居住小區(qū)等來給用戶評級;例如邏輯回歸,我們就用來預測推薦系統(tǒng)用戶的點擊行為,通過用戶的畫像、在線/離線行為記錄來預測用戶是否會點擊。了解了內(nèi)核實質,其實就是工具場景的應用了。
本文由 @策略產(chǎn)品Arthur 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉載
題圖來自 Unsplash,基于 CC0 協(xié)議
該文觀點僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務。
- 目前還沒評論,等你發(fā)揮!