以什么姿勢(shì)進(jìn)入DataMining會(huì)少走彎路?
畫(huà)外音:看過(guò)身邊花1w+大洋報(bào)培訓(xùn)班,周末夜里堅(jiān)持學(xué)習(xí)的同學(xué);面過(guò)碩士、博士甚至留學(xué)交換生,但結(jié)果總不盡如人意;現(xiàn)如今堪比前端一樣渾濁的算法領(lǐng)域,讓人擔(dān)憂。
承認(rèn)一點(diǎn),每個(gè)人都在進(jìn)步,每個(gè)人都走過(guò)彎路,曾幾某時(shí),自己也一腔熱血的寫(xiě)過(guò)一篇文章,后來(lái)分享了出來(lái) “神愛(ài)眾人,于是帶來(lái)Python” 。目前來(lái)看,那篇文章寫(xiě)得并不好,感興趣的可以去看看。
前不久,給公司同事做算法培訓(xùn)時(shí)候,說(shuō)了自己在算法領(lǐng)域的四點(diǎn)信仰,可以和看官一起分享:
- 信仰1:不以具體業(yè)務(wù)場(chǎng)景出發(fā),不考慮大數(shù)據(jù)并發(fā)實(shí)現(xiàn)的數(shù)據(jù)挖掘,都在耍流氓;
 - 信仰2:知其然,曉其所以然,萬(wàn)變不離其宗,必定變化莫測(cè),這正是算法魅力;
 - 信仰3:在DataMining領(lǐng)域,不做兩種人。一種是工具人,一種是研究者;
 - 信仰4:擁有健康、豐滿的數(shù)據(jù),業(yè)務(wù)場(chǎng)景建模已經(jīng)成功90%以上了;
 
余下的內(nèi)容,也將對(duì)上面四點(diǎn)分別做闡述,附帶案例說(shuō)明:
學(xué)會(huì)考慮業(yè)務(wù)場(chǎng)景建模,多思考大數(shù)據(jù)并發(fā)下的實(shí)現(xiàn)
案例1:一些網(wǎng)絡(luò)授課,每當(dāng)提起分類算法,最常用的典型二分類是男性和女性判別?
a.普遍的講解流程,介紹各種分類算法,DT、LR、NB和SVM等等;
b.接下來(lái),考慮用戶一些基礎(chǔ)的網(wǎng)站行為數(shù)據(jù),平均訪問(wèn)時(shí)長(zhǎng)、nick、瀏覽page、每日pv等等;
c.***,帶入數(shù)據(jù),套用模型,個(gè)別還會(huì)考慮清洗數(shù)據(jù),一切就Over;
一堂簡(jiǎn)單網(wǎng)絡(luò)授課,也許不能面面俱到,
但也絕對(duì)不能錯(cuò)誤的引導(dǎo)DM(數(shù)據(jù)挖掘)的核心要領(lǐng)。
比如:
讓學(xué)習(xí)者認(rèn)為算法是整個(gè)數(shù)據(jù)挖掘的核心?數(shù)據(jù)挖掘就是隨便找到數(shù)據(jù)套用模型,甚至工具包就OK了?
很多很多不恰當(dāng)?shù)乃枷牍噍敚亲尙F(xiàn)如今算法行業(yè)魚(yú)龍混雜,我也不是批判者,也不是熬雞湯人。我會(huì)這樣簡(jiǎn)單去介紹,二分類場(chǎng)景下的男性和女性判別:
Step1:Where 在哪個(gè)行業(yè)下的用戶性別判斷的場(chǎng)景需求?(比如:電商行業(yè))
Step2:Why 需要去分析用戶性別?(現(xiàn)如今,在資金有限的情況下[廣告費(fèi),站外流量和短信等等],精準(zhǔn)化營(yíng)銷的需求越來(lái)越強(qiáng)烈,同時(shí)用戶體驗(yàn)也會(huì)是至關(guān)重要,如何做到千人千面?如何提高整個(gè)平臺(tái),或者商家店鋪的成交轉(zhuǎn)化率、用戶回購(gòu)率和用戶粘度?甚至如何給每個(gè)用戶展示他所想看到的寶貝詳情頁(yè)?這些的這些,都是需要對(duì)用戶,乃至店鋪、商品和品牌進(jìn)行畫(huà)像,構(gòu)建標(biāo)簽體系,其中就包括用戶性別!)
Step3:What 如何去分析用戶性別?(在數(shù)據(jù)挖掘中,特征選取不當(dāng),模型構(gòu)建不當(dāng),都會(huì)容易引起[欠擬合]和[過(guò)擬合],因此在電商行業(yè)的用戶性別分析,首先明確一個(gè)概念區(qū)別(用戶網(wǎng)站性別和用戶線下性別),顧名思義,一個(gè)是用戶真實(shí)性別,一個(gè)是用戶在網(wǎng)站的行為性別,而真正對(duì)我們有意義的,當(dāng)然是后者。因此,在考慮用戶性別分析特征時(shí),核心要素是考慮用戶在平臺(tái)購(gòu)買(mǎi)過(guò)的類目行為(每款商品在設(shè)計(jì)之初,都會(huì)明確目標(biāo)群體)。
但是,畢竟會(huì)存在很多用戶是新用戶,這也正是模型的冷啟動(dòng)問(wèn)題。如果你認(rèn)為算法是最厲害的,到這里,你會(huì)無(wú)能為力;但如果你夠了解業(yè)務(wù),了解數(shù)據(jù),你會(huì)觀察到用戶的收貨姓名(但,注意,經(jīng)驗(yàn)表明,每一個(gè)電商購(gòu)物用戶,都可能會(huì)存在多個(gè)收貨姓名 ? 甚至存在非姓名的收貨姓名?剩下深入的細(xì)節(jié),需要建模之處進(jìn)行合理把控的)
Step4:When 什么時(shí)候去分析用戶?(通過(guò)上面的分析,想必已經(jīng)夠清楚了,模型構(gòu)建一定要場(chǎng)景化,也必然場(chǎng)景細(xì)分,也有就用戶細(xì)分!這里主要分三類,a.新用戶,b.購(gòu)買(mǎi)行為數(shù)在一定范圍內(nèi)?c.高頻購(gòu)買(mǎi)行為用戶?
Step5:How 去分析用戶性別?(整個(gè)二分類場(chǎng)景,模型被我放在***,希望學(xué)習(xí)數(shù)據(jù)挖掘的同學(xué),對(duì)于業(yè)務(wù)和算法的分量,要在心目中有分寸。這里會(huì)考慮冷啟動(dòng)模型、分類算法(比如樸素貝葉斯)和符號(hào)模型的組合。這里灌輸一個(gè)思想:模型 != 單算法,而是由多算法+一系列規(guī)則邏輯組合而成)
[總結(jié)]:一堂課程,還是花了很多培訓(xùn)費(fèi),即使不能闡述太多,但我想,如果通過(guò)上述方式,會(huì)不會(huì)更恰當(dāng)呢?
案例2:很多學(xué)者不考慮大數(shù)據(jù)并發(fā)的實(shí)現(xiàn),玩習(xí)慣性的單機(jī)版時(shí)間久了,很難走出這道坎。比如很多人用協(xié)同過(guò)濾,考慮過(guò)大數(shù)據(jù)量下大矩陣相乘的實(shí)現(xiàn)?
知其然,曉其所以然,萬(wàn)變不離其宗,必定變化莫測(cè):
案例3:很多使用算法,甚至數(shù)據(jù)清洗方式的同學(xué),更多是將知道的方法組合在一起,認(rèn)為這就是數(shù)據(jù)挖掘?
我想,這也許還是。
網(wǎng)絡(luò)課程給學(xué)習(xí)者帶來(lái)的詬病吧!
因?yàn)檎n程上已經(jīng)千篇一律的講述了數(shù)據(jù)挖掘的流程體系,所以學(xué)習(xí)者都會(huì)這樣做:
a.業(yè)務(wù)場(chǎng)景需求出現(xiàn):不假思索就采取能想到的特征變量;
b.不考慮數(shù)據(jù)清洗,不考慮歸一化,無(wú)量綱化處理,甚至異常和缺失值,就直接進(jìn)入模型;
c.不了解具體某一個(gè)算法的原理性,一味的用各種工具包,甚至扯上了Spark,R,Mahout 和python等等,輸入數(shù)據(jù)就OK了;
……很多很多,畢竟我不是批判者,我只是希望大家能夠做一件正確的事,再正確做好這件事!
如果換做我,我會(huì)這樣思考!
Step1:業(yè)務(wù)需求出現(xiàn)時(shí),多向?qū)I(yè)運(yùn)營(yíng)人員了解業(yè)務(wù)背景,結(jié)合自己理解,確定初步的特征變量,觀察數(shù)據(jù)分布;
Step2:考慮異常值和缺失值處理(這些都是觀察數(shù)據(jù)找到的思路),甚至結(jié)合數(shù)據(jù)分布,采取合適的無(wú)量綱化處理方式, 甚至一定程度上降維;
Step3:結(jié)合業(yè)務(wù)場(chǎng)景建模,用戶群體細(xì)分,確定模型選擇,以及所選算法,比如NB(樸素貝葉斯)。
Step4:需要深入了解樸素貝葉斯的原理,知道優(yōu)勢(shì)和不足,甚至優(yōu)化方向(比如:取Log、加平滑曲線等)
[總結(jié)]這里只是一個(gè)大概的思路,如果課堂時(shí)間允許情況下,用具體二分類(性別判別)的案例分析流程,這樣學(xué)生能夠領(lǐng)悟到更透徹。而不是一味的就那幾步數(shù)據(jù)挖掘步驟!
在DataMining領(lǐng)域,不做兩種人。一種是工具人,一種是研究者:
做數(shù)據(jù)挖掘,如果真正熱愛(ài)這個(gè)行業(yè),并希望落實(shí)想法,不推薦大家做以上兩類人,工具人和研究者。
[工具人]:面試過(guò)很多人,(這里談離線批處理)基本都是Python(很多面試者被豆瓣電影評(píng)分的案例害得不淺啊!),很多一味追潮流,也整一個(gè)Spark來(lái)調(diào)包,認(rèn)為就是懂?dāng)?shù)據(jù)挖掘了,甚至Mahout和R等等;
PS:我曾經(jīng)反問(wèn)一位面試者,如果讓你招人,你會(huì)愿意選擇,只會(huì)用包,缺乏思考怎么去用?為什么這樣用?甚至如何改進(jìn)和組合的人? 顯而易見(jiàn),面試者的答案是不會(huì)招這樣的人!
我這里不是批判工具如何不好,曾經(jīng)大學(xué),我也只是會(huì)用Matlab、Spss,甚至Lingo。畢業(yè)初期,也只是會(huì)用Python和R等。我主要說(shuō)的是,優(yōu)秀的模型,不單單是某一個(gè)算法能夠解決的,其中還包括很多組合算法和邏輯規(guī)則。單獨(dú)的使用工具,結(jié)合業(yè)務(wù)的個(gè)性化需求會(huì)得不到很好滿足,甚至如果讓你調(diào)優(yōu)算法,一方面你缺乏算法原理的理解,另一方面,你修改源碼的也會(huì)很費(fèi)腦、費(fèi)神啊!
[總結(jié)]:技術(shù)沒(méi)什么吸引人的,它的魅力在于服務(wù)業(yè)務(wù),通過(guò)業(yè)務(wù)發(fā)展來(lái)驅(qū)動(dòng)技術(shù)提高。這里推薦MapReduce!
[研究者]這類人,不過(guò)多討論,畢竟這個(gè)社會(huì)是需要這樣一類人存在的,我也很佩服他們。 我前面說(shuō)的前提是,如果真正熱愛(ài)大數(shù)據(jù)下的數(shù)據(jù)挖掘,并落實(shí)想法,還是直接作為一個(gè)實(shí)踐者吧!
擁有健康、豐滿的數(shù)據(jù),業(yè)務(wù)場(chǎng)景建模已經(jīng)成功90%以上了
越到***,闡述的理由會(huì)更少。因?yàn)?,該說(shuō)的都已經(jīng)說(shuō)了!只想勸各位數(shù)據(jù)挖掘愛(ài)好者、實(shí)踐者或工作者.好的模型,不是用了如此NB的算法模型,而是優(yōu)秀的泛化能力,而具備泛化能力的模型,缺乏良好的數(shù)據(jù)源,會(huì)是一棵長(zhǎng)不大的樹(shù)苗的;
Google的阿法狗如此厲害,和它完備、真實(shí)和健康的數(shù)據(jù)源密不可分的!















 
 
 





 
 
 
 