
數(shù)據(jù)挖掘領(lǐng)域經(jīng)典算法
偶見網(wǎng)頁數(shù)據(jù)挖掘領(lǐng)域十大經(jīng)典算法,心血來潮,在學習的同時也想驗驗有哪些知道哪些實現(xiàn)過。
2006年12月,國際權(quán)威的學術(shù)組織the IEEE International Conference on Data Mining (ICDM)閑著沒事或者為了提高點會議知名度評選了數(shù)據(jù)挖掘領(lǐng)域的十大經(jīng)典算法。首先來看看參加評選的18個候選算法。
1:C4.5
C4.5就是一個決策樹算法,它是決策樹(決策樹也就是做決策的節(jié)點間的組織方式像一棵樹,其實是一個倒樹)核心算法ID3的改進算法,所以基本上了解了一半決策樹構(gòu)造方法就能構(gòu)造它。決策樹構(gòu)造方法其實就是每次選擇一個好的特征以及分裂點作為當前節(jié)點的分類條件。C4.5比ID3改進的地方時:
1) ID3選擇屬性用的是子樹的信息增益(這里可以用很多方法來定義信息,ID3使用的是熵(entropy)(熵是一種不純度度量準則)),也就是熵的變化值.而C4.5用的是信息增益率。也就是多了個率嘛。一般來說率就是用來取平衡用的,就像方差起的作用差不多,比如有兩個跑步的人,一個起點是10m/s的人、其1s后為20m/s;另一個人起速是1m/s、其1s后為2m/s。如果緊緊算差值那么兩個差距就很大了,如果使用速度增加率(加速度)來衡量,2個人就是一樣了。在這里,其克服了用信息增益選擇屬性時偏向選擇取值多的屬性的不足。
2) 在樹構(gòu)造過程中進行剪枝,我在構(gòu)造決策樹的時候好討厭那些掛著幾個元素的節(jié)點。對于這種節(jié)點,干脆不考慮最好,不然很容易導致overfitting。
3) 對非離散數(shù)據(jù)都能處理,這個其實就是一個個式,看對于連續(xù)型的值在哪里分裂好。也就是把連續(xù)性的數(shù)據(jù)轉(zhuǎn)化為離散的值進行處理。
4) 能夠?qū)Σ煌暾麛?shù)據(jù)進行處理,這個重要也重要,其實也沒那么重要,缺失數(shù)據(jù)采用一些方法補上去就是了。
CART也是一種決策樹算法!相對于上著有條件實現(xiàn)一個節(jié)點下面有多個子樹的多元分類,CART只是分類兩個子樹,這樣實現(xiàn)起來稍稍簡便些。所以說CART算法生成的決策樹是結(jié)構(gòu)簡潔的二叉樹。
3:KNN(K Nearest Neighbours)
這個很簡單,就是看你周圍的K個人(樣本)那個類別的人占的多,那個多那我也是那個多的。實現(xiàn)起來就是對每個訓練樣本都計算與其相似度,選擇相似度Top-K個訓練樣本出來,看這K個樣本中那個類別的多些,誰多跟誰。
4:Na?ve Bayes(樸素貝葉斯NB)
NB認為各個特征是獨立的,誰也不關(guān)誰的事。所以一個樣本(特征值的集合,比如”數(shù)據(jù)結(jié)構(gòu)”出現(xiàn)2詞,“文件”出現(xiàn)1詞),可以通過對其所有出現(xiàn)特征在給定類別的概率相乘。比如“數(shù)據(jù)結(jié)構(gòu)”出現(xiàn)在類1的概率為0.5,“文件”出現(xiàn)在類1的概率為0.3,則可認為其屬于類1的概率為0.5*0.5*0.3。
5:Support Vector Machine(支持向量機SVM)
SVM就是想找一個分類得最”好”的分類線/分類面(最近的一些兩類樣本到這個”線”的距離最遠)。這個沒具體實現(xiàn)過,上次聽課,那位老師自稱自己實現(xiàn)了SVM,敬佩其鉆研精神。常用的工具包是LibSVM,SVMLight,MySVM.
6:EM(期望最大化)
這個我認為就是假設(shè)數(shù)據(jù)時由幾個高斯分布組成的,所以最后就是要求幾個高斯分布的參數(shù)。通過先假設(shè)幾個值,然后通過反復迭代,以期望得到最好的擬合。
7:Apriori
這個是做關(guān)聯(lián)規(guī)則用的。不知道為什么,一提高關(guān)聯(lián)規(guī)則我就想到購物籃數(shù)據(jù)。這個沒實現(xiàn)過,不過也還要理解,它就是通過支持度和置信度兩個量來工作,不過對于Apriori,它通過頻繁項集的一些規(guī)律(頻繁項集的子集必定是頻繁項集等等啦)來減少計算復雜度。
8:FP-Tree(Mining frequent patterns without candidate generation)
這個也不太清楚。FP-growth算法(Frequent Pattern-growth)使用了一種緊縮的數(shù)據(jù)結(jié)構(gòu)來存儲查找頻繁項集所需要的全部信息。采用算法:將提供頻繁項集的數(shù)據(jù)庫壓縮到一棵FP-tree來保留項集關(guān)聯(lián)信息,然后將壓縮后的數(shù)據(jù)庫分成一組條件數(shù)據(jù)庫(一種特殊類型的投影數(shù)據(jù)庫),每個條件數(shù)據(jù)庫關(guān)聯(lián)一個頻繁項集。
9:PageRank
大名鼎鼎的PageRank大家應(yīng)該都知道(Google靠此專利發(fā)家,其實也不能說發(fā)家啦!)。對于這個算法我的理解就是:如果我指向你(網(wǎng)頁間的連接)則表示我承認你,則在計算你的重要性的時候可以加上我的一部分重要性(到底多少,要看我自己有多少和我共承認多少個人)。通過反復這樣來,可以求的一個穩(wěn)定的衡量各個人(網(wǎng)頁)重要性的值。不過這里必須要做些限制(一個人的開始默認重要性都是1),不然那些值會越來越大越來越大。
10:HITS
HITS也是一個連接分析算法,它是由IBM首先提出的。在HITS,每個節(jié)點(網(wǎng)頁)都有一個重要度和權(quán)威度(Hubs and authorities,我也忘了具體的翻譯是什么了)。通過反復通過權(quán)威度來求重要度,通過重要度來求權(quán)威度得到最后的權(quán)威度和重要度。
11:K-Means
K-Means是一種最經(jīng)典也是使用最廣泛的聚類方法,時至今日任然有很多基于其的改進模型提出。K-Means的思想很簡單,對于一個聚類任務(wù)(你需要指明聚成幾個類,當然按照自然想法來說不應(yīng)該需要指明類數(shù),這個問題也是當前聚類任務(wù)的一個值得研究的課題),首先隨機選擇K個簇中心,然后反復計算下面的過程直到所有簇中心不改變(簇集合不改變)為止:步驟1:對于每個對象,計算其與每個簇中心的相似度,把其歸入與其最相似的那個簇中。
步驟2:更新簇中心,新的簇中心通過計算所有屬于該簇的對象的平均值得到。
k-means 算法的工作過程說明如下:首先從n個數(shù)據(jù)對象任意選擇 k 個對象作為初始聚類中心;而對于所剩下其它對象,則根據(jù)它們與這些聚類中心的相似度(距離),分別將它們分配給與其最相似的(聚類中心所代表的)聚類;然后再計算每個所獲新聚類的聚類中心(該聚類中所有對象的均值);不斷重復這一過程直到標準測度函數(shù)開始收斂為止。一般都采用均方差作為標準測度函數(shù). k個聚類具有以下特點:各聚類本身盡可能的緊湊,而各聚類之間盡可能的分開。
12:BIRCH
BIRCH也是一種聚類算法,其全稱是Balanced Iterative Reducing and Clustering using Hierarchies。BIRCH也是只是看了理論沒具體實現(xiàn)過。是一個綜合的層次聚類特征(Clustering Feature, CF)和聚類特征樹(CF Tree)兩個概念,用于概括聚類描述。聚類特征樹概括了聚類的有用信息,并且占用空間較元數(shù)據(jù)集合小得多,可以存放在內(nèi)存中,從而可以提高算法在大型數(shù)據(jù)集合上的聚類速度及可伸縮性。
BIRCH算法包括以下兩個階段:
1)掃描數(shù)據(jù)庫,建立動態(tài)的一棵存放在內(nèi)存的CF Tree。如果內(nèi)存不夠,則增大閾值,在原樹基礎(chǔ)上構(gòu)造一棵較小的樹。
2)對葉節(jié)點進一步利用一個全局性的聚類算法,改進聚類質(zhì)量。
由于CF Tree的葉節(jié)點代表的聚類可能不是自然的聚類結(jié)果,原因是給定的閾值限制了簇的大小,并且數(shù)據(jù)的輸入順序也會影響到聚類結(jié)果。因此需要對葉節(jié)點進一步利用一個全局性的聚類算法,改進聚類質(zhì)量。
13:AdaBoost
AdaBoost做分類的一般知道,它是一種boosting方法。這個不能說是一種算法,應(yīng)該是一種方法,因為它可以建立在任何一種分類算法上,可以是決策樹,NB,SVM等。
Adaboost是一種迭代算法,其核心思想是針對同一個訓練集訓練不同的分類器(弱分類器),然后把這些弱分類器集合起來,構(gòu)成一個更強的最終分類器(強分類器)。其算法本身是通過改變數(shù)據(jù)分布來實現(xiàn)的,它根據(jù)每次訓練集之中每個樣本的分類是否正確,以及上次的總體分類的準確率,來確定每個樣本的權(quán)值。將修改過權(quán)值的新數(shù)據(jù)集送給下層分類器進行訓練,最后將每次訓練得到的分類器最后融合起來,作為最后的決策分類器。使用adaboost分類器可以排除一些不必要的訓練數(shù)據(jù),并將關(guān)鍵放在關(guān)鍵的訓練數(shù)據(jù)上面。
14:GSP
GSP,全稱為Generalized Sequential Pattern(廣義序貫?zāi)J?,是一種序列挖掘算法。對于序列挖掘沒有仔細看過,應(yīng)該是基于關(guān)聯(lián)規(guī)則的吧!網(wǎng)上是這樣說的:
GSP類似于Apriori算法,采用冗余候選模式的剪除策略和特殊的數(shù)據(jù)結(jié)構(gòu)-----哈希樹來實現(xiàn)候選模式的快速訪存。
GSP算法描述:
1)掃描序列數(shù)據(jù)庫,得到長度為1的序列模式L1,作為初始的種子集。
2)根據(jù)長度為i 的種子集Li ,通過連接操作和修剪操作生成長度為i+1的候選序列模式Ci+1;然后掃描序列數(shù)據(jù)庫,計算每個候選序列模式的支持度,產(chǎn)生長度為i+1的序列模式Li+1,并將Li+1作為新的種子集。
3)重復第二步,直到?jīng)]有新的序列模式或新的候選序列模式產(chǎn)生為止。
產(chǎn)生候選序列模式主要分兩步:
連接階段:如果去掉序列模式s1的第一個項目與去掉序列模式s2的最后一個項目所得到的序列相同,則可以將s1與s2進行連接,即將s2的最后一個項目添加到s1中。
修切階段:若某候選序列模式的某個子序列不是序列模式,則此候選序列模式不可能是序列模式,將它從候選序列模式中刪除。
候選序列模式的支持度計算:對于給定的候選序列模式集合C,掃描序列數(shù)據(jù)庫,對于其中的每一條序列s,找出集合C中被s所包含的所有候選序列模式,并增加其支持度計數(shù)。
15:PrefixSpan
16:CBA
暈,還以為是Chinese Basketball Association呢!原來CBA(classification based on association)是基于關(guān)聯(lián)規(guī)則發(fā)現(xiàn)方法的分類算法。該算法分兩個步驟構(gòu)造分類器。第一步:發(fā)現(xiàn)所有形如xi1∧x => Ci 的關(guān)聯(lián)規(guī)則,即右部為類別屬性值的類別關(guān)聯(lián)規(guī)則(classification association rules,CAR)。第二步:從已發(fā)現(xiàn)的CAR中選擇高優(yōu)先度的規(guī)則來覆蓋訓練集,也就是說,如果有多條關(guān)聯(lián)規(guī)則的左部相同,而右部為不同的類,則選擇具有最高置信度的規(guī)則作為可能規(guī)則。
18:gSpan
這兩位都不怎么了解。Finding reduct是粗糙集約減算法。gSpan是圖挖掘算法。
當然最后奪得前十名頭銜的分別是:C4.5,K-Means,SVM,Apriori,EM,PageRank,AdaBoost,KNN,NB和CART。
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
SQL Server 中 CONVERT 函數(shù)的日期轉(zhuǎn)換:從基礎(chǔ)用法到實戰(zhàn)優(yōu)化 在 SQL Server 的數(shù)據(jù)處理中,日期格式轉(zhuǎn)換是高頻需求 —— 無論 ...
2025-09-18MySQL 大表拆分與關(guān)聯(lián)查詢效率:打破 “拆分必慢” 的認知誤區(qū) 在 MySQL 數(shù)據(jù)庫管理中,“大表” 始終是性能優(yōu)化繞不開的話題。 ...
2025-09-18CDA 數(shù)據(jù)分析師:表結(jié)構(gòu)數(shù)據(jù) “獲取 - 加工 - 使用” 全流程的賦能者 表結(jié)構(gòu)數(shù)據(jù)(如數(shù)據(jù)庫表、Excel 表、CSV 文件)是企業(yè)數(shù)字 ...
2025-09-18DSGE 模型中的 Et:理性預期算子的內(nèi)涵、作用與應(yīng)用解析 動態(tài)隨機一般均衡(Dynamic Stochastic General Equilibrium, DSGE)模 ...
2025-09-17Python 提取 TIF 中地名的完整指南 一、先明確:TIF 中的地名有哪兩種存在形式? 在開始提取前,需先判斷 TIF 文件的類型 —— ...
2025-09-17CDA 數(shù)據(jù)分析師:解鎖表結(jié)構(gòu)數(shù)據(jù)特征價值的專業(yè)核心 表結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 規(guī)范存儲的結(jié)構(gòu)化數(shù)據(jù),如數(shù)據(jù)庫表、Excel 表、 ...
2025-09-17Excel 導入數(shù)據(jù)含缺失值?詳解 dropna 函數(shù)的功能與實戰(zhàn)應(yīng)用 在用 Python(如 pandas 庫)處理 Excel 數(shù)據(jù)時,“缺失值” 是高頻 ...
2025-09-16深入解析卡方檢驗與 t 檢驗:差異、適用場景與實踐應(yīng)用 在數(shù)據(jù)分析與統(tǒng)計學領(lǐng)域,假設(shè)檢驗是驗證研究假設(shè)、判斷數(shù)據(jù)差異是否 “ ...
2025-09-16CDA 數(shù)據(jù)分析師:掌控表格結(jié)構(gòu)數(shù)據(jù)全功能周期的專業(yè)操盤手 表格結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 存儲的結(jié)構(gòu)化數(shù)據(jù),如 Excel 表、數(shù)據(jù) ...
2025-09-16MySQL 執(zhí)行計劃中 rows 數(shù)量的準確性解析:原理、影響因素與優(yōu)化 在 MySQL SQL 調(diào)優(yōu)中,EXPLAIN執(zhí)行計劃是核心工具,而其中的row ...
2025-09-15解析 Python 中 Response 對象的 text 與 content:區(qū)別、場景與實踐指南 在 Python 進行 HTTP 網(wǎng)絡(luò)請求開發(fā)時(如使用requests ...
2025-09-15CDA 數(shù)據(jù)分析師:激活表格結(jié)構(gòu)數(shù)據(jù)價值的核心操盤手 表格結(jié)構(gòu)數(shù)據(jù)(如 Excel 表格、數(shù)據(jù)庫表)是企業(yè)最基礎(chǔ)、最核心的數(shù)據(jù)形態(tài) ...
2025-09-15Python HTTP 請求工具對比:urllib.request 與 requests 的核心差異與選擇指南 在 Python 處理 HTTP 請求(如接口調(diào)用、數(shù)據(jù)爬取 ...
2025-09-12解決 pd.read_csv 讀取長浮點數(shù)據(jù)的科學計數(shù)法問題 為幫助 Python 數(shù)據(jù)從業(yè)者解決pd.read_csv讀取長浮點數(shù)據(jù)時的科學計數(shù)法問題 ...
2025-09-12CDA 數(shù)據(jù)分析師:業(yè)務(wù)數(shù)據(jù)分析步驟的落地者與價值優(yōu)化者 業(yè)務(wù)數(shù)據(jù)分析是企業(yè)解決日常運營問題、提升執(zhí)行效率的核心手段,其價值 ...
2025-09-12用 SQL 驗證業(yè)務(wù)邏輯:從規(guī)則拆解到數(shù)據(jù)把關(guān)的實戰(zhàn)指南 在業(yè)務(wù)系統(tǒng)落地過程中,“業(yè)務(wù)邏輯” 是連接 “需求設(shè)計” 與 “用戶體驗 ...
2025-09-11塔吉特百貨孕婦營銷案例:數(shù)據(jù)驅(qū)動下的精準零售革命與啟示 在零售行業(yè) “流量紅利見頂” 的當下,精準營銷成為企業(yè)突圍的核心方 ...
2025-09-11CDA 數(shù)據(jù)分析師與戰(zhàn)略 / 業(yè)務(wù)數(shù)據(jù)分析:概念辨析與協(xié)同價值 在數(shù)據(jù)驅(qū)動決策的體系中,“戰(zhàn)略數(shù)據(jù)分析”“業(yè)務(wù)數(shù)據(jù)分析” 是企業(yè) ...
2025-09-11Excel 數(shù)據(jù)聚類分析:從操作實踐到業(yè)務(wù)價值挖掘 在數(shù)據(jù)分析場景中,聚類分析作為 “無監(jiān)督分組” 的核心工具,能從雜亂數(shù)據(jù)中挖 ...
2025-09-10統(tǒng)計模型的核心目的:從數(shù)據(jù)解讀到?jīng)Q策支撐的價值導向 統(tǒng)計模型作為數(shù)據(jù)分析的核心工具,并非簡單的 “公式堆砌”,而是圍繞特定 ...
2025-09-10