和上一篇一樣,我們不講各個(gè)算法的數(shù)學(xué)原理和編程方式,作為給PM看的文章,我將各個(gè)算法原理講解清楚,以及算法的應(yīng)用的場(chǎng)景、優(yōu)點(diǎn)缺點(diǎn)、注意事項(xiàng)。
以下是數(shù)據(jù)與算法相愛相殺的第三篇,常見的數(shù)據(jù)分類算法。
數(shù)據(jù)分類在業(yè)務(wù)中應(yīng)用無處不在,如果我們要開展多元化的服務(wù)、差異化的營銷,就需要對(duì)用戶群體進(jìn)行分類,比如:通過對(duì)用戶收入的分類,我們找到高凈值人群,我們可以直接向他們推薦我們的產(chǎn)品或者VIP服務(wù)。
如果我們還有年齡的數(shù)據(jù),我們可以向20-50歲之間的高凈值人群推薦我們職場(chǎng)的禮包,沿著這樣的路徑往前走,我們發(fā)現(xiàn)我們可以將更多維度的數(shù)據(jù)加入其中,我們的劃分的群體更加具體,我們對(duì)他們可以采取的措施也可以更加切合、得當(dāng)。
如果數(shù)據(jù)量達(dá)到我們?nèi)怏w難以cover的地步,基于大數(shù)據(jù)量的分類算法就有了用武之地了。數(shù)據(jù)分類是一種典型的監(jiān)督學(xué)習(xí),需要我們給出分類結(jié)果,然后建立起輸入和輸出之間的模型。
和上一篇一樣,我們不講各個(gè)算法的數(shù)學(xué)原理和編程方式,作為給PM看的文章,我將各個(gè)算法原理講解清楚,以及算法的應(yīng)用的場(chǎng)景、優(yōu)點(diǎn)缺點(diǎn)、注意事項(xiàng)。各位如果想進(jìn)一步了解可以留言,或者網(wǎng)上找些材料。
數(shù)據(jù)分類可以用到算法比較多樣,比如:決策樹、貝葉斯網(wǎng)絡(luò)、神經(jīng)網(wǎng)絡(luò)、遺傳算法等,不同的場(chǎng)景下不同的算法有不同的效用。但是分析的過程無外乎訓(xùn)練過程、識(shí)別過程兩種。
- 訓(xùn)練過程:是從數(shù)據(jù)庫中找到訓(xùn)練集,然后從訓(xùn)練集中進(jìn)行特征選取,對(duì)分類模型進(jìn)行訓(xùn)練,然后形成分類器。
- 識(shí)別過程:是先將待識(shí)別的新樣本進(jìn)行特征選取,然后利用分類器進(jìn)行分類識(shí)別。
基于貝葉斯的數(shù)據(jù)分類
貝葉斯公式想必大家都比較了解,兩百年前英國數(shù)學(xué)家貝葉斯的成果,如今機(jī)器學(xué)習(xí)里很多都是將貝葉斯公式作為基礎(chǔ)原理。
樸素的貝葉斯就是揭示了,假如事件A發(fā)生的概率已知,事件B發(fā)生的概率已知,事件B在事件A發(fā)生的情況下發(fā)生的概率已知,那我們就知道事件A在事件B發(fā)生的情況下概率是多少。
公式如下:
P(A|B)=P(B|A) *P(A) / P(B)
在實(shí)際應(yīng)用過程中,A一般是我們想要預(yù)測(cè)的概率,A包含的情況我們是清楚地,比如:預(yù)測(cè)游戲中預(yù)測(cè)是否有辱罵別人(有 或 無),B即是某一個(gè)辱罵詞匯的出現(xiàn)的概率,假如給我們一定的語料,我們就可以得出在某名玩家打出某個(gè)詞匯的時(shí)候,他被判定為辱罵的概率,如果我們?cè)O(shè)定一個(gè)閾值,我們就可以對(duì)其發(fā)出辱罵警告了。
通常我們進(jìn)行一個(gè)企業(yè)級(jí)的分類流程需要經(jīng)過數(shù)據(jù)準(zhǔn)備、分類器訓(xùn)練、分類器評(píng)估、分類識(shí)別。
- 數(shù)據(jù)準(zhǔn)備:一般是語料庫或者其他原材料的準(zhǔn)備,這個(gè)階段主要需要人工對(duì)語料進(jìn)行分類,分類的清楚,合理對(duì)分類器的質(zhì)量至關(guān)重要。
- 分類器訓(xùn)練:這個(gè)階段有計(jì)算機(jī)完成,主要是計(jì)算各個(gè)屬性(事件包含的集),結(jié)果的概率,以及最終該屬性下某個(gè)結(jié)果的概率。
- 分類器評(píng)估:我們一般留出語料庫中20%的數(shù)據(jù)量做分類器的評(píng)估,常用的評(píng)估指標(biāo)包括正確率、精準(zhǔn)度、召回率、錯(cuò)誤率,通過人工去驗(yàn)證判斷是否準(zhǔn)確,并進(jìn)行調(diào)整。
- 分類識(shí)別:以上的過程完成后,這個(gè)分類器就可以開展實(shí)際的工作了。
二、基于adaboost的數(shù)據(jù)分類
adaboost是一種組合型算法,它會(huì)先產(chǎn)生一定數(shù)量的弱分類,然后將弱分類按權(quán)重組合成強(qiáng)分類,即最終的分類算法。adaboost算法可以用來處理分類問題,回歸問題等,分類方法比較精確的算法,是監(jiān)督學(xué)習(xí)的一種。
它的基本原理是:先對(duì)初始數(shù)據(jù)進(jìn)行訓(xùn)練,找到閾值,生成模型(弱分類器),然后對(duì)分類對(duì)的降低其權(quán)重,分類錯(cuò)誤的提升其權(quán)重。然后再次訓(xùn)練模型,選定權(quán)重相加最小的,直到達(dá)到預(yù)定值。
adaboost在人臉識(shí)別、表情識(shí)別等場(chǎng)景中有較高的分析準(zhǔn)確性,其過程較為復(fù)雜,這里不展開講,有想進(jìn)一步了解的可以網(wǎng)上查閱資料。
三、基于K鄰近算法的分類器
k鄰近算法也叫KNN(k-Nearest Neighbor)是一種在互聯(lián)網(wǎng)領(lǐng)域常用到的,比較簡答的一種算法,在我們??吹降膬?nèi)容推薦、歌單推薦、購物推薦中多數(shù)都用到了該算法。
它的核心思想是:將每一名用戶(其具有大量的信息:身高、體重、興趣、愛好、購物習(xí)慣等,每個(gè)信息都有值)作為一個(gè)樣本點(diǎn)(多維空間的一個(gè)點(diǎn)),計(jì)算用戶兩兩之間的距離,并根據(jù)距離的遠(yuǎn)近設(shè)定權(quán)值,然后評(píng)估距離某名用戶最近的(人工設(shè)置閾值)幾名用戶的行為(購買某件商品、聽了某首歌、看了某個(gè)電影、叫了某個(gè)外賣)并結(jié)合權(quán)重,向該名用戶推薦他有可能想要的產(chǎn)品或服務(wù)。
其中用戶與用戶距離的計(jì)算我們一般用歐式記錄或者余弦相似性測(cè)算,同時(shí)KNN也存在兩個(gè)問題,一個(gè)是由于要計(jì)算任意兩個(gè)樣本點(diǎn)之間的距離,技術(shù)算比較大,每新增一個(gè)樣本點(diǎn)都會(huì)帶來一輪計(jì)算。
另外一個(gè)是當(dāng)一個(gè)沒有數(shù)據(jù)的樣本加入時(shí),無法很短的時(shí)間內(nèi)分析出其可能的屬性。
四、基于svm的數(shù)據(jù)分類
svm(support vector machine)也是一種線性的分類器,比較常用。
他的基本原理是:建立一個(gè)最優(yōu)決策超平面(多維空間的扭曲平面,即訓(xùn)練得到的模型),保持超平面分開的兩個(gè)樣本距離最大(模型訓(xùn)練過程即是找到距離最大的兩個(gè)點(diǎn)穿過)。
對(duì)于一個(gè)多維的樣本集,算法隨機(jī)產(chǎn)生一個(gè)超平面并不斷移動(dòng),對(duì)樣本進(jìn)行分類,直到訓(xùn)練樣本中屬于不同類別的樣本點(diǎn)正好位于該超平面的兩側(cè),滿足該條件的超平面可能有很多個(gè),多以綏中得到這樣一個(gè)超平面,使得超平面兩側(cè)的空白區(qū)域最大化,從而實(shí)現(xiàn)對(duì)線性可分樣本的最優(yōu)分法。
如下圖:
除了以上四種常用的分類算法,都是比較常見的分類方法。 除了以上幾種常用的分類算法之外還有其演變出來的算法,或其他實(shí)現(xiàn)方式的算法,可以這么說沒有萬全的算法,只有最合適的算法。
以上,歡迎交流,歡迎拍磚。 以上,歡迎交流,歡迎拍磚。
相關(guān)閱讀
數(shù)據(jù)和算法的相愛相殺(一):獲取數(shù)據(jù)要注意什么?
數(shù)據(jù)和算法的相愛相殺(二):常見的聚類算法
本文由 @沒空兒 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自 Unsplash ,基于 CC0 協(xié)議
愛盈利-運(yùn)營小咖秀(www.jza6.com) 始終堅(jiān)持研究分享移動(dòng)互聯(lián)網(wǎng)App運(yùn)營推廣經(jīng)驗(yàn)、策略、全案、渠道等純干貨知識(shí)內(nèi)容;是廣大App運(yùn)營從業(yè)者的知識(shí)啟蒙、成長指導(dǎo)、進(jìn)階學(xué)習(xí)的集聚平臺(tái);
想了解更多移動(dòng)互聯(lián)網(wǎng)干貨知識(shí),請(qǐng)關(guān)注微信公眾號(hào)運(yùn)營小咖秀(ID: yunyingshow)