文:暮之雪源:CSDN博客 數(shù)據(jù)分析是一個(gè)龐大的工程,,有的時(shí)候過(guò)于抽象且依賴經(jīng)驗(yàn),。本文是筆者對(duì)學(xué)習(xí)和實(shí)踐數(shù)據(jù)分析的一個(gè)總結(jié),希望提供一種通用的數(shù)據(jù)分析思路,,并在分析思路的每個(gè)步驟中介紹相關(guān)的分析算法及其應(yīng)用場(chǎng)景,,對(duì)于算法只做淺層次的介紹,待讀者在實(shí)際使用中自行深入了解,。 本文主要針對(duì)剛剛接觸數(shù)據(jù)分析或者面對(duì)一堆數(shù)據(jù)不知道如何下手的讀者,,經(jīng)驗(yàn)豐富的數(shù)據(jù)分析師們可以跳過(guò)。同時(shí),,本文介紹的分析思路由于筆者的經(jīng)驗(yàn)和知識(shí)有一定的局限性,,希望讀者在分析中合理參考。 在進(jìn)行數(shù)據(jù)分析之前,,首先應(yīng)該做好以下準(zhǔn)備: 一,、熟悉業(yè)務(wù)、了解數(shù)據(jù)來(lái)源這一點(diǎn)是數(shù)據(jù)分析的前提,。數(shù)據(jù)分析,,除了我們面對(duì)的數(shù)據(jù)之外,更多的是這些數(shù)據(jù)背后隱藏的各種業(yè)務(wù),。例如當(dāng)我們看到用戶的消費(fèi)記錄時(shí),,它可能不僅僅是收銀系統(tǒng)購(gòu)買(mǎi)商品,還包含了為了會(huì)員系統(tǒng)的滿減而做的湊單,,活動(dòng)管理系統(tǒng)的開(kāi)業(yè)折扣商品,,或者是推薦系統(tǒng)的推薦商品。對(duì)于業(yè)務(wù)深入的了解,,有助于更好的發(fā)現(xiàn)分析的維度,,快速鎖定問(wèn)題和原因。 二,、明確分析的目的數(shù)據(jù)分析不是模型算法和可視化的堆砌,,而是有目的地發(fā)現(xiàn)某種現(xiàn)象,支撐某些決策,。所以在分析之前,,一定要明確自己分析的目的,切忌照搬其他的項(xiàng)目的分析內(nèi)容,,或者隨意組合手上的分析模型算法,,這樣會(huì)導(dǎo)致分析結(jié)果華而不實(shí)。 三,、多視角觀察要想達(dá)到某種分析目的,,需要從多個(gè)視角觀察數(shù)據(jù),這樣不僅可以對(duì)數(shù)據(jù)整體有個(gè)全面的了解,,也有助于發(fā)現(xiàn)潛在的信息,。例如當(dāng)我們需要找出潛在的會(huì)員的時(shí)候,,最直接的當(dāng)然是消費(fèi)比較多但還不是會(huì)員的人。但從促銷(xiāo)活動(dòng)的角度看,,那些熱衷購(gòu)買(mǎi)打折商品的人很大概率也是潛在的會(huì)員,,因?yàn)榧尤霑?huì)員他們會(huì)獲得更多的折扣,這是他們希望的,。同時(shí),,從推薦系統(tǒng)的角度看,那些對(duì)推薦系統(tǒng)推薦的商品滿意的人,,也不太會(huì)拒絕你推薦他加入會(huì)員,。 做好準(zhǔn)備工作后,接下來(lái)就進(jìn)入正題,,開(kāi)始分析: 一,、它是什么?數(shù)據(jù)分析一定是針對(duì)某一些對(duì)象的,,就像消費(fèi)記錄針對(duì)的是某一店鋪,。那首先要做的,,就是通過(guò)數(shù)據(jù)來(lái)描述這一對(duì)象,。就像了解一個(gè)人一樣,首先要了解他是個(gè)怎樣的人,,然后便是他的特點(diǎn),,比如我的一位朋友是個(gè)學(xué)霸,他的特點(diǎn)就是每晚學(xué)習(xí)到12點(diǎn),,每科成績(jī)基本滿分,。所以,主要從兩個(gè)方面關(guān)注一個(gè)對(duì)象,,整體描述和特征: 1,、基礎(chǔ)統(tǒng)計(jì) 統(tǒng)計(jì)是最直接的方法,而且應(yīng)用起來(lái)也很簡(jiǎn)單,。常用的方法有總和,、平均數(shù)、最大最小值,、中位數(shù),、方差、增長(zhǎng)率,、類(lèi)型占比,、分布、頻率頻次等等,。這里不多做介紹,。 2,、聚類(lèi) “物以類(lèi)聚,人以群分”,,聚類(lèi)屬于非監(jiān)督學(xué)習(xí),,聚類(lèi)可以將一組數(shù)據(jù)分成多個(gè)類(lèi)別,每個(gè)類(lèi)別內(nèi)部的數(shù)據(jù)相似,,但兩個(gè)類(lèi)別之間相異,。聚類(lèi)有助于發(fā)現(xiàn)數(shù)據(jù)分布上的特點(diǎn),可以大量減少分析的數(shù)據(jù)量,。比如在軌跡分析和預(yù)測(cè)中,,通過(guò)聚類(lèi),我們會(huì)發(fā)現(xiàn)某個(gè)人主要出現(xiàn)在三個(gè)地方,,宿舍周?chē)?、食堂周?chē)⒔虒W(xué)樓周?chē)?,那么?dāng)我們預(yù)測(cè)他在哪的時(shí)候,,就可以從對(duì)無(wú)數(shù)經(jīng)緯度坐標(biāo)的分析變成對(duì)三個(gè)地點(diǎn)的分析。 3,、特征分析 特征工程是很龐大,,正如描述的那樣,數(shù)據(jù)和特征決定了機(jī)器學(xué)習(xí)的上限,,而模型和算法只能逼近這個(gè)上限而已,。特征工程包含了特征提取和特征選擇,由于其算法眾多且比較復(fù)雜,,這里不一一介紹,。特征分析首先要明確分析的單位,包括時(shí)間,、空間和類(lèi)型等等,。就像軌跡預(yù)測(cè)中,分析每十分鐘的所在地要比分析每秒鐘的經(jīng)緯度坐標(biāo)要實(shí)際得多,,而分析每小時(shí)的所在地又太過(guò)粗糙,。然后就是特征提取,特征提取的算法有很多,,線性的PCA(主成分分析),、LDA(線性判別分析)、ICA(獨(dú)立成分分析),,文本的F-IDE,、期望交叉熵,圖像的HOG,、LBP等,。特征分析的主要目的是降維,、減少冗余,提高存儲(chǔ)計(jì)算能力,。舉個(gè)不太恰當(dāng)?shù)睦?,比如我們要描述二氧化碳的化學(xué)特性,有顏色,、氣味,、酸性、堿性,、氧化性,、還原性、熱穩(wěn)定性等等,,同樣一氧化碳也一樣,,那這時(shí)候我們把這些特性降維到C和O上,那么認(rèn)為由C和O的組成的一氧化碳和C和2個(gè)O組成的二氧化碳有相似的特性,,都是無(wú)色無(wú)味的氣體,。 二、它發(fā)生了什么,?它發(fā)生了什么包涵正常和異常,,而我們通常會(huì)更加關(guān)注異常,這里也著重于異常分析,。它發(fā)生了什么與它是什么在分析思路和方法上是一致的,,只是針對(duì)不同的階段,,比如時(shí)間上本月與上月,。對(duì)于異常分析,主要有兩部分,,發(fā)現(xiàn)異常和推送預(yù)警,。推送預(yù)警比較簡(jiǎn)單,只要注意預(yù)警的級(jí)別和推送的人,。而異常發(fā)現(xiàn),,除了能直接觀察的異常,比如我們的學(xué)霸這次居然有一科沒(méi)及格,,更多的需要注意暗物質(zhì),。所謂暗物質(zhì),就是無(wú)法直接觀測(cè)的現(xiàn)象和關(guān)聯(lián),。還是拿我們的學(xué)霸君說(shuō),,這次他依舊像往常一樣全部考了滿分,這是正常的,,然而我們發(fā)現(xiàn)他這次考試的復(fù)習(xí)時(shí)間只有以往的一半,,這就不正常了,,而我們又發(fā)現(xiàn)這次考試題目很簡(jiǎn)單,所以這又正常了,?錯(cuò),,它依舊是異常,因?yàn)榭荚嚽皩W(xué)霸君并不知道考試的難度,,所以對(duì)于復(fù)習(xí)時(shí)間減半依舊是異常,。所以,重要的事說(shuō)多遍,,一定要熟悉業(yè)務(wù)和多視角觀察,。 在異常判斷的時(shí)候,通常會(huì)根據(jù)具體的業(yè)務(wù)設(shè)置一些系數(shù),,通過(guò)這些系數(shù)的突變來(lái)發(fā)現(xiàn)潛在的異常,。回到剛剛那個(gè)例子,,我們可以簡(jiǎn)單的用成績(jī)與復(fù)習(xí)時(shí)間的比值作為系數(shù),。這些系數(shù)在軌跡分析中尤為重要,例如我們要分析一個(gè)人的軌跡是否異常,,首先會(huì)看他是否出現(xiàn)在從來(lái)沒(méi)去過(guò)的地方,,如果沒(méi)有,第二步則用一個(gè)軌跡的向量去分析,。例如通過(guò)聚類(lèi),,我們的學(xué)霸君主要出現(xiàn)在教室、圖書(shū)館,、寢室三個(gè)地方,,每個(gè)地方呆的時(shí)間假設(shè)都是每天8小時(shí),那這時(shí)候就形成一個(gè)(8,,8,,8)的向量,而今天學(xué)霸的向量是(2,,2,,20),通過(guò)計(jì)算兩個(gè)向量的距離來(lái)發(fā)現(xiàn)異常,,通常是歐式距離和余弦距離,。 三、為什么發(fā)生,?每當(dāng)發(fā)生什么的時(shí)候,,我們都會(huì)問(wèn)一句為什么?為什么是對(duì)數(shù)據(jù)的深層次挖掘與診斷,精確的問(wèn)題診斷有利于正確的決策,。一般可以用到以下的方法: 1,、趨勢(shì)、同比環(huán)比 這是很簡(jiǎn)單的方法,,既觀察其過(guò)去和其他周期的情況,,這里不多介紹。 2,、下鉆 下鉆絕對(duì)是最常用且有效的找原因的辦法,,既一層層抽絲撥繭,直到找到最根源的原因,。只是在下鉆的過(guò)程中,,一定要注意下鉆的區(qū)域和方向,就像挖井一樣,,并不是隨便找個(gè)地方向任何方向打下去就會(huì)出水的,。就拿某商場(chǎng)的銷(xiāo)售額下降來(lái)說(shuō),要找出銷(xiāo)售額下降的原因,,首先會(huì)想到去找那些銷(xiāo)量減少最多的商品,,比如我們發(fā)現(xiàn)咖啡減少最多,為什么咖啡減少呢,,因?yàn)闅鉁刈兏?,人們更偏?ài)冷飲了。但是對(duì)比去年前年,,每年這個(gè)時(shí)候咖啡都會(huì)減少,,而取而代之的是冷飲的增加,它恰好彌補(bǔ)了咖啡的減少,。所以這時(shí)我們需要變化思路,,去尋找那些以往銷(xiāo)量很好而當(dāng)下銷(xiāo)量很少的產(chǎn)品。而為了不犯上述的錯(cuò)誤,,我們可以分為多個(gè)層次下鉆,,既一開(kāi)始只關(guān)注大的分類(lèi)的變化,,如服裝,、飲食等等,再?gòu)淖兓^大的類(lèi)開(kāi)始繼續(xù)下鉆,。 3,、相關(guān)分析 相關(guān)分析是對(duì)不同特征或數(shù)據(jù)間的關(guān)系進(jìn)行分析,發(fā)現(xiàn)業(yè)務(wù)的關(guān)鍵影響和驅(qū)動(dòng)因素,。例如時(shí)間到春運(yùn)了,,車(chē)票就不好買(mǎi)了一樣。相關(guān)分析常用的方法有協(xié)方差、相關(guān)系數(shù),、回歸和信息熵等,,其中相關(guān)系數(shù)和回歸也可以用于下面將會(huì)提到的預(yù)測(cè)。其中相關(guān)是回歸的前提,,相關(guān)系數(shù)表示了兩個(gè)變量有關(guān)系,,而回歸則表示兩個(gè)變量是何種關(guān)系。其中相關(guān)系數(shù)與回歸也可以延伸到典型相關(guān)分析(多元)與多元回歸,。例如經(jīng)典的“啤酒和尿布”,,如果想要知道啤酒銷(xiāo)量為什么增加,可以分析下它與尿布銷(xiāo)量的相關(guān)性,。 四,、它還會(huì)發(fā)生什么?它還會(huì)發(fā)生什么就是純粹的預(yù)測(cè)了,,預(yù)測(cè)的算法有很多,,但也并不是說(shuō)所有的預(yù)測(cè)都需要借助難以理解的算法。比如萬(wàn)精油的趨勢(shì),、增長(zhǎng)率,、同比環(huán)比、基本概率等,,有的時(shí)候就很能說(shuō)明問(wèn)題,。但在這里,還是介紹一些常用的預(yù)測(cè)方法: 1,、特別的點(diǎn) 對(duì)于實(shí)時(shí)性和連續(xù)性要求不高的預(yù)測(cè),,這絕對(duì)是最省心省力的辦法,但是這與具體的業(yè)務(wù)深度掛鉤,,所以,,重要的事說(shuō)多遍,一定要熟悉業(yè)務(wù)和多視角觀察,。比如,,我有件事情必須要給我的領(lǐng)導(dǎo)當(dāng)面匯報(bào),然而他經(jīng)常不在辦公室,,不是在開(kāi)會(huì)就是去現(xiàn)場(chǎng)了,,或者正在哪見(jiàn)某個(gè)客戶,然而清楚的是,,他每天早上8:30-9:00之間一定會(huì)來(lái)公司打卡,,那我只要這段時(shí)間在打卡機(jī)旁候著就一定能見(jiàn)上他一面。 2,、分類(lèi)與回歸 分類(lèi)與回歸都是通過(guò)已知的數(shù)據(jù)構(gòu)建和驗(yàn)證一個(gè)函數(shù)f,,使得y=f(x),對(duì)于未知的x,通過(guò)f預(yù)測(cè)y,,不同在于回歸的輸出是連續(xù)的而分類(lèi)的輸出是離散的,。例如,我們預(yù)測(cè)明天的溫度是回歸,,而預(yù)測(cè)明天是下雨天還是晴天則是分類(lèi),。分類(lèi)方法有邏輯回歸、決策樹(shù),、支持向量機(jī),,而回歸一般會(huì)用到線性回歸。 當(dāng)然,,預(yù)測(cè)算法還有很多,,比如隱馬爾可夫(HMM),最大熵,,CRF等等,,這里也不做過(guò)多的介紹。只是需要根據(jù)預(yù)測(cè)的數(shù)據(jù)的具體情況選擇正確的方法,,這些可以從我們的算法工程師們那里得到很好的建議,,當(dāng)然前提是我們要將數(shù)據(jù)的特點(diǎn)和需要預(yù)測(cè)的東西準(zhǔn)確的告訴他們。 五,、該怎么辦,?該怎么辦是數(shù)據(jù)分析的最終目的。大多數(shù)情況下,,當(dāng)知道了問(wèn)題出在哪,,為什么出這個(gè)問(wèn)題的時(shí)候,都知道接下來(lái)該怎么辦了,。那么接下來(lái)就介紹一些即使知道哪出問(wèn)題了也不知道該怎么辦的時(shí)候可以用的方法: 1,、擬合與圖論 這是在做路線規(guī)劃的時(shí)候最常用的,比如某商場(chǎng)頻發(fā)商品被偷的事件,,我們發(fā)現(xiàn)有幾個(gè)地方的商品特容易被偷,,那可以將這些地方串連起來(lái),擬合成一條巡邏的路線給保安,。同樣,,也可以通過(guò)構(gòu)建圖并用求最短路徑的算法(Dijkstra、Floyd等)構(gòu)建巡邏的路徑,。 2,、協(xié)同過(guò)濾 協(xié)同過(guò)濾屬于是利用集體智慧的辦法,就像那個(gè)經(jīng)典的面試題一樣,,當(dāng)你遇到一個(gè)誰(shuí)也沒(méi)遇到過(guò)的問(wèn)題時(shí),你該怎么辦?那就是問(wèn)那些比你更厲害的人他們會(huì)怎么辦,。協(xié)同過(guò)濾最多的是用在推薦引擎之中,,一般的方式是尋找一個(gè)用戶的n個(gè)相似用戶,然后推薦給這個(gè)用戶他相似用戶喜歡的產(chǎn)品,,或者找到當(dāng)前用戶喜歡的前n個(gè)物品,,然后挑選出和這n個(gè)物品相似的m個(gè)物品推薦給當(dāng)前用戶。即使不用在推薦,,它的思想也很容易延伸在其他方面,,比如一個(gè)新手偵探不知道這個(gè)案件怎么破,那可以去看看柯南君類(lèi)似的案件破案的步驟,。 還有一種情況,,也是數(shù)據(jù)分析師很常見(jiàn)的。就是當(dāng)拿到數(shù)據(jù),,卻完全沒(méi)有目的,,也就是探索性分析。這種情況借助數(shù)據(jù)分析工具,,做一些大致的探索性分析,,看一下數(shù)據(jù)趨勢(shì),逐步深入,。 比如下圖用FineBI拖拽,,做探索性的可視化和數(shù)據(jù)挖掘,那都都是幾分鐘的事,。 以上介紹的,,是數(shù)據(jù)分析中的一個(gè)常規(guī)思路和可以用到的一些常規(guī)的方法。希望對(duì)讀者有所幫助,,同時(shí),,不恰當(dāng)?shù)牡胤剑矡┱?qǐng)批評(píng)指導(dǎo),。最后再次強(qiáng)調(diào),,數(shù)據(jù)分析不是算法與可視化的堆砌,需要我們對(duì)業(yè)務(wù)深入的了解,。 |
|
來(lái)自: 生財(cái)大掌柜 > 《數(shù)據(jù)》