
數(shù)據(jù)建模那點事兒
今天要說內(nèi)容是建模。為啥我作為一個數(shù)學(xué)能力并不強的人要在這獻丑講建模的事呢?其實我的目的很簡單,就是為了告訴大家一個事實:數(shù)據(jù)分析中的建模,并沒有想象中那么高深莫測,人人都有機會做出自己的模型。
維基百科對數(shù)據(jù)分析的定義如下:
Analysis of data is a process of inspecting, cleaning, transforming, and modeling data with the goal of discovering useful information, suggesting conclusions, and supporting decision making. Data analysis has multiple facets and approaches, encompassing diverse techniques under a variety of names, in different business, science, and social science domains.
(來源:Data analysis)
簡單翻譯:數(shù)據(jù)分析是一個包含數(shù)據(jù)檢驗、數(shù)據(jù)清洗、數(shù)據(jù)重構(gòu),以及數(shù)據(jù)建模的過程,目的在于發(fā)現(xiàn)有用的信息,有建設(shè)性的結(jié)論,輔助決策的制定。數(shù)據(jù)分析有多種形式和方法,涵蓋了多種技術(shù),應(yīng)用于商業(yè)、科學(xué)、社會學(xué)等多個不同的領(lǐng)域。
和上篇文章中我畫的圖對比一下:
我在上篇文章中為了讓初學(xué)者更容易走通全流程,簡化了數(shù)據(jù)清洗的過程,實際上數(shù)據(jù)清洗絕非一次完成,“檢驗-清洗-檢驗”的過程可能會重復(fù)數(shù)次乃至數(shù)十次。
而建模呢?再次引用維基上對數(shù)據(jù)建模的定義:
Data modeling is a process used to define and analyze data requirements needed to support the business processes within the scope of corresponding information systems in organizations. Therefore, the process of data modeling involves professional data modelers working closely with business stakeholders, as well as potential users of the information system.(來源:Data modeling)
簡單翻譯:數(shù)據(jù)建模是一個用于定義和分析在組織的信息系統(tǒng)的范圍內(nèi)支持商業(yè)流程所需的數(shù)據(jù)要求的過程。因此,數(shù)據(jù)建模的過程需要專業(yè)建模師與商業(yè)人員和信息系統(tǒng)潛在用戶的緊密合作。這段話的定義更偏向信息系統(tǒng)和商業(yè)數(shù)據(jù)建模,我之所以在此引用這段話,是為了明確接下來的討論內(nèi)容主要方向是商業(yè)數(shù)據(jù)分析和建模,至于科學(xué)研究方向的數(shù)據(jù)建模,不在這篇文章的討論范圍以內(nèi)。
請注意上邊這段話中的一個核心:支持商業(yè)流程。商業(yè)數(shù)據(jù)建模,乃至商業(yè)數(shù)據(jù)分析,其最終目的都是要支持某種商業(yè)流程,要么優(yōu)化原有流程,提高各部分效率;要么重構(gòu)原有流程,減少步驟;要么告訴決策者,哪些流程改造方向是錯誤的,以避免走錯路。最終的目標(biāo),一定是提升效率。但在不同的情況下,提升效率的方式也是不同的,因此在每個模型建立時,都需要確定其解決的具體目標(biāo)問題。
再往前走一步,數(shù)學(xué)—主要是統(tǒng)計學(xué),在建模的過程中又扮演什么樣的角色呢?繼續(xù)引用維基:
Mathematical formulas or models called algorithms may be applied to the data to identify relationships among the variables, such as correlation or causation. In general terms, models may be developed to evaluate a particular variable in the data based on other variable(s) in the data, with some residual error depending on model accuracy (i.e., Data = Model + Error)(來源:Data modeling)
簡單翻譯:數(shù)學(xué)公式或模型稱為算法,可應(yīng)用于數(shù)據(jù)以確定變量之間的關(guān)系,如相關(guān)性或因果關(guān)系。在一般情況下,模型開發(fā)出來后用于評估一個特定的變量與數(shù)據(jù)中其他其他變量的關(guān)系,根據(jù)模型的準(zhǔn)確性不同,這些關(guān)系中會包含殘差(即,數(shù)據(jù)=模型+錯誤)
這段描述很明確,統(tǒng)計學(xué)在數(shù)據(jù)建模的過程中,主要用于幫助我們找出變量之間的關(guān)系,并對這種關(guān)系進行定量的描述,輸出可用于數(shù)據(jù)集的算法。一個好的數(shù)據(jù)模型,需要通過多次的測試和優(yōu)化迭代來完成。
綜上,給出一個我認(rèn)為的“數(shù)據(jù)建模”定義:數(shù)據(jù)集+商業(yè)目標(biāo)+算法+優(yōu)化迭代= 數(shù)據(jù)建模。定義中的每一部分都必不可少。
照例,先上流程圖:
上圖的流程顏色對應(yīng)數(shù)據(jù)分析全流程,為了方便大家閱讀,我把全流程圖再貼一次:
接下來,我重點解讀明黃色(淺黃?)部分的內(nèi)容:
在進行建模之前,首先要考慮的是使用哪些變量來建立模型,需要從業(yè)務(wù)邏輯和數(shù)據(jù)邏輯兩個方面來考慮:
業(yè)務(wù)邏輯:變量基于收集到的數(shù)據(jù),而數(shù)據(jù)在收集時,會產(chǎn)生與業(yè)務(wù)層面相關(guān)的邏輯,比如在汽車參數(shù)中,一旦我們定義了“家用轎車”這個類別,那么無論什么品牌什么車型,“輪胎數(shù)量(不計備胎)”這個變量就有99%以上幾率為4……當(dāng)然在接下來的建模中,我們不會選擇這個變量。這一類情況是業(yè)務(wù)知識來告訴我們哪些變量可以選擇,哪些不能選擇。
數(shù)據(jù)邏輯:通常從數(shù)據(jù)的完整性、集中度、是否與其他變量強相關(guān)(甚至有因果關(guān)系)等角度來考慮,比如某個變量在業(yè)務(wù)上很有價值,但缺失率達(dá)到90%,或者一個非布爾值變量卻集中于兩個值,那么這個時候我們就要考慮,加入這個變量是否對后續(xù)分析有價值。
我個人認(rèn)為,在選擇變量時,業(yè)務(wù)邏輯應(yīng)該優(yōu)先于數(shù)據(jù)邏輯,蓋因業(yè)務(wù)邏輯是從實際情況中自然產(chǎn)生,而建模的結(jié)果也要反饋到實際中去,因此選擇變量時,業(yè)務(wù)邏輯重要程度相對更高。
而在變量本身不適合直接拿來建模時,例如調(diào)查問卷中的滿意度,是漢字的“不滿意”“一般”“滿意”,那么需要將其重構(gòu)成“1”(對應(yīng)不滿意)“2”(對應(yīng)一般)“3”(對應(yīng)滿意)的數(shù)字形式,便于后續(xù)建模使用。
除這種重構(gòu)方式之外,將變量進行單獨計算(如取均值)和組合計算(如A*B)也是常用的重構(gòu)方法。其他的重構(gòu)方法還有很多種,在此不一一闡述。
我們在建模時,目標(biāo)是解決商業(yè)問題,而不是為了建模而建模,故此我們需要選擇適合的算法。常用建模算法包括相關(guān)、聚類、分類(決策樹)、時間序列、回歸、神經(jīng)網(wǎng)絡(luò)等。
以對消費者的建模為例,舉一些場景下的常用算法對應(yīng):
劃分消費者群體:聚類,分類;
購物籃分析:相關(guān),聚類;
購買額預(yù)測:回歸,時間序列;
滿意度調(diào)查:回歸,聚類,分類;
等等。
確定算法后,要再看一下變量是否滿足算法要求,如果不滿足,回到選擇/重構(gòu)變量,再來一遍吧。如果滿足,進入下一步。
算法選定后,需要用數(shù)據(jù)分析工具進行建模。針對不同的模型,需要調(diào)整參數(shù),例如聚類模型中的K-means算法,需要給出希望聚成的類別數(shù)量,更進一步需要給出的起始的聚類中心和迭代次數(shù)上限。
這些參數(shù)在后續(xù)測試中會經(jīng)過多次調(diào)整,很少有一次測試成功的情況,因此請做好心理準(zhǔn)備。
算法跑完之后,要根據(jù)算法的輸出結(jié)果來確定該算法是否能夠解決問題,比如K-means的結(jié)果不好,那么考慮換成系統(tǒng)聚類算法來解決。或者回歸模型輸出的結(jié)果不滿足需求,考慮用時間序列來做。
如果不需要換算法,那么就測試一下算法輸出的結(jié)果是否有提升空間,比如聚類算法中指定聚類結(jié)果包含4類人群,但發(fā)現(xiàn)其中的兩類特征很接近,或者某一類人群沒有明顯特征,那么可以調(diào)整參數(shù)后再試。
在不斷的調(diào)整參數(shù),優(yōu)化模型過程中,模型的解釋能力和實用性會不斷的提升。當(dāng)你認(rèn)為模型已經(jīng)能夠滿足目標(biāo)需求了,那就可以輸出結(jié)果了。一個報告,一些規(guī)則,一段代碼,都可能成為模型的輸出。在輸出之后,還有最后一步:接收業(yè)務(wù)人員的反饋,看看模型是否解決了他們的問題,如果沒有,回到第一步,再來一次吧少年……
以上,就是建模的一般過程。如果你有些地方覺得比較生澀,難以理解,也沒有關(guān)系。下一篇專欄中,我將向你們介紹一個具體的數(shù)據(jù)模型,我會對建模的過程一步步進行拆解,力求簡明易懂。
我寫了個建模的流程,有過建模經(jīng)驗的人自然懂,沒有經(jīng)驗的各位也不要著急,這次我以一個真實模型為例,給大家詳細(xì)講述建模的各個步驟。照例,先上流程圖:
大家可以看到,這個圖是由我之前文章中的兩張圖拼合而來,而我今天講的這個真實模型,將把圖中所有的流程都走一遍,保證一個步驟都不漏。
話說這個項目跟我加入百度有直接關(guān)系……
2013年的最后一天,我結(jié)束了在三亞的假期,準(zhǔn)備坐飛機回家,這時候接到一個知乎私信,問我對百度的一個數(shù)據(jù)科學(xué)家(其實就是數(shù)據(jù)分析師啦)職位是否感興趣,我立刻回信,定了元旦假期以后去面試。兩輪面試過后,面試官——也是我加入百度后的直屬Leader——打電話給我,說他們對我的經(jīng)歷很滿意,但是需要我給他們一份能體現(xiàn)建模能力的報告。
按說這也不是一件難事,但我翻了翻電腦后發(fā)現(xiàn)一個問題:我從上家公司離職時,為了裝13,一份跟建模相關(guān)的報告文件都沒帶……最后雙方商定,我有一個星期時間來做一份報告,這份報告決定了我是否能加入百度。
那么,是時候展示我的技術(shù)了!我的回合,抽卡!
看看報告的要求:
數(shù)據(jù)最好是通過抓取得來,需要用到至少一種(除描述統(tǒng)計以外)的建模技術(shù),最好有數(shù)據(jù)可視化的展示
看來是道開放題,那么自然要選擇一個我比較熟悉的領(lǐng)域,因此我選擇了……《二手主機游戲交易論壇用戶行為分析》
為啥選這個呢?你們看了我那么多的Mario圖,自然知道我會選主機游戲領(lǐng)域,但為什么是二手?這要說到我待在國企的最后半年,那時候我一個月忙三天,剩下基本沒事干,因此泡在論壇上倒賣了一段時間的二手游戲……
咳咳……總之,目標(biāo)就確定了:分析某二手主機游戲交易論壇上的帖子,從中得出其用戶行為的描述,為用戶進行分類,輸出洞察報告。
簡單來說,就是用python寫了個定向爬蟲,抓了某個著名游戲論壇的二手區(qū)所有的發(fā)帖信息,包括帖子內(nèi)容、發(fā)帖人信息等,基本上就是長這個樣子:
(打碼方式比較簡單粗暴,請湊合看吧……)
這個模型中的數(shù)據(jù)清洗,主要是洗掉帖子中的無效信息,包括以下兩類:
1、論壇由于其特殊性,很多人成交后會把帖子改成《已出》等標(biāo)題,這一類數(shù)據(jù)需要刪除:
2、有一部分人用直接貼圖的方式放求購信息,這部分體現(xiàn)為只抓到圖片鏈接,需要刪除。
數(shù)據(jù)清洗結(jié)束了么?其實并沒有,后邊會再進行一輪清洗……不過到時再說。
用上面的那些帖子數(shù)據(jù)其實是跑不出啥結(jié)果的,我們需要把數(shù)據(jù)整理成可以進一步分析的格式。
首先,我們給每條帖子打標(biāo)簽,標(biāo)簽分為三類:行為類型(買 OR 賣 OR 換),目標(biāo)廠商(微軟 OR 索尼 OR 任天堂),目標(biāo)對象(主機 OR 游戲軟件)。打標(biāo)簽?zāi)J绞恰狈详P(guān)鍵詞—打相應(yīng)標(biāo)簽“的方法,關(guān)鍵詞表樣例如下:
(主機掌機那個標(biāo)簽后來我在實際操作時沒有使用)
打完標(biāo)簽之后,會發(fā)現(xiàn)有很多帖子沒有打上標(biāo)簽,原因有兩種:一是關(guān)鍵詞沒有涵蓋所有的產(chǎn)品表述(比如三公主這種昵稱),二是有一部分人發(fā)的帖子跟買賣游戲無關(guān)……
這讓人怎么玩……第二次數(shù)據(jù)清洗開始,把這部分帖子也洗掉吧。
其次,我們用發(fā)帖用戶作為視角,輸出一份用戶的統(tǒng)計表格,里邊包含每個用戶的發(fā)帖數(shù)、求購次數(shù)、出售次數(shù)、交換次數(shù)、每一類主機/游戲的行為次數(shù)等等,作為后續(xù)搭建用戶分析模型之用。表格大概長這個樣子:
之后這個表的列數(shù)會越來越多,因為數(shù)據(jù)重構(gòu)的工作都在此表中進行。
整理之后,我們準(zhǔn)備進行描述統(tǒng)計。
描述統(tǒng)計在這個項目中的意義在于,描述這一社區(qū)的二手游戲及主機市場的基本情況,為后續(xù)用戶模型的建立提供基礎(chǔ)信息。
具體如何進行統(tǒng)計就不說了,直接放成品圖,分別是從各主機市場份額、用戶相互轉(zhuǎn)化情況、地域分布情況進行的洞察。
因為我要研究的是這些用戶與二手交易相關(guān)的行為,因此初步選擇變量為發(fā)帖數(shù)量、微軟主機擁有臺數(shù)、索尼主機擁有臺數(shù)、任天堂主機擁有臺數(shù)。
算法上面,我們的目標(biāo)是將用戶分群,因此選擇聚類,方法選擇最簡單的K-means算法。
K-means算法除了輸入變量以外,還需要設(shè)定聚類數(shù),我們先拍腦袋聚個五類吧!
(別笑,實際操作中很多初始參數(shù)都是靠拍腦袋得來的,要通過結(jié)果來逐步優(yōu)化)
看看結(jié)果:
第一類別的用戶數(shù)跟總體已經(jīng)很接近了,完全沒有區(qū)分度?。?/span>
這一節(jié)你看標(biāo)題都這么長……
既然我們用原始值來聚類的結(jié)果不太好,那么我把原始值重構(gòu)成若干檔次,比如發(fā)帖1-10的轉(zhuǎn)換為1,10-50的轉(zhuǎn)換為2,依次類推,再聚一次看看結(jié)果。
哦哦!看上去有那么點意思了!不過有一類的數(shù)量還是有一點少,我們聚成四類試試:
哦哦,完美! 我們運氣不錯,一次變量重構(gòu)就輸出了一個看上去還可以的模型結(jié)果,接下來去測試一下吧。
測試過程中,很重要的一步是要看模型的可解釋性,如果可解釋性較差,那么打回重做……
接下來,我們看看每一類的統(tǒng)計數(shù)據(jù):
這個表出來以后,基本上可以對我們聚類結(jié)果中的每一類人群進行解讀了。結(jié)果測試通過!
這個模型不用回朔到系統(tǒng)中,因為僅僅是一個我們用來研究的模型而已。因此,輸出規(guī)則和模型加載兩步可以跳過,直接進入報告撰寫。
聚類模型的結(jié)果可歸結(jié)為下圖:
眼熟不?在我的第二篇專欄文章第一份數(shù)據(jù)報告的誕生 – 一個數(shù)據(jù)分析師的自我修養(yǎng) 中,我用這張圖來說明了洞察結(jié)論的重要性,現(xiàn)在你們應(yīng)該知道這張圖是如何得來的了。
撰寫報告的另外一部分,在描述統(tǒng)計-洞察結(jié)論的過程中已經(jīng)提到了,把兩部分放在一次,加上背景、研究方法等內(nèi)容,就是完整的報告啦!
最后附送幾張各類用戶發(fā)帖內(nèi)容中的關(guān)鍵詞詞云圖:
那么,這篇文章就到此結(jié)束了,最后的最后,公布一下我做這份報告用到的工具:
大家可以看到,要當(dāng)一個數(shù)據(jù)分析師,要用到很多類別的工具,多學(xué)一點總是沒有壞處的,在此與大家共勉。
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
LSTM 模型輸入長度選擇技巧:提升序列建模效能的關(guān)鍵? 在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)家族中,長短期記憶網(wǎng)絡(luò)(LSTM)憑借其解決長序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報考條件詳解與準(zhǔn)備指南? ? 在數(shù)據(jù)驅(qū)動決策的時代浪潮下,CDA 數(shù)據(jù)分析師認(rèn)證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計的實用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實施重大更新。 此次更新旨在確保認(rèn) ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務(wù)的價值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡稱 BI)深度融合的時代,BI ...
2025-07-10SQL 在預(yù)測分析中的應(yīng)用:從數(shù)據(jù)查詢到趨勢預(yù)判? ? 在數(shù)據(jù)驅(qū)動決策的時代,預(yù)測分析作為挖掘數(shù)據(jù)潛在價值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結(jié)束后:分析師的收尾工作與價值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結(jié)束)并非工作的終點,而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報考到取證的全攻略? 在數(shù)字經(jīng)濟蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢性檢驗:捕捉數(shù)據(jù)背后的時間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢性檢驗如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時間維度的精準(zhǔn)切片? ? 在數(shù)據(jù)的世界里,時間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準(zhǔn) ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應(yīng)用與實戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認(rèn)證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗:數(shù)據(jù)趨勢與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領(lǐng)域中,準(zhǔn)確捕捉數(shù)據(jù)的趨勢變化以及識別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認(rèn)證作為國內(nèi)權(quán)威的數(shù)據(jù)分析能力認(rèn)證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應(yīng)對策略? 長短期記憶網(wǎng)絡(luò)(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種變體,憑借獨特的門控機制,在 ...
2025-07-07統(tǒng)計學(xué)方法在市場調(diào)研數(shù)據(jù)中的深度應(yīng)用? 市場調(diào)研是企業(yè)洞察市場動態(tài)、了解消費者需求的重要途徑,而統(tǒng)計學(xué)方法則是市場調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當(dāng)下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉(zhuǎn)日期:解鎖數(shù)據(jù)處理的關(guān)鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準(zhǔn)確性的基礎(chǔ) ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅(qū)動力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03