數據挖掘 十大算法(持續更新)

C4.5

C4.5算法

C4.5算法是機器學習算法中的一種分類決策樹算法,其核心算法是ID3 算法。C4.5算法繼承了ID3算法的優勢,並在如下幾方面對ID3算法進行了改進:算法

  • 用信息增益率來選擇屬性,克服了用信息增益選擇屬性時偏向選擇取值多的屬性的不足數據庫

  • 在樹構造過程當中進行剪枝機器學習

  • 可以完成對連續屬性的離散化處理函數

  • 可以對不完整數據進行處理性能

C4.5算法有以下優勢:產生的分類規則易於理解,準確率較高。其缺點是:在構造樹的過程當中,須要對數據集進行屢次的順序掃描和排序,於是致使算法的低效學習

機器學習中,決策樹是一個預測模型;他表明的是對象屬性與對象值之間的一種映射關係。樹中每一個節點表示某個對象,而每一個分叉路徑則表明的某個可能的屬性值,而每一個葉結點則對應從根節點到該葉節點所經歷的路徑所表示的對象的值。決策樹僅有單一輸出,若欲有複數輸出,能夠創建獨立的決策樹以處理不一樣輸出。 測試

從數據產生決策樹的機器學習技術叫作決策樹學習, 通俗說就是決策樹。 大數據

決策樹學習也是數據挖掘中一個普通的方法。在這裏,每一個決策樹都表述了一種樹型結構,他由他的分支來對該類型的對象依靠屬性進行分類。每一個決策樹能夠依靠對源數據庫的分割進行數據測試。這個過程能夠遞歸式的對樹進行修剪。當不能再進行分割或一個單獨的類能夠被應用於某一分支時,遞歸過程就完成了。另外,隨機森林分類器將許多決策樹結合起來以提高分類的正確率優化

決策樹是如何工做的?spa

  • 決策樹通常都是自上而下的來生成的

  • 選擇分割的方法有好幾種,可是目的都是一致的:對目標類嘗試進行最佳的分割

  • 從根到葉子節點都有一條路徑,這條路徑就是一條―規則

  • 決策樹能夠是二叉的,也能夠是多叉的

對每一個節點的衡量:

  • 經過該節點的記錄數

  • 若是是葉子節點的話,分類的路徑

  • 對葉子節點正確分類的比例

C4.5算法有以下優勢:產生的分類規則易於理解,準確率較高

缺點是:在構造樹的過程當中,須要對數據集進行屢次的順序掃描和排序,於是致使算法的低效。此外,C4.5只適合於可以駐留於內存的數據集,當訓練集大得沒法在內存容納時程序沒法運行

ID3算法

概念提取算法CLS
1初始化參數C={E},E包括全部的例子,爲根.
2

IF C中的任一元素e同屬於同一個決策類則建立一個葉子      
    節點YES終止
ELSEM依啓發式標準,選擇特徵Fi={V1,V2,V3,...Vn}並建立  
    斷定節點

劃分C爲互不相交的N個集合C1,C2,C3,...,Cn;

  1. 對任一個Ci遞歸

ID3算法對數據的要求

  • 全部屬性必須爲離散量

  • 全部的訓練例的全部屬性必須有一個明確的值

  • 相同的因素必須獲得相同的結論且訓練例必須惟一

k-means

算法描述

輸入:簇的數目k;包含n個對象的數據集D
輸出:k個簇的集合

方法:

  • 從D中任意選擇k個對象做爲初始簇中心

  • repeat

  • 根據簇中對象的均值,將每一個對象指派到最類似的簇

  • 更新簇均值,即計算每一個簇中對象的均值

  • 計算準則函數

  • until準則函數再也不發生變化

算法的性能分析

  • 優勢

  1. k-平均算法是解決聚類問題的一種經典算法,算法簡單、快速

  2. 對處理大數據集,該算法是相對可伸縮的和高效率的,由於它的複雜度大約是O(nkt),其中n是全部對象的數目,k是簇的數目,t是迭代的次數。一般k<<n。這個算法常常以局部最優結束

  3. 算法嘗試找出使平方偏差函數值最小的k個劃分。當簇是密集的、球狀或團狀的,而簇與簇之間區別明顯時,它的聚類效果很好

  • 缺點

  1. k-平均方法只有在簇的平均值被定義的狀況下才能使用,不適用於某些應用,如涉及有分類屬性的數據不適用

  2. 要求用戶必須事先給出要生成的簇的數目k

  3. 對初值敏感,對於不一樣的初始值,可能會致使不一樣的聚類結果

  4. 不適合於發現非凸面形狀的簇,或者大小差異很大的簇

  5. 對於"噪聲"和孤立點數據敏感,少許的該類數據可以對平均值產生極大影響

算法的改進

針對算法存在的問題,對K-means算法提出一些改進:

  • 數據預處理

  • 初始聚類中心選擇

  • 迭代過程當中聚類種子的選擇

首先對樣本數據進行正規化處理,這樣就能防止某些大值屬性的數據左右樣本間的距離。給定一組含有n個數據的數據集,每一個數據含有m個屬性,分別計算每個屬性的均值、標準差對每條數據進行標準化

其次,初始聚類中心的選擇對最後的聚類效果有很大的影響,原K-means算法是隨機選取k個數據做爲聚類中心,而聚類的結果要是同類間儘量類似,不一樣類間儘量相異,因此初始聚類中心的選取要儘量作到這一點。採用基於距離和的孤立點定義來進行孤立點的預先篩選,並利用兩兩數據之間的最大距離在剩餘數據集合中尋找初始聚類中心。但對於實際數據,孤立點個數每每不可預知。在選擇初始聚類中心時,先將孤立點歸入統計範圍,在樣本中計算對象兩兩之間的距離,選出距離最大的兩個點做爲兩個不一樣類的聚類中心,接着從其他的樣本對象中找出已經選出來的全部聚類中心的距離和最大的點爲另外一個聚類中心,直到選出k個聚類中心。這樣作就下降了樣本輸入順序對初始聚類中心選擇的影響

聚類中心選好之後,就要進行不斷的迭代計算,在K-means算法中,是將聚類均值點(類中全部數據的幾何中心點)做爲新的聚類種子進行新一輪的聚類計算,在這種狀況下,新的聚類種子可能偏離真正的數據密集區,從而致使誤差,特別是在有孤立點存在的狀況下,有很大的侷限性。在選擇初始中心點時,因爲將孤立點計算在內,因此在迭代過程當中要避免孤立點的影響。這裏根據聚類種子的計算時,採用簇中那些與第k-1輪聚類種子類似度較大的數據,計算他們的均值點做爲第k輪聚類的種子,至關於將孤立點排除在外,孤立點不參與聚類中心的計算,這樣聚類中心就不會由於孤立點的緣由而明顯偏離數據集中的地方。在計算聚類中心的時候,要運用必定的算法將孤立點排除在計算均值點那些數據以外,這裏主要採用類中與聚類種子類似度大於某一閾值的數據組成每一個類的一個子集,計算子集中的均值點做爲下一輪聚類的聚類種子。爲了能讓更多的數據參與到聚類中心的計算種去,閾值範圍要包含大多數的數據。在第k-1輪聚類得到的類,計算該類中全部數據與該類聚類中心的平均距離S,選擇類中與聚類種子類似度大於2S的數據組成每一個類的一個子集,以此子集的均值點做爲第k輪聚類的聚類種子。在數據集中不管是否有明顯的孤立點存在,兩倍的平均距離都能包含大多數的數據

對孤立點的改進—基於距離法

經典k均值算法中沒有考慮孤立點。所謂孤立點都是基於距離的, 是數據U集中到U中最近鄰居的距離最大的對象, 換言之, 數據集中與其最近鄰居的平均距離最大的對象。針對經典k均值算法易受孤立點的影響這一問題, 基於距離法移除孤立點, 具體過程以下:

  • 首先掃描一次數據集, 計算每個數據對象與其臨近對象的距離, 累加求其距離和, 並計算出距離和均值。若是某個數據對象的距離和大於距離和均值, 則視該點爲孤立點。把這個對象從數據集中移除到孤立點集合中, 重複直到全部孤立點都找到。最後獲得新的數據集就是聚類的初始集合

對隨機選取初始聚類中心的改進

經典k均值算法隨機選取k個點做爲初始聚類中心進行操做。因爲是隨機選取, 則變化較大, 初始點選取不一樣, 得到聚類的結果也不一樣。而且聚類分析獲得的聚類的準確率也不同。對k均值算法的初始聚類中心選擇方法—隨機法進行改進, 其依據是聚類過程當中相同聚類中的對象是類似的, 相異聚類中的對象是不類似的。所以提出了一種基於數據對象兩兩間的距離來動態尋找並肯定初始聚類中心的思路, 具體過程以下:

  • 首先整理移除孤立點後的數據集U,記錄數據個數y,令m=1。比較數據集中全部數據對象兩兩之間的距離。找出距離最近的2個數據對象造成集合Am;比較Am中每個數據對象與數據對象集合U中每個對象的距離,在U中找出與Am 中最近的數據對象,優先吸取到Am 中,直到Am 中的數據對象個數到達必定數值,而後令m=m+1

  • 再從U中找到對象兩兩間距離最近的2個數據對象構成Am,重複上面的過程,直到造成k個對象集合。這些集合內部的數據是類似的,而集合間是相異的。 能夠看出,這種聚類方法同時知足如下2個條件:①每一個組至少包含一個數據對象; ②每一個數據對象必須屬於且僅屬於一個組。即數據對象Xi ∈Ai ,且U={{A1 ∪A2 ∪…∪Ak} ∪A0} ,且Ai ∩Aj =Φ。最後對k個對象集合分別進行算術平均,造成k個初始聚類中心

近似的k平均算法已經被設計用於原始數據子集的計算。從算法的表現上來講,它並不保證必定獲得全局最優解,最終解的質量很大程度上取決於初始化的分組。因爲該算法的速度很快,所以經常使用的一種方法是屢次運行k平均算法,選擇最優解

k平均算法的一個缺點是,分組的數目k是一個輸入參數,不合適的k可能返回較差的結果。另外,算法還假設均方偏差是計算羣組分散度的最佳參數

SVM

SVM概念

支持向量機,英文爲Support Vector Machine,簡稱SV機(論文中通常簡稱SVM)。它是一
種監督式學習的方法,它普遍的應用於統計分類以及迴歸分析中。

支持向量機屬於通常化線性分類器.他們也能夠認爲是提克洛夫規範化(Tikhonov Regularization)方法的一個特例.這族分類器的特色是他們可以同時最小化經驗偏差與最大化幾何邊緣區.所以支持向量機也被稱爲最大邊緣區分類器。在統計計算中,最大指望(EM) 算法是在機率(probabilistic)模型中尋找參數最大似然估計的算法,其中機率模型依賴於無 法觀測的隱藏變量(Latent Variabl)。最大指望常常用在機器學習和計算機視覺的數據集聚 (Data Clustering)領域。最大指望算法通過兩個步驟交替進行計算:

第一步是計算指望(E),也就是將隱藏變量象可以觀測到的同樣包含在內從而計算最大似然的指望值;

另一步是最 大化(M),也就是最大化在 E 步上找到的最大似然的指望值從而計算參數的最大似然估計。M步上找到的參數而後用於另一個E步計算,這個過程不斷交替進行。

Vapnik等人在多年研究統計學習理論基礎上對線性分類器提出了另外一種設計最佳準則。其原理也從線性可分提及,而後擴展到線性不可分的狀況。甚至擴展到使用非線性函數中去,這種分類器被稱爲支持向量機(Support Vector Machine,簡稱SVM).支持向量機的提出有很深的理論背景。支持向量機方法是在近年來提出的一種新方法

主要思想

  • 它是針對線性可分狀況進行分析,對於線性不可分的狀況,經過使用非線性映射算法將低維輸入空間線性不可分的樣本轉化爲高維特徵空間使其線性可分,從而使得高維特徵空間採用線性算法對樣本的非線性特徵進行線性分析成爲可 能;

  • 它基於結構風險最小化理論之上在特徵空間中建構最優分割超平面,使得學習器獲得全局最優化,而且在整個樣本空間的指望風險以某個機率知足必定上界

支持向量機在設計時,須要用到條件極值問題的求解,所以需用拉格朗日乘子理論,但對多數人來講,之前學到的或經常使用的是約束條件爲等式表示的方式,但在此要用到以不等式做爲必須知足的條件,此時只要瞭解拉格朗日理論的有關結論就行

動機

有不少個分類器(超平面)能夠把數據分開,可是隻有一個可以達到最大分割。咱們一般但願分類的過程是一個機器學習的過程。這些數據點並不須要是中的點,而能夠是任意(統計學符號)中或者(計算機科學符號) 的點。咱們但願可以把這些點經過一個n-1維的超平面分開,一般這個被稱爲線性分類器。有不少分類器都符合這個要求,可是咱們還但願 找到分類最佳的平面,即便得屬於兩個不一樣類的數據點間隔最大的那個面,該面亦稱爲最大 間隔超平面。若是咱們可以找到這個面,那麼這個分類器就稱爲最大間隔分類器

Apriori

Apriori算法是種最有影響的挖掘布爾關聯規則頻繁項集的算法。它的核心是基於兩階段頻集思想的遞推算法。該關聯規則在分類上屬於單維、單層、布爾關聯規則。在這裏,全部支持度大於最小支持度的項集稱爲頻繁項集(簡稱頻集),也常稱爲最大項目集

在Apriori算法中,尋找最大項目集(頻繁項集)的基本思想是:算法須要對數據集進行多步處理。第一步,簡單統計全部含一個元素項目集出現的頻數,並找出那些不小於最小支持度的項目集,即一維最大項目集。從第二步開始循環處理直到再沒有最大項目集生成。循環過程是:第k步中,根據第k-1步生成的(k-1)維最大項目集產生k維侯選項目集,而後對數據庫進行搜索,獲得侯選項目集的項集支持度,與最小支持度進行比較,從而找到k維最大項目集

從算法的運行過程,咱們能夠看出該Apriori算法的優勢:簡單、易理解、數據要求低,然而咱們也能夠看到Apriori算法的缺點:

  1. 在每一步產生侯選項目集時循環產生的組合過多,沒有排除不該該參與組合的元素

  2. 每次計算項集的支持度時,都對數據庫D中的所有記錄進行了一遍掃描比較,若是是一個大型的數據庫的話,這種掃描比較會大大增長計算機系統的I/O開銷。而這種代價是隨着數據庫的記錄的增長呈現出幾何級數的增長。所以人們開始尋求更好性能的算法,如F-P算法

EM

最大指望算法(Expectation-maximization algorithm,又譯指望最大化算法)在統計中被用於尋找,依賴於不可觀察的隱性變量的機率模型中,參數的最大似然估計。
在統計計算中,最大指望(EM)算法是在機率模型中尋找參數最大似然估計或者最大後驗估計的算法,其中機率模型依賴於沒法觀測的隱藏變量(Latent Variable)。最大指望常常用在機器學習和計算機視覺的數據聚類(Data Clustering)領域。最大指望算法通過兩個步驟交替進行計算,第一步是計算指望(E),利用對隱藏變量的現有估計值,計算其最大似然估計值;第二步是最大化(M),最大化在 E 步上求得的最大似然值來計算參數的值。M 步上找到的參數估計值被用於下一個 E 步計算中,這個過程不斷交替進行

M是一個在已知部分相關變量的狀況下,估計未知變量的迭代技術。 EM的算法流程以下:

初始化分佈參數
重複直到收斂:
E步驟:估計未知參數的指望值,給出當前的參數估計。
M步驟:從新估計分佈參數,以使得數據的似然性最大,給出未知變量的指望估計。
應用於缺失值

最大指望過程說明
咱們用 表示可以觀察到的不完整的變量值,用 表示沒法觀察到的變量值,這樣 和 一塊兒組成了完整的數據。 多是實際測量丟失的數據,也多是可以簡化問題的隱藏變量,若是它的值可以知道的話。例如,在混合模型(Mixture Model)中,若是「產生」樣本的混合元素成分已知的話最大似然公式將變得更加便利(參見下面的例子)。
估計沒法觀測的數據
讓 表明矢量 : 定義的參數的所有數據的機率分佈(連續狀況下)或者機率聚類函數(離散狀況下),那麼從這個函數就能夠獲得所有數據的最大似然值,另外,在給定的觀察到的數據條件下未知數據的條件分佈能夠表示爲:

clipboard.png

相關文章
相關標籤/搜索