上一篇: 數(shù)據(jù)挖掘:理論與算法筆記1-走進數(shù)據(jù)科學
下一篇: [數(shù)據(jù)挖掘:理論與算法筆記3-從貝葉斯到?jīng)Q策樹]
(http://m.itdecent.cn/p/61e5ea13dfc8)
2. 數(shù)據(jù)預處理: 抽絲剝繭,去偽存真
2.1 數(shù)據(jù)清洗
數(shù)據(jù)缺失有以下幾種類型
a. Missing completely at random: 缺失的概率是隨機的,比如門店的計數(shù)器因為斷電斷網(wǎng)等原因在某個時段數(shù)據(jù)為空。
b. Missing conditionally at random: 數(shù)據(jù)是否缺失取決于另外一個屬性,比如一些女生不愿意填寫自己的體重。
c. Not missing at random: 數(shù)據(jù)缺失與自身的值有關(guān),比如高收入的人可能不愿意填寫收入。
處理的辦法也有幾種類型
a. 刪數(shù)據(jù),如果缺失數(shù)據(jù)的記錄占比比較小,直接把這些記錄刪掉完事。
b. 手工填補,或者重新收集數(shù)據(jù),或者根據(jù)domain knowledge來補數(shù)據(jù)。
c. 自動填補,簡單的就是均值填充,或者再加一個概率分布看起來更真實些,也可以結(jié)合實際情況通過公式計算,比如門店計數(shù)缺失,我們就是參考過往的客流數(shù)據(jù),轉(zhuǎn)化數(shù)據(jù),缺失時段的銷售額,用一個簡單公式自動計算回補。
Outlier(離群點)
Outlier在數(shù)據(jù)挖掘中是一件很麻煩的事情,比如我們收集了一堆身高數(shù)據(jù),其中有一個人是姚明,他的身高值就會顯得特別突兀。這對某些算法影響很大,比如最小二乘,
2.2 異常值與重復數(shù)據(jù)監(jiān)測
局部離群點因子(Local Outlier Factor, LOF)
對比某一點的局部密度和臨近區(qū)域的密度, A點的局部密度遠低于其臨近區(qū)域的密度,所以A就是一個離群點
LOF算法邏輯如下:
a. 計算k-distance of A:點A的第k距離,也就距離A第k遠的點的距離,不包括A, 記為k-distance(p)
b. 計算k-distance neighborhood of A:點A的第k距離鄰域,就是A的第k距離以內(nèi)的所有點,包括第k距離, 記為Nk(A) [k為下角標]
c. 計算reachability-distance:可達距離,若小于第k距離,則可達距離為第k距離,若大于第k距離,則可達距離為真實距離

d. 計算local reachability density:局部可達密度, 密度越高則可達距離之和越小,而LRD越大

e. 計算local outlier factor: 局部離群因子


Duplicate Records
如果高度疑似的樣本是挨著的,就可以用滑動窗口對比,為了讓相似記錄相鄰,可以每條記錄生成一個hash key, 根據(jù)key去排序。
2.3 類型轉(zhuǎn)換與采樣
經(jīng)過了缺失填充和去重,有了error free的數(shù)據(jù)集之后還需要做一些轉(zhuǎn)換工作,比如說類型。數(shù)據(jù)類型有Continues,Discrete,Ordinal(比如優(yōu)良中差), Nominal(比如職業(yè)), Nominal比較特殊,我們用one-hot encoding就好了。
采樣
為了解決數(shù)據(jù)庫IO瓶頸,可以通過對數(shù)據(jù)采樣來降低時間復雜度,Aggregation也是減少數(shù)據(jù)量的一種方式。
大多數(shù)機器學習算法假設數(shù)據(jù)是均勻分布的,實際上經(jīng)常會遇到不平衡數(shù)據(jù)集,,此時多數(shù)類主導少數(shù)類,分類器更偏向于多數(shù)類。當數(shù)據(jù)量足夠大的時候應當考慮減少多數(shù)類的大小來平衡數(shù)據(jù)集,這叫欠采樣,當數(shù)據(jù)量不足時應該嘗試增加稀有樣本數(shù)量來平衡數(shù)據(jù)集,這叫過采樣。如果少數(shù)類樣本實在采集不到了,考慮通過隨機過采樣算法合成少數(shù)類,比如SMOTE(Synthetic Minority Oversampling Technique)
整體準確率不適用與不平衡數(shù)據(jù)集,需要引入新的度量模式比如G-mean, 它會看正類上的準確率,再看負類上的準確率,然后兩者相乘。

另一種度量模式是F-measure, 常見于衡量推薦算法。F-Measure是Precision和Recall加權(quán)調(diào)和平均:


2.4 數(shù)據(jù)描述與可視化
正則化
因為數(shù)據(jù)的衡量單位不一,可以用Normalization把數(shù)據(jù)映射到[0.1]區(qū)間,常見的有min-max normalization和z-score normalization.
均值度量
數(shù)據(jù)的一般性描述有mean, median, mode, variance.
mean是均值,median取數(shù)據(jù)排序后在中間位置的值,避免因為極端離群點影響客觀評價, mode是出現(xiàn)頻率最高的元素,其實用的比較少,variance則是衡量數(shù)據(jù)集與其均值的偏離。
數(shù)據(jù)相關(guān)性
統(tǒng)計學之父Pearson有兩個相關(guān)系數(shù)公式
Pearson correlation coefficient如下:

r是一個-1到1之間的值,r>0則正相關(guān),r<0則負相關(guān), 注意r=0嚴格意義也不能說不相關(guān),只能說非線性相關(guān)。
Pearson chi-square公式如下:

這兩公式都是計算相關(guān)性的,顯然前者適用與有metric data的情況,后者適用于分類統(tǒng)計的情況。
可視化
一維數(shù)據(jù)圓餅圖,柱狀圖;二維數(shù)據(jù)散點圖;三維數(shù)據(jù)用三維坐標呈現(xiàn);高維數(shù)據(jù)需要先做轉(zhuǎn)換或映射,比如用matlab的Box Plots,也可以用平行坐標呈現(xiàn)。
最后介紹了兩個軟件
CiteSpace(呈現(xiàn)文章引用情況), Gephi可以把元素之間關(guān)系用網(wǎng)絡形式展現(xiàn)(如社交關(guān)系),下圖為Gephi生成:

要對Gephi了解更多可以看底部reference中知乎的一篇文章。
2.5 特征選擇
這節(jié)開始介紹Feature Selection和Feature Extraction兩個核心算法
當我們做特定分析的時候,可能屬性非常多,但有些屬性是不相關(guān)的,有些屬性是重復的,所以我們需要用Feature Selection挑選出來最相關(guān)的屬性降低問題難度。
熵增益(Entropy Information Gain)
假設我們遇到的特定問題是要猜測某個人的性別,男女比例的概率各一半,如果沒有任何額外信息我們隨機猜測的結(jié)果只能是五五分。再假設有60%的人不抽煙,40%的人是煙民,而且抽煙的人95%是男人,5%是女人,不抽煙的人當中80%是女人,20%是男人。知道一個是否抽煙以后再判斷他/她的性別就有把握多了。
此處引入熵(Entropy)的概率來衡量系統(tǒng)的不確定性,下圖第一行是計算熵的公式,如果不知道是否抽煙的信息,則熵值為1,即不確定性最高。然后分別計算出不抽煙人群的熵值為0.7219,抽煙人群的熵值為0.2864,整體熵值為0.5477, 1-0.5477=0.4523, 這個數(shù)字就是信息增量(Information Gain)

Branch and Bound(分支定界)
如果我們想從n個屬性中挑選出m個最優(yōu)屬性,需要注意算法復雜度會隨n的增長呈現(xiàn)指數(shù)級爆炸增長,計算量會變得非常大,為了降低復雜度這里引入了分支定界的剪枝算法。比如我們要從5個屬性中挑選出兩個相關(guān)性最強的屬性,可以先畫一個top-down的搜索樹,每當往下推一層就減少一個屬性,根據(jù)屬性的單調(diào)性假設,屬性越少效能越低,所以如果發(fā)現(xiàn)節(jié)點(1,3,4,5)小于左邊某個只有兩個屬性的節(jié)點(2,3)的效能,則可以忽略節(jié)點(1,3,4,5)下面的計算,把這一整支都直接刪除,從而減少計算量。
特征選擇還有sequential forward, sequential backward, simulated annealing(模擬退火), tabu search(競技搜索), genetic algorithms(遺傳算法)等方式去優(yōu)化。
2.6 主成分分析
這一節(jié)講Feature Extraction, 圖像深度識別提取edge就屬于Feature Extraction.
Principal Component Analysis(主成分分析)
PCA又是Pearson最早提出的,主要目的是降維,分析主成分提取最大的個體差異變量,削減回歸分析和聚類分析中變量的數(shù)目,方式是通過正交變換將一系列可能線性相關(guān)的變量轉(zhuǎn)換為一組線性不相關(guān)的新變量。
我們先看一個二維圖像的例子,左邊是原始數(shù)據(jù),橫軸和縱軸可以當作高和寬,經(jīng)過轉(zhuǎn)換,實際是把坐標順時針轉(zhuǎn)動了45度,這樣一來縱軸的差異就很小了, 這需要一點線性代數(shù)知識來生成轉(zhuǎn)置矩陣。





經(jīng)過PCA轉(zhuǎn)換后會發(fā)現(xiàn)北愛爾蘭是個離群點

看回前面的表確實北愛爾蘭人吃更多fresh patatoes, 但是少消耗很多fresh fruits, cheese, fish and alcoholic drinks 想像一下,不管多少維空間,我們可以用一根投影軸線插進去,讓空間中的每個點與這個線上某個點的距離的平方和最小,線上的這個點就是高維空間的投影了。

2.7 線性判別分析
PCA屬于非監(jiān)督學習,不考慮class information, 如果是有標簽的數(shù)據(jù)我們就要用LDA了, 它能夠保留區(qū)分信息。
Linear Discriminant Analysis
LDA的原理是,將帶上標簽的數(shù)據(jù)(點),通過投影的方法,投影到維度更低的空間中,使得投影后的點,會形成按類別區(qū)分,一簇一簇的情況,相同類別的點,將會在投影后的空間中更接近。雖然也是降維,但好的LDA算法對不同類別是有明顯的區(qū)分度的。


具體的推導我就偷懶省去了,有興趣的可以看底部reference中的鏈接。
上一篇: 數(shù)據(jù)挖掘:理論與算法筆記1-走進數(shù)據(jù)科學
下一篇: [數(shù)據(jù)挖掘:理論與算法筆記3-從貝葉斯到?jīng)Q策樹]
(http://m.itdecent.cn/p/61e5ea13dfc8)
references:
機器學習-異常檢測算法(二):Local Outlier Factor
局部異常因子算法-LOF
Local outlier factor
Fast Branch & Bound Algorithm in Feature Selection
Principal Component AnalysisExplained Visually
降維算法二:LDA(Linear Discriminant Analysis)
介紹用Gephi進行數(shù)據(jù)可視化