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