下一篇:數(shù)據(jù)挖掘:理論與算法筆記2-數(shù)據(jù)預(yù)處理
開篇引言
這是我在edx上找到一個(gè)比較系統(tǒng)化的視頻教程,edx的課程是有時(shí)效性的,好在bilibili上有永久鏈接,不過edx除了視頻,還有練習(xí)題和字幕,交99美金還能拿個(gè)證書。因?yàn)樯婕懊嫣珡V,不可能短短幾十段視頻把所有知識(shí)點(diǎn)都講得很透徹,我針對(duì)一些重點(diǎn)也做了額外的補(bǔ)充和延展。
課程講師是清華大學(xué)副研究員袁博,講義分為十一個(gè)章節(jié)部分,每章我寫一個(gè)筆記摘錄要點(diǎn),本篇是第一章的筆記。
- 走進(jìn)數(shù)據(jù)科學(xué) - 博大精深,美不勝收
- 數(shù)據(jù)預(yù)處理 - 抽絲撥繭,去偽存真
- 從貝葉斯到?jīng)Q策樹 - 意料之外,情理之中
- 神經(jīng)網(wǎng)絡(luò) - 巨量并行,智慧無限
- 支持向量機(jī) - 數(shù)學(xué)之美,巔峰之作
- 聚類分析 - 物以類聚,人以群分
- 關(guān)聯(lián)規(guī)則 - 營(yíng)銷購(gòu)物,自有乾坤
- 推薦算法 - 察言觀色,投其所好
- 集成學(xué)習(xí) - 兼聽則明,偏聽則暗
- 進(jìn)化計(jì)算 - 大道至簡(jiǎn),萬物之本
- 美麗數(shù)據(jù)說 - 閬苑仙葩,美玉無瑕
1. 走進(jìn)數(shù)據(jù)科學(xué) - 博大精深,美不勝收
下一篇:數(shù)據(jù)挖掘:理論與算法筆記2-數(shù)據(jù)預(yù)處理
1.1 整裝待發(fā)
第一小節(jié)主要講教育的方式是指明方向,真正對(duì)知識(shí)的掌握要靠自己探索與實(shí)踐。


21世紀(jì)以來,存儲(chǔ)數(shù)據(jù)的能力和處理數(shù)據(jù)的能力實(shí)現(xiàn)了質(zhì)的飛越,但是有一個(gè)概念叫DRIP: Data rich, information poor, 據(jù)統(tǒng)計(jì)全球數(shù)據(jù)只有0.5%得到了發(fā)掘和利用。
1.2 學(xué)而不思則罔
這一小節(jié)主要介紹了一些學(xué)習(xí)資源,強(qiáng)調(diào)必須要自己主動(dòng)延伸閱讀閱讀,從中獲得靈感。
愛因斯坦曰,大學(xué)教育不是死記硬背,而是訓(xùn)練思維模型。
首先推薦了幾本書
數(shù)據(jù)挖掘概念與技術(shù)


然后強(qiáng)調(diào)要關(guān)領(lǐng)域最新動(dòng)態(tài),包括頂級(jí)國(guó)際會(huì)議ICDM, ICDE, ICML, ICDE等,還有PAKDD, SIGKDD, IJCAI等論文,最后是IEEE出版的兩份期刊: TKDE和Neural Networks and Learning Systems
Wikipedia UCI是一個(gè)Machine Learning Repository上面有很多數(shù)據(jù)集,Weka是新西蘭的一款免費(fèi)數(shù)據(jù)挖掘軟件,KDDnuggets是一個(gè)數(shù)據(jù)挖掘的網(wǎng)站,大量論文,數(shù)據(jù)等資源。
1.3 知行合一
Gartner公司對(duì)大數(shù)據(jù)的定義為3V, 即容量大,速度快,類型多 - Big data is high-volume, high-velocity and/or high-variety information assets that demand cost-effective, innovative forms of information processing that enable enhanced insight, decision making, and process automation.
從variety來講,不僅有結(jié)構(gòu)化數(shù)據(jù)也有非結(jié)構(gòu)化數(shù)據(jù),比如一段文字,圖片,聲音,視頻等非傳統(tǒng)二維表格的數(shù)據(jù)。
然后講了一大堆的應(yīng)用場(chǎng)景,不過關(guān)于應(yīng)用場(chǎng)景我了解的已經(jīng)足夠多了,就不記錄了。
1.4 從數(shù)據(jù)到知識(shí)
Open Data從何獲取? 主要靠政府公開,公開數(shù)據(jù)有兩個(gè)層面含義,一個(gè)是法律層面允許公開,第二是技術(shù)層面公開即容易獲取容易下載,不用自己寫爬蟲或者OCR. 美國(guó)政府有很多開放數(shù)據(jù)可以下載,包括教育氣象,能源,金融,地理等。

國(guó)內(nèi)ZF也有下載,我試了好幾份數(shù)據(jù)都特別坑人,能找315投訴嗎?
網(wǎng)上也能找到一些各領(lǐng)域的公開數(shù)據(jù)
數(shù)據(jù)挖掘的目的是要從海量的不完整的,充滿雜質(zhì)的數(shù)據(jù)中提取interesting useful hidden的信息,必須發(fā)現(xiàn)趣不為人知的規(guī)律,而且能找到應(yīng)用場(chǎng)景落地產(chǎn)生價(jià)值。
數(shù)據(jù)是最底層的東西,一定要經(jīng)過處理才能稱之為信息,因?yàn)閿?shù)據(jù)本身可能有很多冗余和錯(cuò)誤,信息經(jīng)過數(shù)據(jù)挖掘之后就形成知識(shí),知識(shí)結(jié)合業(yè)務(wù)領(lǐng)域模型就能幫助人們?nèi)プ鰶Q策了。
Data->Information->Knowledge->Decision Support
數(shù)據(jù)挖掘過程: Define problem->Data collection->Data preparation->Data modelling->Interpretation/Evaluation->Implement/Deploy model
1.5 分類問題
Classification
數(shù)據(jù)挖掘中的第一類問題就是Classification, 我學(xué)習(xí)機(jī)器學(xué)習(xí)的第一段代碼也是分類問題,以前做的Churn Prediction也算是這個(gè)領(lǐng)域的一個(gè)應(yīng)用。常見算法包括Decision Tree, K-Nearest Neighbour, Neural Network, Support Vector Machine等。
Classification定義如下:
Classification is a procedure in which individual items are placed into groups based on quantitative information on one or more characteristics(referred to as variables) and based on a training set of previously labeled items.
Given a training set {{x1, y1},...{xn, yn}}, produce a classifier(function) that maps any unknown object x to its class label y.
Overfitting
下圖有兩個(gè)不同的分類器,一個(gè)黑色一個(gè)紅色,顯然紅色完美的對(duì)貓狗進(jìn)行了分類,但是我們依然會(huì)選擇黑色的分類器,因?yàn)樗且粋€(gè)種平滑曲線,而紅色分類器過于復(fù)雜,我們稱之為overfitting.
Confusion Matrix
混淆矩陣用來衡量分類器分類的準(zhǔn)確程度

上面的模型對(duì)某時(shí)間進(jìn)行了100次預(yù)測(cè),預(yù)測(cè)結(jié)果45次Yes, 55次No, 實(shí)際上40次Yes, 60次No, 預(yù)測(cè)結(jié)果中將10個(gè)實(shí)際的No預(yù)測(cè)為了Yes, 將5個(gè)實(shí)際的Yes預(yù)測(cè)為了No. 由此引入了以下概念:
a. 真陽(yáng)性(True Positive, TP): 真實(shí)值和預(yù)測(cè)值都是正例
b. 真陰性(True Negative, TN): 真實(shí)值和預(yù)測(cè)值都是負(fù)例
c. 假陽(yáng)性(False Positive, FP): 真實(shí)值為負(fù)例而預(yù)測(cè)值為正例
d. 假陰性(False Negative, FN): 真實(shí)值為正例而預(yù)測(cè)值為負(fù)例
進(jìn)而衍生出系列評(píng)估指標(biāo):
a. 正確率(Accuracy): 正確分類的樣本比例
(TP+TN)/Total=(35+50)/100=85%
b. 錯(cuò)誤率(Error Rate): 錯(cuò)誤分類的樣本比例
(FP+FN)/Total=(5+10)/100=15%
c. 精準(zhǔn)率(Precision): 實(shí)際正例在預(yù)測(cè)正例中的占比
TP/(TP+FP)=35/(35+10)=77.77%
d. 真陽(yáng)率(Ture Positive Rate, TPR): 也叫召回率(Recall), 正確預(yù)測(cè)的正例在實(shí)際正例中的占比
TP/(TP+FN) = 35/(35+5)=87.5%
e. 真陰率(True Negative Rate, TNR): 正確預(yù)測(cè)的負(fù)例在實(shí)際負(fù)例中的占比
TN/(TN+FP)=50/(50+5)=91%
f. 假陽(yáng)率(False Positive Rate): 錯(cuò)誤預(yù)測(cè)為正例在實(shí)際正例中的占比
FP/(TP+FN)=5/(35+5)=12.5%
g. 假陰率(False Negative Rate, FNR): 錯(cuò)誤預(yù)測(cè)為負(fù)例在實(shí)際負(fù)例中的占比
FN/(TN+FP)=5/(50+5)=9%
我們做搜索引擎的時(shí)候也會(huì)用上精準(zhǔn)率和召回率這兩個(gè)指標(biāo),在信息檢索領(lǐng)域稱之為查準(zhǔn)率和查全率當(dāng)用戶屬于關(guān)鍵詞咖啡,如果放寬匹配規(guī)則可能出現(xiàn)咖啡色窗簾這樣的搜索結(jié)果,顯然這不是用戶期望看到的,此時(shí)召回率上升而精準(zhǔn)率下降,一般來說這兩個(gè)指標(biāo)都是此消彼長(zhǎng)的關(guān)系。
現(xiàn)在用TPR和FPR組合成一個(gè)指標(biāo)繪制圖形,橫軸是FPR, 縱軸是TPR, 會(huì)得到一個(gè)ROC(Receiver Operating Characteristic)曲線,曲線下方的面積為AUC(Area Under the Curve)

為正例預(yù)測(cè)設(shè)定一個(gè)閾值(比如概率大于0.7時(shí)判斷為正例)就可以得到一組(FPR, TPR)的坐標(biāo), 隨著閾值的逐漸減小,越來越多的實(shí)例被劃分為正類,但是這些正類中同樣也摻雜著實(shí)際的負(fù)實(shí)例,即TPR和FPR會(huì)同時(shí)增大。閾值最大時(shí),對(duì)應(yīng)坐標(biāo)點(diǎn)為(0,0),閾值最小時(shí),對(duì)應(yīng)坐標(biāo)點(diǎn)(1,1)。
所以ROC可以用來確定劃定正樣本的概率邊界選擇什么閾值比較合適,而且它有一個(gè)很好的特性,當(dāng)測(cè)試集中的正負(fù)樣本的分布變化的時(shí)候,ROC曲線能夠保持不變。當(dāng)x=y的時(shí)候就是隨機(jī)預(yù)測(cè)五五分的概率了,這條線是左下角到右上角的連線,所以AUC的取值范圍在0.5到1之間,AUC越大,分類器效果越好。
在實(shí)際應(yīng)用場(chǎng)景中,要特別注意不同場(chǎng)景下TPR和TNR的影響力會(huì)不一樣,是把一封正常郵件錯(cuò)判為垃圾郵件從而放進(jìn)垃圾箱影響大還是一封垃圾郵件未能放進(jìn)垃圾箱影響大? 顯然前者。是把一個(gè)發(fā)燒病人判斷成癌癥患者影響大還是把一個(gè)癌癥患者診斷為發(fā)燒影響大?顯然后者
1.6 聚類及其他數(shù)據(jù)挖崛問題
聚類(Clustering)和分類(Classification)非常相似,但是前者是unsupervised, 不用lable, 而后者是supervised. 比如零售連鎖店要做虛擬標(biāo)桿店就首先要把相似的店鋪?zhàn)鲆粋€(gè)聚類,聚類是根據(jù)距離度量來分組的,我們熟悉的距離度量方式有歐式距離,曼哈頓距離,馬氏距離等。聚類算法包括K-Means, Sequential Leader, Affinity Propagation等。
比較常見的幾種聚類方式是層次聚類(Hierarchical ),劃分聚類(Partition),密度聚類(Density-based),模型聚類(Model-based)
wikipedia有非常清晰的描述,我就從這借幾張圖加以說明:
層次聚類: 對(duì)象總是和與之臨近的對(duì)象相關(guān)性更強(qiáng),這種算法計(jì)算每個(gè)對(duì)象和其他對(duì)象之間的距離,將距離最短的兩個(gè)對(duì)象合并成一類,再重復(fù)這個(gè)步驟直到所有的對(duì)象合并成單個(gè)類別為止。

劃分聚類: 劃分聚類的目標(biāo)就是讓類內(nèi)的對(duì)象都足夠近,類間的對(duì)象都足夠遠(yuǎn)。代表算法就是K-Means的實(shí)現(xiàn),K-Means適用于numerical類型數(shù)據(jù),主要發(fā)現(xiàn)圓形或者球星簇,但需要手工輸入類目數(shù),對(duì)初始值設(shè)置很敏感, 對(duì)噪音和離群值也非常敏感。

密度聚類: 思路就是頂一個(gè)距離半徑最少有多少個(gè)對(duì)象,然后把可以達(dá)到的對(duì)象都連起來判定為同類,簡(jiǎn)單的說就是畫圈,需要定義兩個(gè)參數(shù),圈的最大半徑和圈內(nèi)最少容納的對(duì)象數(shù)量。
DBSCAN(Density-Based Spatial Clustering of Applications with Noise)就是其典型方法,DBSCAN的擴(kuò)展叫OPTICS(Ordering Points To Identify Clustering Structure)通過優(yōu)先對(duì)高密度(high density)進(jìn)行搜索,然后根據(jù)高密度的特點(diǎn)設(shè)置參數(shù)
模型聚類: 指基于概念模型或者神經(jīng)網(wǎng)絡(luò)模型的方法,同一類的數(shù)據(jù)屬于同一種概率分布。最典型方法就是高斯混合模型(GMM,Gaussian Mixture Models)

回歸(Regression)
最簡(jiǎn)單的線性回歸(Linear Regression)擬合出來的不一定是直線,可以是多項(xiàng)式擬合曲線,Linear指的僅是權(quán)重和變量之間的線性關(guān)系。回歸也會(huì)遇到overfitting的問題,下圖中中間是最好的,左邊underfitting, 右邊overfitting.
挖掘出來的信息要求可視化,而且具備可解釋性,才能發(fā)揮出價(jià)值。數(shù)據(jù)挖掘最具挑戰(zhàn)也最麻煩的部分一定是數(shù)據(jù)的預(yù)處理環(huán)節(jié),數(shù)據(jù)的缺失,數(shù)據(jù)的異常都是臟數(shù)據(jù)。
1.7 隱私保護(hù)與并行計(jì)算
此節(jié)可忽略
1.8 迷霧重重
講了一些有趣的case study, 對(duì)數(shù)據(jù)分析解讀的誤區(qū),其中有一個(gè)例子我以前看過,就是轟炸機(jī)根據(jù)單孔安裝護(hù)甲的誤區(qū),1943年,美國(guó)空軍向美國(guó)統(tǒng)計(jì)學(xué)家亞伯拉罕?沃爾德(Abraham Wald)尋求加固飛機(jī)的建議。飛機(jī)只能搭載有限重量的護(hù)甲,當(dāng)時(shí)已有的建議是將護(hù)甲裝在機(jī)翼、機(jī)身中央和尾部。為何選擇這些部位?因?yàn)橥瓿扇蝿?wù)返航的那些轟炸機(jī)在這些部位布滿了彈孔。
沃爾德解釋稱,這樣做是錯(cuò)誤的??哲娭砸姷酵瓿扇蝿?wù)返航的那些轟炸機(jī)在這些部位布滿彈孔,是因?yàn)楫?dāng)飛機(jī)被擊中機(jī)翼、尾部或機(jī)身中央時(shí),它仍然能返航。沃爾德當(dāng)時(shí)問道,那些被擊中其他部位的飛機(jī)哪里去了?它們始終沒有返航。沃爾德的建議是,將護(hù)甲裝在返航的飛機(jī)毫無損傷的那些部位。
講義中做了一個(gè)有趣的延伸,很多成功者分享自己的成功經(jīng)驗(yàn),但是往往這是不可復(fù)制的個(gè)例,因?yàn)橐粚⒐Τ扇f骨枯,能出來講得人都是那些幸存飛回來的轟炸機(jī),還有無數(shù)與之類似的轟炸機(jī)直接墜亡在英吉利海峽了,根本就沒有機(jī)會(huì)向公眾講述自己的經(jīng)歷。
橫看成嶺側(cè)成峰,高低遠(yuǎn)近各不同,不識(shí)廬山真面目,只緣身在此山中??磾?shù)據(jù)不能以偏概全,必須要從不同層次不同角度綜合考慮得出客觀真實(shí)的結(jié)論。
下一篇:數(shù)據(jù)挖掘:理論與算法筆記2-數(shù)據(jù)預(yù)處理
references:
聚類:層次聚類、基于劃分的聚類(k-means)、基于密度的聚類、基于模型的聚類
Cluster analysis