數(shù)據(jù)挖掘:理論與算法筆記2-數(shù)據(jù)預處理

上一篇: 數(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: 局部離群因子

下圖來自wikipedia, 上面的數(shù)字標明了相應點的LOF得分,可以讓人對LOF有一個直觀的印象。

Duplicate Records

如果高度疑似的樣本是挨著的,就可以用滑動窗口對比,為了讓相似記錄相鄰,可以每條記錄生成一個hash key, 根據(jù)key去排序。

2.3 類型轉(zhuǎn)換與采樣

經(jīng)過了缺失填充和去重,有了error free的數(shù)據(jù)集之后還需要做一些轉(zhuǎn)換工作,比如說類型。數(shù)據(jù)類型有ContinuesDiscrete,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)和平均:

當參數(shù)α=1時就是最常見的F1

2.4 數(shù)據(jù)描述與可視化

正則化

因為數(shù)據(jù)的衡量單位不一,可以用Normalization把數(shù)據(jù)映射到[0.1]區(qū)間,常見的有min-max normalizationz-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 SelectionFeature 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)置矩陣。

下面講一點數(shù)學(稍微有點繞,還求助了師兄,我真是愧為數(shù)學系的),我們希望Y是一個對角陣,如果要讓坐標變化就要讓原矩陣X乘以一個旋轉(zhuǎn)矩陣P, n只是一個scale可以忽略。要確保Y是一個對角陣,那么P和Q必須互逆,即Q就是P的轉(zhuǎn)置矩陣。

從另外一個角度再看,我們希望原點和映射點的距離的平方和最小,即目標函數(shù)J(e)最小,經(jīng)過幾步推到可以看到要讓J(e)最小其實也就是要讓右下角的S最大。

這就成了一個帶條件的約束問題,可以用拉格朗日乘數(shù)法來求解。對e進行求導,S是一個方陣,e是一個向量,λ是一個數(shù)值(也就是拉格朗日乘數(shù)),所以這是一個矩陣分解問題。再看上一張圖的推導,其實我們就是要將λ最大化,而λ也就是特征值。

再看一個三維圖像的例子,經(jīng)過映射,pc1的差異最明顯,而pc3被拋棄了,從而變成了二維圖像

我們甚至可以看一個17維的轉(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ū)分度的。


LDA的目標函數(shù)如下: 分類的目標是,使得類別內(nèi)的點距離越近越好(集中),類別間的點越遠越好。分母表示每一個類別內(nèi)的方差之和,方差越大表示一個類別內(nèi)的點越分散,分子為兩個類別各自的中心點的距離的平方,我們最大化J(w)就可以求出最優(yōu)的w了, 求解同樣會用到拉格朗日乘數(shù)法

具體的推導我就偷懶省去了,有興趣的可以看底部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ù)可視化

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 機器學習是做NLP和計算機視覺這類應用算法的基礎(chǔ),雖然現(xiàn)在深度學習模型大行其道,但是懂一些傳統(tǒng)算法的原理和它們之間...
    在河之簡閱讀 20,938評論 4 65
  • 機器學習是做NLP和計算機視覺這類應用算法的基礎(chǔ),雖然現(xiàn)在深度學習模型大行其道,但是懂一些傳統(tǒng)算法的原理和它們之間...
    城市中迷途小書童閱讀 1,207評論 0 11
  • 一日一景 幽深古巷草上墻, 半技秋葉映淺黃。 文人騷客常造訪, 千年文脈個中藏。
    吉光片羽_9bc2閱讀 591評論 5 20
  • 心里忐忑,一直以來都害怕被落單,每次都要花很大的力氣融入一個集體,真的很尷尬,明天會好過嗎,咬緊牙關(guān)一直往前沖吧,...
    符小喵閱讀 175評論 0 0
  • 雨中花 細絲穿花針, 繡出新江城。 百卉沾露珠, 搖曳弄精神。 人流滿街巷, 傘花綻繽紛。 喜看紅濕處, 油然放歌...
    紅葉陳建華閱讀 153評論 0 0

友情鏈接更多精彩內(nèi)容