樓主: 曲歌99
6899 165

[CDA數據分析師學習之路] 經驗技術分享:三年數據分析領域的探索和前行   [分享]

版主

學術權威

87%

還不是VIP/貴賓

-

威望
2
論壇幣
163742 個
通用積分
11066.4586
學術水平
1264 點
熱心指數
1346 點
信用等級
1142 點
經驗
118203 點
帖子
2041
精華
40
在線時間
7484 小時
注冊時間
2010-5-2
最后登錄
2019-10-14

初級學術勛章 初級熱心勛章 初級信用勛章 中級學術勛章 中級熱心勛章 中級信用勛章 高級學術勛章 高級熱心勛章

樓主
曲歌99 學生認證  發表于 2019-5-12 21:37:20 |只看作者 |倒序

11.webp.jpg

前言:

之前的帖子中對自己的學科背景和學習動力等原因做了描述和鋪墊,也對數據分析方法體系作了自己理解的歸納,現在看起來顯得重要但也不重要,重要是指這些知識作為基礎的不可或缺,不重要是指這些知識作為框架禁錮了思維。

(本文來自成都CDA就業班學員2018.9投稿)

1  職業發展篇

22.webp.jpg

      先聊聊2015年的事吧,參加培訓之后我對自己的知識體系進行了重建和鞏固,也在過程當中發現了很多有意思的事,這也成了之后選擇工作時考慮的一個因素——數據量較大之后,處理的速度異常緩慢;因此,培訓之后的第一站我進入了一家大數據公司,這里的大數據并不是偽命題的“大數據”,而是真正的大數據,百億級存量數據,千萬級增量,完善的Hadoop體系,在這里我接觸到了軌跡數據、空間數據、個人隱私數據等等,也接觸到了圖數據庫,Spark GraphX、Streaming、MLlib,Kettle...,在這樣的環境中,充分運用到了各種大數據組件,也加強了自己Python+Mysql和Spark+Hive+Kafka技術棧的模型經驗,既操作過百億級數據的分析建模,也完成過六度人脈的圖數據庫檢索和圖引擎分析;言歸正傳,在公司呆了1年多之后,我選擇了往技術管理崗轉型,在經過了仔細斟酌之后,我選擇了當時的風口,互聯網金融行業,在2017年7月加入互聯網金融公司,做起了風控團隊的高級數據挖掘工程師、部門主管、部門經理助理,同時也兼任過數據產品經理、架構師,主要負責風控體系的完善和優化,在此期間,開始接觸渠道分析、反欺詐模型、信用模型、授信模型、貸后監控和續貸營銷,也是在這里完成了風控系統的多次迭代、營銷系統CRM標簽體系的建立、電銷語音系統的完善...


2016-2017年:大數據分析師——大數據研發工程師——數據分析團隊負責人

2017-2018年:高級數據挖掘工程師——AI研發中心主管——經理助理

2018-至今:風控副總裁

02   技術發展篇

33.webp.jpg

職業發展中提到了一些所用到的工具,但仍然不夠完善,這里我們就詳細的聊聊這些東西;在我看來大數據公司一般分為幾類:

  • 數據存儲和處理類:主要做底層數據的匯聚、存儲和清洗,將非標和臟數據做標準化是這一類公司的主要工作,其中大部分的工作量會在運維、清洗和數倉模型,這一類公司也有的人稱呼為計算平臺或者運維平臺或者基礎平臺類公司,當然云平臺只是其中的一部分。

  • 報告和可視化解決方案類:主要做數據可視化呈現和解決方案輸出,用前端可配置的標準產品和報表作為公司的盈利手段。

  • 產品與運營分析類:主要通過各類模型(數據模型和產品模型)分析和優化產品功能和運營成本,經常接觸到的有場景建模產品(語音、圖像識別、風控放款、精準營銷)的公司就在這個范疇內。

  • 精細化運營類:主要通過控制產品和用戶的生命周期來實現最終盈利,這一類公司一般都有完善的用戶生命周期體系,相比2、3類公司,這一類公司離客戶更近,主要是2C端公司,他們的核心是用戶運營體系而不是模型和分析的手段,比如游戲公司、社交平臺等;當然,就如同一個公司的不同部門,一個人的不同涉獵范疇,各個類型的公司在技術上也會出現重疊,這也是公司綜合實力的一種體現。

  • 數據產品類:主要通過整合以上公司的技術和資源進行盈利,這一類公司所具有的核心競爭力是快速的定制化和業務梳理能力,通過咨詢方案和軟件外包切入,整合多家公司標準化產品后提供產品。

  • 其他類:以上幾類是經常接觸到的大數據公司類型,除此之外還有一些創新商業模式形成的大數據公司。



      在簡單的將大數據公司進行分類之后,可以很明確的看到,我之前所工作過的公司是第一類和第三類,每一類公司的界定在于公司的業務基礎和優勢是在哪一個領域,比如,我所在的第一家公司的優勢是基礎平臺的數據處理能力和運維能力,而數據可視化及模型和分析是在此基礎上衍生的盈利點,也是公司發展的方向;我暫且將第一家公司和第二家公司稱為A、B公司,在A公司這樣的以數據基礎平臺作為優勢的公司,能夠快速上手的無非是數據基礎平臺所使用的各類組件的安裝、調優和使用,Hadoop生態圈,如下圖:


44.webp.jpg


      通常情況下,進入公司之后的第一件事都是具體著手某一個模塊的工作,也就是說你是運維工程師的話,那么首先讓你了解的肯定是我們有多少服務器,每一臺服務器部署的組件和對應的IP,然后才是在此基礎上如何管理和優化,如果你是數據分析師的話,首先需要了解的就是我們的數據都放在哪,是HBase、Hive還是Elasticsearch,然后如何進入如何操作,因此,作為大數據分析師的我,首先接觸到的就是數據倉庫,不同的數據倉庫使用的操作語言在邏輯上大同小異,在語法上風格各異,在這里我主要使用的是SQL(這里不具體區分Mysql、Oracle和Hive)。


      我需要做的就是按照需求取數并進行分析,每天的工作是從Xshell登陸到服務器,在shell界面輸入Hive進入數倉進行查詢和取數,根據業務需要分析數據,導出結果到HDFS…,在了解業務邏輯和數據字段的同時,我也在思考:這個HDFS是什么?我提交腳本的Yarn到底是什么?為什么偶爾會出現內存溢出的報錯?為什么數據量大和數據量小的時候分析消耗的時間差不多?帶著這些疑問,我在熟練中思考,在思考中進步;在逐漸熟悉業務的同時,我們接到了新的需求,需要對數據進行及時的檢索反饋,同時也要進行預測功能的增加,那么,及時檢索怎么實現呢?我們把數據從底層數據庫通過kettle定時腳本將數據抽取到ES,這樣,數據按照業務類型實現了少量數據的及時檢索,但是不久之后問題又來了,隨著數據量的增大,哪怕是ES集群進行索引分片之后仍然不能夠進行穩定的及時檢索,因此有了之后HBase+ES的二級索引,在此過程中,我也熟悉了ELK的使用;解決了及時查詢的問題,那么接下來該解決預測問題了,當時能想到的辦法是使用Mahout對文件系統的數據進行建模,依靠Mahout庫提供的各類算法能夠比較簡單的實現預測建模,常見的分類、聚類、關聯需求都能通過他來完成,但是隨著預測需求的不斷增加,逐漸發現每天的工作時間幾乎都消耗在等著計算結果出來,這又有些尷尬了;在此期間,基于我們能夠較好的完成離線數據的檢索和建模,需求又進一步升級到了需要實時數據進行預警監控,有了之前的經驗,我們很容易的就想到了flume+kafka+streaming這一套框架,因此,我們開始向spark去轉換;在用上了spark之后,我們將Mahout上運行的算法用Spark MLlib進行替換,意外的發現,只要有大的內存,那么計算速度可以縮短到之前的十分之一,所以,我們義無反顧的改用了Spark,我也在私下惡補了Spark基于內存的DAG和MapReduce的區別。


      之后,我成功的從大數據分析師轉型到了大數據研發工程師,開始著手各類功能需求研發問題的對接和開發,當然,我也兼任了售前工程師;在一次聊天的過程中,業務方說到了有沒有辦法通過圖數據結構將人與人、人與物、人與事件進行連接,替換目前繁雜的嵌套檢索實現快速檢索和簡單修改,帶著這個疑問,我了解了Spark GraphX和Neo4j,作為一個圖引擎,GraphX的強項就是處理這種開放性的圖算法問題,你可以通過自定義節點和邊關系來實現復雜關系的連接,進而實現快速的圖檢索,但整個計算過程耗時很長,退而求其次,我開始思考使用Neo4j或者Titan來實現我簡單的檢索要求,最終,將清洗之后的節點和邊按照主體要求和表頭要求入庫到Neo4j就簡單實現了檢索功能,也可以通過Neo4j提供的接口實現對圖數據結果的交互,應用到其他需要的地方。


      在結束了以上項目之后,我加入了互聯網金融公司B,在B公司中,我的主要工作是迭代和優化風控相關模型,之后也近一步著手反欺詐、信用、授信、催收、客戶評級、意愿預測、響應模型、圖關系挖掘(標簽傳播)、推薦系統、智能語音項目等系統和算法的研發,以上的項目我就不一一舉例了;B公司相較于A公司是一家典型的產品與運營分析類公司,所以,他的整個底層的效率可以說是很原始,多套系統產生的多個數據庫,經常會有跨庫取數的情況,在這里,最難的一件事不是建立一個好的模型并迭代優化它,而是如何縮短ETL的時間,當然這一切在建立了數據中心之后得到了解決;那么作為一個模型團隊的負責人,我們還是回到模型上來,如何做一個好的模型,這個問題從流程上來說千篇一律,無非也是數據清洗、特征工程、模型選擇、參數優化、模型部署和迭代,但我要說的是,作為一個數據挖掘工程師或者算法工程師,應該會的不僅僅只是如何對各個格式數據進行清洗、如何調用一個算法,重點應該落在業務需求的本身,應該落在對特征變量的理解,應該落在模型的落地上,其次還有如何快速的進行模型在不同場景的遷移;建模只是一種手段,不是最終的產品,對大部分需求來說,能進行簡單分析達到業務目的的,絕對不會讓你試了邏輯回歸又試隨機森林,試完隨機森林再用用深度神經網絡,對產品或者管理而言,需要看到的是結論,而不是過程,所以這也是需要數據挖掘工程師要有深厚沉淀的原因,換言之,你要具備用最快的速度得出最好解決方案的能力, 是的,這里我用的是解決方案,業務加上流程加上基于分析或者模型的解決方案,而不是一個干巴巴的模型,一個參數矩陣,因此,在我看來,數據挖掘工程師(算法工程師)相較于開發工程師來說,最大的區別是,能鉆得進去,能跳得出來,一個優秀的數據工程師,能獨立完成模型和算法,也能獨立和開發對接各類接口;一個強悍的數據工程師,還能玩得了Xgboost和TensorFlow, 也寫得了Axure和Xmind,當得了項目管理,也編得來架構文檔;這也是為什么數據工程師比開發工程師貴的原因。所以,如果你從業時間已經不短,但是還在滿足于目前場景里的模型效果不錯,有那么一些IV很高的變量,有那么一個KS很高的pkl,那么,你可能已經落后了。


      在B公司,我通過優化和迭代反欺詐、信用、授信、催收模型加強了Python、Mysql、Redis的了解和使用,嘗試過用邏輯回歸、隨機森林、GBDT、Xgboost、lightGBM等算法優化模型,爭執過target的選擇,也使用過各類加減乘除指冪導數來構造特征,在構造的兩千多個特征中,也使用過L1、L2正則化、隨機森林和神經網絡算法去篩選特征,在清洗數據的時候也遇到過到底應該保留補全還是drop掉這個維度,到底需不需要將類別變量進行編碼的問題;通過客戶評級、意愿預測、響應模型、推薦系統加強了Spark ML、MLlib、Hive、HBase、Kafka的使用,很多意愿和響應模型所用的特征都是基于用戶訪問軌跡的數據,我們通過頁面埋點的方式實施收集用戶訪問數據,將監聽的數據推到Kafka中,Kafka再將數據推給Streaming,通過設置offset來消費Kafka的數據,在這個過程中,我們完成數據清洗,通過Dstream對應的RDD來調用MLlib 進行模型預測,將ETL結果寫入HBase,將模型結果寫入Hive;通過圖關系挖掘(標簽傳播)練習了Spark GraphX和Neo4j的使用。在各個項目過程中,從一開始只關注模型的效果,逐步開始了解業務的場景,比如:欺詐模型是為了預測可能逾期的樣本cut段,而信用模型是為了挽回更多的優質客戶增加用戶的通過量;從業務場景中催生了規則加模型的風控模式,從續貸營銷催生了召回業務模式,從圖挖掘催生了信修和潛在客戶挖掘模式,這些模式都建立在對業務流程熟悉的基礎上;因為當時公司沒有專職的數據產品經理,所以作為團隊的負責人,義不容辭的根據業務的需要和技術的發展設計和落地產品也成了我們份內的工作,作為一個兼職的數據產品經理,我的心得是必須懂開發、懂業務、懂項目管理才能做一個不挨懟的數據產品經理,至少需要做到每一個功能的輸入和輸出你要明明白白,每一個流程是否切合業務邏輯你要清清楚楚,天馬行空的想法,需要但是適可而止。在之后的智能語音機器人項目中又陸續接觸了ASR、NLU、DMS、TTS等模塊的開發和算法工作,快速學習和落地了NLP相關的各類分詞、糾錯和檢索,當然,能快速的落地產品還是得歸功于團隊小伙伴們的給力。在整個智能語音項目中,團隊從一開始的一無所知到最終達到95%以上的召回率,這一過程讓我相信,模型和算法是相通的,重要的是算法的思維和邏輯,還有一顆你對算法熱愛的心。

03  案例分享篇

55.webp.jpg

      有人說,沒有一個成功的落地案例的數據工程師不是一個好的數據科學家,那么,案例分享必不可少,下面會簡單分享一個落地案例。


      這是一個基于數據中心做精準營銷的項目,整個邏輯并不復雜,業務部門需要對存量和增量客戶打上標簽并進行規則過濾和用戶意愿及響應度預測,并通過外呼系統進行觸客,實時返回用戶意愿,并對標簽庫進行迭代。

123.webp.jpg

      整個數據的采集通過數據庫binlog和flume實現采集(埋點、外呼日志、業務數據),將日志數據推到Kafka,另外一部分三方數據和基本數據會在清洗后存入Hive或HBase,其中,進入Hive的數據是按照業務報表需求清洗之后的報表基礎表,之后通過Kylin實現邏輯交叉,并在Superset呈現結果。HBase中的結果是核心的標簽數據,通過HBase的rowkey唯一標識用戶ID&標簽ID字段,通過對增量數據進行計算后進行合并,存儲在HBase中,在Spark中使用SQL和MLlib對標簽的DF結構進行計算和預測,結果存儲在Redis中通過API接口向應用層輸出。其中,ELK對日志數據進行及時檢索,Ganglia監控整個集群的運行狀況。通過以上的步驟可以實現對用戶日志和標簽結果的檢索,對用戶意愿和響應度進行預測,以及通過api傳參控制規則過濾篩選。


      整個過程并不復雜,但細節的工作是巨大的,比如:底層數據的采集協調、數據的存儲方式和結構、Topic的定義、Rowkey的定義、增量數據的合并算法、報表Cube的配置、模型使用的字段和offset的合理設置、后端調用傳參的實時性和準確性以及并發等等。


      除了對數據流的架構和應用的架構,如何合理的安排人員,提高工作的效率也是一個大的問題,最后,項目的管理和計劃就應該提上日程了。在整個流程跑通之后,功能測試、模塊測試、系統測試也會需要隨時對算法對接口進行優化。


注:整個過程中并沒有涉及到具體算法的實現和開發架構,但不代表算法實現和開發架構不重要。


04  總結

圖1.png

      以上是我對三年工作的一些心得和體會,希望像3年前為入門者解惑的帖子一樣,今天也能為眾多在數據領域拼搏而又迷茫的人舉一個親身經歷的例子供大家參考。


附上自己2015年9月發的第一張帖:http://www.worldheropost.com/thread-3918504-1-1.html


=====================分割線=====================

附帶宣傳:如何零基礎入門數據分析崗位?| CDA數據分析就業班60期火熱報名中

圖2.png




回帖推薦

redflame 發表于159樓  查看完整內容

大數據時代的專業能力更需要有與產業對接的智慧,為樓主點贊!也為樓主的公益精神點贊!

coffeefly 發表于156樓  查看完整內容

很好的帖子! 感謝樓主分享!

yejuanhui 發表于149樓  查看完整內容

很棒的分享。

benji427 發表于143樓  查看完整內容

it is really a great post

浮生如一茶 發表于137樓  查看完整內容

感謝分享!!!向學長學習!

zhaochuan2 發表于112樓  查看完整內容

好帖子

alvin2 發表于94樓  查看完整內容

這個活動好

junzhitianxia 發表于73樓  查看完整內容

新的努力方向,cda

jin216 發表于54樓  查看完整內容

好貼 多謝分享

huangshanlu 發表于53樓  查看完整內容

好文章,可以認真閱讀

hzhuang9 發表于64樓  查看完整內容

工具固然重要,沒有思想,工具用武之地就受限

zmdwhs 發表于16樓  查看完整內容

堅決支持,方便

junzhitianxia 發表于27樓  查看完整內容

支持很好。特別適合我這樣的。

lingnantuzhu 發表于37樓  查看完整內容

動手學習,搞起來

dfetext1 發表于39樓  查看完整內容

好貼。
已有 3 人評分經驗 熱心指數 收起 理由
zhdefei + 1 鼓勵積極發帖討論
arthistory4 + 1 精彩帖子
np84 + 100 精彩帖子

總評分: 經驗 + 101  熱心指數 + 1   查看全部評分

什么是空?上不怨天,下不尤人;
什么是戒?己所不欲,勿施于人;
什么是清靜?諸惡莫作,眾善奉行。
stata SPSS
沙發
曲歌99 學生認證  發表于 2019-5-12 22:01:36 |只看作者
什么是空?上不怨天,下不尤人;
什么是戒?己所不欲,勿施于人;
什么是清靜?諸惡莫作,眾善奉行。
回復

使用道具 舉報

藤椅
曲歌99 學生認證  發表于 2019-5-12 22:06:23 |只看作者

CDA 課程咨詢丨史老師

聯系電話:18080942131 同微信


1557669929(1).png


掃描二維碼


什么是空?上不怨天,下不尤人;
什么是戒?己所不欲,勿施于人;
什么是清靜?諸惡莫作,眾善奉行。
回復

使用道具 舉報

板凳
hifinecon 發表于 2019-5-12 22:49:15 |只看作者

回帖獎勵 +2

回復

使用道具 舉報

報紙
onhead 發表于 2019-5-12 23:47:49 |只看作者
       
回復

使用道具 舉報

地板
onhead 發表于 2019-5-13 00:26:21 |只看作者

回帖獎勵 +2

回復

使用道具 舉報

7
cszcszcsz 發表于 2019-5-13 05:32:03 |只看作者
回復

使用道具 舉報

8
cszcszcsz 發表于 2019-5-13 05:32:35 |只看作者

回帖獎勵 +2

謝謝分享!
回復

使用道具 舉報

9
likaige 在職認證  發表于 2019-5-13 05:55:44 來自手機 |只看作者

回帖獎勵 +2

曲歌99 發表于 2019-5-12 21:37
前言:之前的帖子中對自己的學科背景和學習動力等原因做了描述和鋪墊,也對數據分析方法體系作了自己理解的 ...
頂一下
回復

使用道具 舉報

10
cugsong 發表于 2019-5-13 06:00:41 |只看作者

回帖獎勵 +2

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 我要注冊

京ICP備16021002-2號 京B2-20170662號 京公網安備 11010802022788號 論壇法律顧問:王進律師 知識產權保護聲明   免責及隱私聲明

GMT+8, 2019-10-18 00:18
FUN88电竞