為什么數(shù)據(jù)分析師需要懂算法?
編輯導語:數(shù)據(jù)分析師,乍一聽好像只需要與數(shù)據(jù)打交道,收集分析數(shù)據(jù)并且做出相應地決策判斷。但是,真的是這樣子的嗎?數(shù)據(jù)分析師其實也需要學習算法知識,并且在實際的工作中去做大量的驗證。在本篇文章中,作者就帶我們?nèi)ソ鈹?shù)據(jù)分析師與算法的前世今生。
通過和一些朋友交流,發(fā)現(xiàn)目前一些數(shù)據(jù)分析師,其實不是很清楚機器學習可以如何應用于業(yè)務,也不清楚自己到底要不要去學習算法知識。實際業(yè)務中一些復雜算法場景例如商品推薦、內(nèi)容推薦、匹配策略等,其實都需要數(shù)據(jù)分析師做大量的探索驗證工作。
分析師前期可以為建模指導方向,中后期也為模型的優(yōu)化提供一些新的思路與數(shù)據(jù)洞察,此外用算法還可以大大提升分析效率與分析科學性。今天,就讓我們詳細的來了解一下數(shù)據(jù)分析師與算法的前世今生。
本篇目錄:
- 對算法的一些理解
- 哪些場景下需要用到機器學習算法
- 算法的產(chǎn)出物及形態(tài),如何應用于業(yè)務
- 為什么數(shù)據(jù)分析師需要會機器學習
- 數(shù)據(jù)分析師與算法工程師的職責差異
- 實際業(yè)務中如何分工配合可以效用最大化
- 數(shù)據(jù)分析師應該掌握的程度
一、對算法的一些理解
在講分析師與算法之前,先來理解一下什么是算法(Algorithm),專業(yè)術語在很多書籍、文章里面都有分別的定義,通俗一點理解,大致上可以認為算法是為了解決某個問題的固定化計算方法與步驟。
拆解一下上面這句話:
- 目的:為了解決某個/某類問題,需要在這之前了解到背后的業(yè)務背景、關聯(lián)場景;
- 方法:通過計算來實現(xiàn),也就意味著需要具備具體的、可量化的信息輸入,且可計算,而非不可執(zhí)行的概念體;
- 步驟:有先后順序,先做什么然后做什么最后做什么,每個過程之間還必須具備可行性,執(zhí)行次數(shù)也一定是有限的;
- 結論:是否能夠解決這個問題,效果如何,最終必須得有一個產(chǎn)出物。在算法之外,還有幾層擴展;
- 決策:根據(jù)一個或者多個結論進行判斷,這個過程是不是符合預期的,如何調(diào)整優(yōu)化,是否可直接應用于業(yè)務;
- 應用拓展:除了解決最初的那個問題外,還有哪些同質(zhì)類型的問題也可以得到解決,也就是場景的拓展。
具體的算法搭建過程就不說了,在不少工具書、專業(yè)書、案例書里面都有非常詳細的講解?;氐絾栴}上,什么場景下需要用到算法去解決問題。舉幾個生活里面的例子:
- 譬如說做菜:為了能吃的更好點,選擇一本合適的食譜來準備食材、輔料,根據(jù)步驟和技巧“小火燉、中火炸、大火炒”,“一炒、二燉、三燜、四涮”,起鍋裝盤;
- 譬如上學:從家門出發(fā),直走50米,第一個十字路口右轉(zhuǎn),繼續(xù)直行100米,到達公交站,乘402路車,5站后下車,沿人行道繼續(xù)行走200米,左轉(zhuǎn),再直行150米,最終到達校門。
這些都可以理解為算法,生活里面比比皆是,不過多數(shù)情況下成為了我們習慣的一種方式罷了。
二、哪些場景下需要用到機器學習算法
在很多場景下都需要用到機器學習算法,換一個角度,來說說我對應用場景的理解。本質(zhì)上說,我過去的一些項目里面通過算法解決的問題大致上可以分為這么幾類
1. 供需匹配的問題
量變產(chǎn)生質(zhì)變,過去的十年時間,無論是在B2C,還是B2B、S2B、B2G,我們?nèi)ソ⒂脩舢嬒褡鼍珳薁I銷、做好推薦系統(tǒng)實現(xiàn)千人千面、對用戶進行分層分類打標簽、給用戶的評價信息劃分情緒好壞等等,都是為了更好的去做供需關系管理匹配。
視頻個性化推薦是供需管理,商品個性化推薦是供需管理,網(wǎng)約車是供需管理,供需管理即“?誰可以找誰消費到一件相對比較合適的東西(內(nèi)容、物品、信息、線索、商機),在這個過程中還可能需要通過哪幾個誰才能打通彼此之間的聯(lián)系?!?/p>
衍生出的問題立馬就出現(xiàn)了,如何從千萬級甚至億級的商品里面去做匹配召回,如何從萬億級的會話內(nèi)容信息中定位線索,如何明確哪些人才是我們目標的特定人群,如何把相應的信息通過什么渠道push到最合適的人,如何去做到好的觸達,又如何去回收這些人收到信息之后的反饋效果。
如果只有幾千條數(shù)據(jù),一個團隊里面10來個人,每個人分個百來條逐一去確認,則不需通過分析也能實現(xiàn),耗費的只不過是人力上的一些時間投入。
所以日常對接需求過程中,接到一個需求時,一般會先進行資源匹配評估,這個事情能不能通過疊人力的方式解決,如果通過線下大概需要花多少人力成本,用一些小樣本數(shù)據(jù)的歸納總結能不能得出通用的規(guī)則。做調(diào)研然后去推行的成本有多少,產(chǎn)出有多少。
再之后才是通過算法方案去解決,投入的工程師要幾人月,設備資源性能上的要求,能夠持續(xù)多久,可以影響的層面,以及最后的產(chǎn)出估測。最后再綜合考慮,這個投入產(chǎn)出比的情況下,到底是通過小數(shù)據(jù)分析去形成規(guī)則,還是需要通過算法去挖掘特征,以及方案的可持續(xù)性。
大公司里面資源較豐富,往往這兩者會并行。從某種程度也就嚴格的區(qū)分了數(shù)據(jù)分析和數(shù)據(jù)算法間的職責邊界;而中小企業(yè)資源有限,可能造成分析即算法的現(xiàn)象。
我們發(fā)現(xiàn),供需匹配過程中涉及的算法,基本都是有監(jiān)督算法,不論是人群分類、商品召回、需求匹配,都可以通過過去的經(jīng)驗進行一個初步標簽建立,然后逐步去對劃分的準確性進行校驗和優(yōu)化。
值得一談的是,在供需的某些場景過程中會并存很多涉及物聯(lián)網(wǎng)的知識,譬如物流調(diào)度、配送匹配、路線優(yōu)化、倉庫建設等等供應鏈優(yōu)化方面的事情,這些場景下除了算法外,還需要去了解下運籌學的內(nèi)容。
2. 異常識別和診斷
異常檢測,在前幾年p2p還沒有暴雷的時候,金融領域里面遍地都是,主要的場景就是風控,風控的場景細分:
- 信用卡交易反欺詐:分類任務,GBDT算法 / XGBT算法+LR邏輯回歸;
- 信用卡申請反欺詐:分類任務,GBDT算法 / XGBT算法+LR邏輯回歸;
- 貸款申請反欺詐:分類任務,GBDT算法 / XGBT算法+LR邏輯回歸;
- 反洗錢:分類任務,GBDT算法 / XGBT算法+LR邏輯回歸。
金融領域涉及到風控的幾乎都是GBDT / XGBT+LR,因為在金融行業(yè)有一個非常特別的屬性:監(jiān)管。
對于算法結果必須有非常好的模型解釋,對于LR模型來說,這是天然的優(yōu)勢,特征可解釋,特征工程清晰,每個特征的貢獻度、相關程度也可以被統(tǒng)計出來。
換了其他深度學習的模型,從最終的模型效果上來看,roc/auc/ks的表現(xiàn)沒差,但是解釋性極差,也就造成了很多應用上的壁壘。換一個通俗點說法,你很高級,然而并不實用,華而不實。
3. 排序
排序之所以單拎出來,它的應用場景其實有一定的局限性,但是怎么做好排序,客觀、合理,卻是一個值得去考究的事情。常見的排序應用場景有熱點榜單、搜索排序、推薦排序等。
知乎的問題回答排序是一個經(jīng)典的排序應用場景,既要保證優(yōu)質(zhì)高贊內(nèi)容可以排在前面被用戶瀏覽,又要保證新增內(nèi)容有一定曝光量,同時需要綜合考慮話題熱度及社區(qū)調(diào)性等多重因素。
故需要將回答贊/踩數(shù)量、回答用戶該領域權威性、贊/踩用戶領域權威性、回答時間、回答爭議性、回答用戶的歷史畫像特征等綜合權重進行算法排序。
4.? 預測
數(shù)值預測與分類預測都屬于預測場景。銷售預測、股票預測、流量預測,這些都是常見的預測場景。11、12年的時候清一色的都會用arima,spss在手天下我有,沒有什么是時序不能解決的,到后面就變成xgboost、LightGBM了。
5. 知識圖譜
2012年的時候google推出了一個叫Knowledge Graph的產(chǎn)品,能夠直觀的看到詞和其背后知識的關系。
很多大公司都已經(jīng)在知識圖譜的建設上進行布局了,知識圖譜最早的應用是提升搜索引擎的能力,隨后在輔助智能問答、自然語言理解、大數(shù)據(jù)分析、推薦計算、物聯(lián)網(wǎng)設備互聯(lián)、可解釋性人工智能等多個方面展現(xiàn)出豐富的應用價值,這幾年推廣比較成功的應該是AI輔助司法進行案件判決。
- 信息檢索/搜索:搜索引擎中對實體信息的精準聚合和匹配、對關鍵詞的理解以及對搜索意圖的語義分析等;
- 自然語言理解:知識圖譜中的知識作為理解自然語言中實體和關系的背景信息;
- 問答系統(tǒng):匹配問答模式和知識圖譜中知識子圖之間的映射;
- 推薦系統(tǒng):將知識圖譜作為一種輔助信息集成到推薦系統(tǒng)中以提供更加精準的推薦選項,知識圖譜+推薦系統(tǒng);
- 電子商務:構建商品的知識圖譜用于精準匹配用戶的購買意愿和商品候選集,知識圖譜+推薦系統(tǒng);
- 金融風控:利用實體之間的關系分析金融活動的風險以提供在風險觸發(fā)后的補救措施(如反欺詐等);
- 公安刑偵:分析實體和實體之間的關系獲取案件線索等;
- 司法輔助:法律條文的結構化表示和查詢用于輔助案件的判決等;
- 教育醫(yī)療:提供可視化的知識表示,用于藥物分析、疾病診斷等;
- 社交類業(yè)務:社交類業(yè)務具備高度連接的特點,比如好友關系等,<用戶1,關注,用戶2>。
三、算法的產(chǎn)出物及形態(tài),如何應用于業(yè)務
我們最近常聽到的一個詞叫“大數(shù)據(jù)殺熟”,應該是算法在業(yè)務上非常常用的一種應用場景。通常來說,算法的產(chǎn)出物有兩種,第一種是算法產(chǎn)出的結果(分群、分類、預測值),第二種是算法產(chǎn)出的規(guī)則。
1. 產(chǎn)出結果
- 降維:無論是對數(shù)據(jù)的分類,還是對數(shù)值的預測,對業(yè)務應用都可以作為篩選對象,進一步縮小目標,找到清晰的劃分邊界。在一些臨界點上算法會減少人力決策成本,從諸多策略中選擇最優(yōu)去做嘗試;
- 精細化:把結果作為標簽,結合CRM、廣告系統(tǒng)、營銷系統(tǒng),幫助業(yè)務更便捷、更精準地獲取信息,強化用戶感知,制造新奇感引起用戶注意,設置規(guī)則以提升用戶使用黏性;
- 策略:降低成本、提效增益,算法本質(zhì)上解決的就是這兩件事情,算法產(chǎn)出結果可以有效的支撐策略制定,論證是或否的可行性。
2. 產(chǎn)出規(guī)則
很多時候我們往往只會關注到了結果本身,準確性、精確率、召回率怎么樣,卻忽略了算法產(chǎn)生的規(guī)則層應用。前面提到過的模型可解釋性,其實就是一種規(guī)則的具象化。
在關聯(lián)分析中,有提到過強相關、弱相關、不相關。作為一名業(yè)務,他可以說這個產(chǎn)出結果通過業(yè)務經(jīng)驗也能知道,而作為分析,則需要把所謂“經(jīng)驗”演繹為規(guī)則,這個規(guī)則就是通過數(shù)字串聯(lián)起來的。
于算法而言,在模型解釋時,也會碰到一些特征具備很強的規(guī)則,但往往容易只看數(shù)據(jù)結果,卻忽略了其在實際業(yè)務過程中的意義和因果關系,于是造成了“算法分析出的結果不如根據(jù)經(jīng)驗拍腦袋決策”的現(xiàn)象。
四、為什么數(shù)據(jù)分析師需要會機器學習
我們先明確一個概念,即數(shù)據(jù)分析,它既可以作為一個社會中職業(yè)人的附加技能存在,也可以作為一個社會中職業(yè)人的主干職業(yè)進行發(fā)展。
1. 多數(shù)情況下,我們僅在迎合這個世界的法則,卻并未去思考它為什么存在
在挖掘分析應用的項目中,算法是核心要素,大部分算法的實現(xiàn)原理,都會涉及一些高等數(shù)學知識。
數(shù)學本身非常抽象,學的快忘的快,自然而然算法對很多人來說具備某種神秘感。人類的好奇心和上進心,促進了人類的進化與生存,所以我要揭開那層神秘面紗去學習。
同樣人也會經(jīng)常高估自己的毅力及短期內(nèi)可取得成果,所以往往是:費勁周折投入大量時間搞明白幾個算法原理實現(xiàn)后,就再也沒有繼續(xù)堅持下去。此時可能走向一個極端,只要能使用第三方的算法庫在自己的電腦中成功運行并能輸出結果就可以,效果不好就再換一個算法嘗試。
2. 數(shù)據(jù)分析為了達成業(yè)務目標,可以使用算法來進行快速論證
分析師懂算法非常有必要,最近幾年,數(shù)據(jù)分析師的崗位職責中,或多或少會寫一些算法相關要求。
我的認知是,初級分析師不需要懂算法即可cover大部分的工作內(nèi)容。但是要想職業(yè)更上一層樓,增強分析的科學性嚴謹性和效率性,尤其是涉及算法策略驅(qū)動的業(yè)務類型中,分析師必須懂一些常用機器學習算法。
其實分析的重點還是聚焦在對目標問題的拆解、論證與實現(xiàn)上,對于絕大多數(shù)分析師而言,業(yè)務需求特征大致可歸納為,交付時間短、實現(xiàn)成效快、數(shù)據(jù)維度豐富、結論支撐足夠、方便報告匯報。
大部分業(yè)務分析的場景都可以通過類似杜邦分析的方法進行層層下鉆拆解,而這個過程對數(shù)學知識以及算法知識的涉及可能非常少。
業(yè)界已經(jīng)有了非常多成熟的算法應用實踐,有的時候為了做數(shù)據(jù)論證和探索,就需要用到類似算法,其目的是用最短的時間找到一個可以去下結論的突破點。于是在實際應用時會碰到一個前提,即每種算法都有其合適的應用場景及前置條件,且當具體使用時超級參數(shù)的影響也非常大。
所以如果我們不從更高層次去理解和對待算法,那么在實際運用時,就可能如刻舟求劍,難以取得預想效果或者過早的否掉一個本可以恰當解決當前問題的算法模型,只因為相關的工作沒有足夠的重視(例如數(shù)據(jù)清洗、特征選取方式不合理)。
skl包提供了大量簡單函數(shù),為了快速運用這些函數(shù)解決實際問題,我們不得不花時間去了解算法的內(nèi)部原理及實現(xiàn)細節(jié)。建筑設計師不需要精通制造鋼筋水泥的工藝,但需要了解不同鋼鐵、水泥的性質(zhì)用途及之間配合關系,道理同樣適用在這個環(huán)節(jié)。
3. 分析師要更好成長,橫向知識儲備必不可少
數(shù)據(jù)分析師的成長就像一場馬拉松,需要合理分配時間精力。專注力和自制力是一種稀缺資源,需要用在最合適的地方。經(jīng)常提醒自己的目標是什么,才能把事情做好,對于分析師來說尤其如此。
不僅僅是算法,在這個大的社會環(huán)境下,對于市場、行業(yè)、細分領域、垂直領域、崗位、職業(yè)、技術、技能、商業(yè)很多個方面都需要有所涉獵,因為分析只是一個技能,把它作為職業(yè)更需要貼切實際場景下做出相應合理的策略。
五、數(shù)據(jù)分析師與算法工程師的職責差異
1. 數(shù)據(jù)分析師的要求
- 懂業(yè)務是前提:視野需要盡可能寬,需要去了解行業(yè)大盤、市場動態(tài)、公司業(yè)務、商業(yè)模式、業(yè)務流程,建立自己的認知和判別思維,在指定場景下能夠去用科學嚴謹?shù)姆椒ǖ贸龊侠斫Y論;
- 懂分析是核心:數(shù)據(jù)分析的基本方法原理、專業(yè)高效的數(shù)據(jù)分析方法論、靈活性的組合技巧運用、結合業(yè)務的適用分析方法論、高度的數(shù)據(jù)敏感性;
- 懂匯報是臺階:好的分析離不開好的報告,好的報告離不開好的匯報技巧,在誰的面前怎么說話,說什么話,也是一項技術活兒。
2. 算法工程師的要求
- 懂技術是前提:不同的算法可能用不同的時間、空間或效率來完成同樣的任務,算法的運行效能需要具備一定的coding技術支撐。
- 專業(yè)極其細分:按照研究方向劃分,主要是視頻算法工程師、圖像處理算法工程師、音頻算法工程師、通信基帶算法工程師、信號算法工程師、NLP算法工程師、生物醫(yī)學信號算法工程師等知識深度寬泛。
3. 兩者的共性和差異
- 共性:都需要對數(shù)據(jù)進行探索,發(fā)覺數(shù)據(jù)之間的模式和規(guī)律,從而運用一些列的規(guī)則和公式來解決實際的問題(都要讀統(tǒng)計學、概率論);
- 區(qū)別:數(shù)據(jù)分析通過一些傳統(tǒng)的方法來解決實際問題,門檻低,人人都是數(shù)據(jù)分析,實現(xiàn)效果即可忽略性能;算法工程師的門檻相對較高,需要對原有的方法進行一定程度的創(chuàng)新,來解決特定領域中的問題,且需要保證算法的性能、效果、穩(wěn)定。
六、實際業(yè)務中如何分工配合可以效用最大化
實際業(yè)務過程中,分析和算法的需求方是存在一定差異的。在協(xié)同上,往往有可能不同部門的人,在做同一件事??赡軙驗樾枨髮霑r的背景、視角不同,造成結論之間存在差異性。
1. 一個案例
有一些人總是不及時向電信運營商繳錢,如何發(fā)現(xiàn)它們?
- 數(shù)據(jù)分析:通過對數(shù)據(jù)的觀察,我們發(fā)現(xiàn)不及時繳錢人群里的貧困人口占82%。所以結論是收入低的人往往會繳費不及時。結論就需要降低資費;
- 數(shù)據(jù)算法:通過編寫好的算法自行發(fā)現(xiàn)深層次的原因。原因可能是,家住在五環(huán)以外的人,由于環(huán)境偏遠不及時繳錢。結論就需要多設立一些營業(yè)廳或者自助繳費點。
2. 如何協(xié)同
數(shù)據(jù)算法之前,應該先進行數(shù)據(jù)的探索分析,通過對業(yè)務問題的定位和拆解,找到可用的數(shù)據(jù)維度特征,采集數(shù)據(jù),形成數(shù)據(jù)指標進行各種維度組合的統(tǒng)計分析,得出初步結論進行匯報,如上:人均收入低建議降低資費。
在業(yè)務信息聚焦過程中,對發(fā)現(xiàn)出來無法具象描述出來的課題,組織進行專題研究,通過算法的形式構建數(shù)據(jù)特征進行深層次挖掘,得出潛在結論,如上:環(huán)境偏遠建議增加駐點。
之后針對算法產(chǎn)出的結論,可以進行可行性分析,基于業(yè)務上的實際訴求,分析選址位置、人群覆蓋、套餐標準等等。
3. 小結
分析和算法在某種程度上來說可以混淆在一起,小團隊里面,1~2個資深的分析也可以hold 。很多事情都是需要自驅(qū)進行,但從實際項目的推進上,通常都是先分析,再專題,繼而深度結合業(yè)務分析,再分析驅(qū)動算法迭代,如此反復。
七、數(shù)據(jù)分析師應該掌握的程度
綜上,對于一個專業(yè)數(shù)據(jù)分析師來說,在各個層面需要掌握的能力要求可以如下:
- 行業(yè)知識? ★★★★
- 業(yè)務了解 ★★★★★
- 分析思維 ★★★★★
- 數(shù)據(jù)處理 ★★★★
- 算法原理? ★★★
- coding能力? ★★★
- 報告撰寫? ★★★★★
- 匯報演講? ★★★★
- 歸納總結? ★★★★★
- 資源整合? ★★★★
作者:趙小洛,公眾號:趙小洛洛洛
本文由 @趙小洛 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于CC0協(xié)議
- 目前還沒評論,等你發(fā)揮!