十大經典數據挖掘算法

算法是我的信仰..

因為它不像框架一樣,誰都做得了..

blog.jobbole.com/90316/?

1. C4.5算法

C4.5是一種決策樹算法,屬于監督學習。先給一個樣本集,從而建立一棵決策樹,然后根據這個決策樹來對后續的數據做決策。

C4.5的缺點:

1. 算法低效,在構造樹的過程中,需要對數據集進行多次的順序掃描和排序,因而導致算法的低效

2. 內存受限,適合于能夠駐留于內存的數據集,當訓練集大得無法在內存容納時程序無法運行

一些專業的術語: 熵 / 信息增益 / 信息增益率

熵: 就是信息的不確定性,多樣性,包含的信息量的大小,需要用多少bit來傳遞這個信息。比如,拋一枚銀幣3次,得到的可能結果有8種,我們知道計算機要用3bit來傳遞,所以熵就是log2(8)=3。wiki上這樣解釋“你需要用 log2(n) 位來表示一個可以取n 個值的變量。

信息增益: 熵的減小量。決策樹的期望是盡快定位,也就是說我們希望數據集的多樣性越小越好,越小說明結果越穩定,越能定位到準確的結果。信息增益越大,則熵會變的越小,說明結果越好。信息增益的計算方式,是原數據集的熵,減去依照屬性劃分后,每個屬性值的概率* 對應的子數據集的熵.

信息增益率: 對信息增益進行修正。信息增益會優先選擇那些屬性值多的屬性,為了克服這種傾向,用一個屬性計算出的信息增益,除以該屬性本身的熵(SplitInfo),得到信息增益率。

2. K-Means算法

K-Means算法是一個聚類算法,把n個對象根據他們的屬性分為k個分割,k < n。它假設對象屬性來自于空間向量,并且目標是使各個群組內部的均 方誤差總和最小。它與處理混合正態分布的最大期望算法很相似,因為它們都試圖找到數據中自然聚類的中心。

算法的實現步驟

1. 從 n個數據對象任意選擇 k 個對象作為初始聚類中心;

2. 根據每個聚類對象的均值(中心對象),計算每個對象與這些中心對象的距離;并根據最小距離重新對相應對象進行劃分;

3. 重新計算每個(有變化)聚類的均值(中心對象);

4. 計算標準測度函數,當滿足一定條件,如函數收斂時,則算法終止;如果條件不滿足則回到步驟2

3. SVM算法

SVM是一種監督式學習算法,廣泛應用于統計分類以及回歸分析中。SVM將向量映射到一個更高維的空間里,在這個空間里建立有一個最大間隔超平面。在分開數據的超平面的兩邊建有兩個互相平行的超平面,分隔超平面使兩個平行超平面的距離最大化。假定平行超平面間的距離或差距越大,分類器的總誤差越小。

svm的一般特征

1. SVM學習問題可以表示為凸優化問題,因此可以利用已知的有效算法發現目標函數的全局最小值。而其他分類方法(如基于規則的分類器和人工神經網絡)都采用一種基于貪心學習的策略來搜索假設空間,這種方法一般只能獲得局部最優解。

2. SVM通過最大化決策邊界的邊緣來控制模型的能力。盡管如此,用戶必須提供其他參數,如使用核函數類型和引入松弛變量等。

3. 通過對數據中每個分類屬性引入一個啞變量,SVM可以應用于分類數據。

4. SVM一般只能用在二類問題,對于多類問題效果不好

4. Apriori算法

Apriori算法是一種最有影響的挖掘布爾關聯規則頻繁項集的算法。其核心是基于兩階段頻集思想的遞推算法。該關聯規則在分類上屬于單維、單層、布爾關聯規則。在這里,所有支持度大于最小支持度的項集稱為頻繁項集,簡稱頻集。

它的核心

其核心是基于兩階段頻集思想的遞推算法。該關聯規則在分類上屬于單維、單層、布爾關聯規則。在這里,所有支持度大于最小支持度的項集稱為頻繁項集,簡稱頻集

5. 最大期望算法

最大期望算法是一種迭代算法,在統計計算中,最大期望(EM,Expectation–Maximization)算法是在概率(probabilistic)模型中尋找參數最大似然估計的算法,其中概率模型依賴于無法觀測的隱藏變量(Latent Variabl)。最大期望經常用在機器學習和計算機視覺的數據集聚(Data Clustering)領域。

算法的實現步驟

1. 計算期望(E),利用概率模型參數的現有估計值,計算隱藏變量的期望

2. 最大化(M),利用E 步上求得的隱藏變量的期望,對參數模型進行最大似然估計

6. PageRank算法

PageRank是對對網頁排名的算法,PageRank算法計算每一個網頁的PageRank值,然后根據這個值的大小對網頁的重要性進行排序。它的思想是模擬一個悠閑的上網者,上網者首先隨機選擇一個網頁打開,然后在這個網頁上呆了幾分鐘后,跳轉到該網頁所指向的鏈接,這樣無所事事、漫無目的地在網頁上跳來跳去,PageRank就是估計這個悠閑的上網者分布在各個網頁上的概率。

略...

7. AdaBoost算法

Adaboost算法是一種迭代算法,是十大算法中的第二個迭代算法,還有一個是前面的最大期望算法.其核心思想是針對同一個訓練集訓練不同的分類器(弱分類器),然后把這些弱分類器集合起來,構成一個更強的最終分類器(強分類器)。

其算法本身是通過改變數據分布來實現的,它根據每次訓練集之中每個樣本的分類是否正確,以及上次的總體分類的準確率,來確定每個樣本的權值。將修改過權值的新數據集送給下層分類器進行訓練,最后將每次訓練得到的分類器最后融合起來,作為最后的決策分類器。使用adaboost分類器可以排除一些不必要的訓練數據特征,并放在關鍵的訓練數據上面。

算法的實現步驟:

1. 先通過對N個訓練樣本的學習得到第一個弱分類器

2. 將分錯的樣本和其他的新數據一起構成一個新的N個的訓練樣本,通過對這個樣本的學習得到第二個弱分類器

3. 將1和2都分錯了的樣本加上其他的新樣本構成另一個新的N個的訓練樣本,通過對這個樣本的學習得到第三個弱分類器;

4. 最終經過提升的強分類器。即某個數據被分為哪一類要由各分類器權值決定。

8. K近鄰算法

K近鄰算法是一種分類算法,是一個理論上比較成熟的方法,也是最簡單的機器學習算法之一。該方法的思路是:如果一個樣本在特征空間中的k個最相似(即特征空間中最鄰近)的樣本中的大多數屬于某一個類別,則該樣本也屬于這個類別。

算法的實現步驟

1. 計算已知類別的數據集(樣本集)中的點與當前點之間的距離

2. 按照距離遞增排序

3. 選取與當前點距離最小的K個點

4. 確定K個點所屬類別出現的概率

5.返回K個點中類別出現頻率最高的類別

9. 樸素貝葉斯算法

樸素貝葉斯法是基于貝葉斯定理與特征條件獨立假設的分類方法,是十大算法中的第二個分類算法,前一個是K近鄰算法.

樸素貝葉斯算法模型和決策樹算法模型相比,它有著堅實的數學基礎,以及穩定的分類效率。同時,NBC模型所需估計的參數很少,對缺失數據不太敏感,算法也比較簡單。理論上,NBC模型與其他分類方法相比具有最小的誤差率。但是實際上并非總是如此,這是因為NBC模型假設屬性之間相互獨立,這個假設在實際應用中往往是不成立的,這給NBC模型的正確分類帶來了一定影響。

算法的實現步驟

1. 準備工作階段,這個階段的任務是為樸素貝葉斯分類做必要的準備,主要工作是根據具體情況確定特征屬性,并對每個特征屬性進行適當劃分,然后由人工對一部分待分類項進行分類,形成訓練樣本集合。這一階段的輸入是所有待分類數據,輸出是特征屬性和訓練樣本。這一階段是整個樸素貝葉斯分類中唯一需要人工完成的階段,其質量對整個過程將有重要影響,分類器的質量很大程度上由特征屬性、特征屬性劃分及訓練樣本質量決定。

2. 分類器訓練階段,這個階段的任務就是生成分類器,主要工作是計算每個類別在訓練樣本中的出現頻率及每個特征屬性劃分對每個類別的條件概率估計,并將結果記錄。其輸入是特征屬性和訓練樣本,輸出是分類器。這一階段是機械性階段,根據前面討論的公式可以由程序自動計算完成。

3. 應用階段。這個階段的任務是使用分類器對待分類項進行分類,其輸入是分類器和待分類項,輸出是待分類項與類別的映射關系。這一階段也是機械性階段,由程序完成。

10. CART算法

CART是一種決策樹算法,是十大算法中繼C4.5之后的有一種決策樹算法.它采用一種二分遞歸分割的技術,將當前的樣本集分為兩個子樣本集,使得生成的的每個非葉子節點都有兩個分支。因此,CART算法生成的決策樹是結構簡潔的二叉樹。

且行且珍惜..

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容