算法是我的信仰..
因為它不像框架一樣,誰都做得了..
1. C4.5算法
C4.5是一種決策樹算法,屬于監(jiān)督學(xué)習(xí)。先給一個樣本集,從而建立一棵決策樹,然后根據(jù)這個決策樹來對后續(xù)的數(shù)據(jù)做決策。
C4.5的缺點:
1. 算法低效,在構(gòu)造樹的過程中,需要對數(shù)據(jù)集進行多次的順序掃描和排序,因而導(dǎo)致算法的低效
2. 內(nèi)存受限,適合于能夠駐留于內(nèi)存的數(shù)據(jù)集,當(dāng)訓(xùn)練集大得無法在內(nèi)存容納時程序無法運行
一些專業(yè)的術(shù)語: 熵 / 信息增益 / 信息增益率
熵: 就是信息的不確定性,多樣性,包含的信息量的大小,需要用多少bit來傳遞這個信息。比如,拋一枚銀幣3次,得到的可能結(jié)果有8種,我們知道計算機要用3bit來傳遞,所以熵就是log2(8)=3。wiki上這樣解釋“你需要用 log2(n) 位來表示一個可以取n 個值的變量。
信息增益: 熵的減小量。決策樹的期望是盡快定位,也就是說我們希望數(shù)據(jù)集的多樣性越小越好,越小說明結(jié)果越穩(wěn)定,越能定位到準(zhǔn)確的結(jié)果。信息增益越大,則熵會變的越小,說明結(jié)果越好。信息增益的計算方式,是原數(shù)據(jù)集的熵,減去依照屬性劃分后,每個屬性值的概率* 對應(yīng)的子數(shù)據(jù)集的熵.
信息增益率: 對信息增益進行修正。信息增益會優(yōu)先選擇那些屬性值多的屬性,為了克服這種傾向,用一個屬性計算出的信息增益,除以該屬性本身的熵(SplitInfo),得到信息增益率。
2. K-Means算法
K-Means算法是一個聚類算法,把n個對象根據(jù)他們的屬性分為k個分割,k < n。它假設(shè)對象屬性來自于空間向量,并且目標(biāo)是使各個群組內(nèi)部的均 方誤差總和最小。它與處理混合正態(tài)分布的最大期望算法很相似,因為它們都試圖找到數(shù)據(jù)中自然聚類的中心。
算法的實現(xiàn)步驟
1. 從 n個數(shù)據(jù)對象任意選擇 k 個對象作為初始聚類中心;
2. 根據(jù)每個聚類對象的均值(中心對象),計算每個對象與這些中心對象的距離;并根據(jù)最小距離重新對相應(yīng)對象進行劃分;
3. 重新計算每個(有變化)聚類的均值(中心對象);
4. 計算標(biāo)準(zhǔn)測度函數(shù),當(dāng)滿足一定條件,如函數(shù)收斂時,則算法終止;如果條件不滿足則回到步驟2
3. SVM算法
SVM是一種監(jiān)督式學(xué)習(xí)算法,廣泛應(yīng)用于統(tǒng)計分類以及回歸分析中。SVM將向量映射到一個更高維的空間里,在這個空間里建立有一個最大間隔超平面。在分開數(shù)據(jù)的超平面的兩邊建有兩個互相平行的超平面,分隔超平面使兩個平行超平面的距離最大化。假定平行超平面間的距離或差距越大,分類器的總誤差越小。
svm的一般特征
1. SVM學(xué)習(xí)問題可以表示為凸優(yōu)化問題,因此可以利用已知的有效算法發(fā)現(xiàn)目標(biāo)函數(shù)的全局最小值。而其他分類方法(如基于規(guī)則的分類器和人工神經(jīng)網(wǎng)絡(luò))都采用一種基于貪心學(xué)習(xí)的策略來搜索假設(shè)空間,這種方法一般只能獲得局部最優(yōu)解。
2. SVM通過最大化決策邊界的邊緣來控制模型的能力。盡管如此,用戶必須提供其他參數(shù),如使用核函數(shù)類型和引入松弛變量等。
3. 通過對數(shù)據(jù)中每個分類屬性引入一個啞變量,SVM可以應(yīng)用于分類數(shù)據(jù)。
4. SVM一般只能用在二類問題,對于多類問題效果不好
4. Apriori算法
Apriori算法是一種最有影響的挖掘布爾關(guān)聯(lián)規(guī)則頻繁項集的算法。其核心是基于兩階段頻集思想的遞推算法。該關(guān)聯(lián)規(guī)則在分類上屬于單維、單層、布爾關(guān)聯(lián)規(guī)則。在這里,所有支持度大于最小支持度的項集稱為頻繁項集,簡稱頻集。
它的核心
其核心是基于兩階段頻集思想的遞推算法。該關(guān)聯(lián)規(guī)則在分類上屬于單維、單層、布爾關(guān)聯(lián)規(guī)則。在這里,所有支持度大于最小支持度的項集稱為頻繁項集,簡稱頻集
5. 最大期望算法
最大期望算法是一種迭代算法,在統(tǒng)計計算中,最大期望(EM,Expectation–Maximization)算法是在概率(probabilistic)模型中尋找參數(shù)最大似然估計的算法,其中概率模型依賴于無法觀測的隱藏變量(Latent Variabl)。最大期望經(jīng)常用在機器學(xué)習(xí)和計算機視覺的數(shù)據(jù)集聚(Data Clustering)領(lǐng)域。
算法的實現(xiàn)步驟
1. 計算期望(E),利用概率模型參數(shù)的現(xiàn)有估計值,計算隱藏變量的期望
2. 最大化(M),利用E 步上求得的隱藏變量的期望,對參數(shù)模型進行最大似然估計
6. PageRank算法
PageRank是對對網(wǎng)頁排名的算法,PageRank算法計算每一個網(wǎng)頁的PageRank值,然后根據(jù)這個值的大小對網(wǎng)頁的重要性進行排序。它的思想是模擬一個悠閑的上網(wǎng)者,上網(wǎng)者首先隨機選擇一個網(wǎng)頁打開,然后在這個網(wǎng)頁上呆了幾分鐘后,跳轉(zhuǎn)到該網(wǎng)頁所指向的鏈接,這樣無所事事、漫無目的地在網(wǎng)頁上跳來跳去,PageRank就是估計這個悠閑的上網(wǎng)者分布在各個網(wǎng)頁上的概率。
略...
7. AdaBoost算法
Adaboost算法是一種迭代算法,是十大算法中的第二個迭代算法,還有一個是前面的最大期望算法.其核心思想是針對同一個訓(xùn)練集訓(xùn)練不同的分類器(弱分類器),然后把這些弱分類器集合起來,構(gòu)成一個更強的最終分類器(強分類器)。
其算法本身是通過改變數(shù)據(jù)分布來實現(xiàn)的,它根據(jù)每次訓(xùn)練集之中每個樣本的分類是否正確,以及上次的總體分類的準(zhǔn)確率,來確定每個樣本的權(quán)值。將修改過權(quán)值的新數(shù)據(jù)集送給下層分類器進行訓(xùn)練,最后將每次訓(xùn)練得到的分類器最后融合起來,作為最后的決策分類器。使用adaboost分類器可以排除一些不必要的訓(xùn)練數(shù)據(jù)特征,并放在關(guān)鍵的訓(xùn)練數(shù)據(jù)上面。
算法的實現(xiàn)步驟:
1. 先通過對N個訓(xùn)練樣本的學(xué)習(xí)得到第一個弱分類器
2. 將分錯的樣本和其他的新數(shù)據(jù)一起構(gòu)成一個新的N個的訓(xùn)練樣本,通過對這個樣本的學(xué)習(xí)得到第二個弱分類器
3. 將1和2都分錯了的樣本加上其他的新樣本構(gòu)成另一個新的N個的訓(xùn)練樣本,通過對這個樣本的學(xué)習(xí)得到第三個弱分類器;
4. 最終經(jīng)過提升的強分類器。即某個數(shù)據(jù)被分為哪一類要由各分類器權(quán)值決定。
8. K近鄰算法
K近鄰算法是一種分類算法,是一個理論上比較成熟的方法,也是最簡單的機器學(xué)習(xí)算法之一。該方法的思路是:如果一個樣本在特征空間中的k個最相似(即特征空間中最鄰近)的樣本中的大多數(shù)屬于某一個類別,則該樣本也屬于這個類別。
算法的實現(xiàn)步驟
1. 計算已知類別的數(shù)據(jù)集(樣本集)中的點與當(dāng)前點之間的距離
2. 按照距離遞增排序
3. 選取與當(dāng)前點距離最小的K個點
4. 確定K個點所屬類別出現(xiàn)的概率
5.返回K個點中類別出現(xiàn)頻率最高的類別
9. 樸素貝葉斯算法
樸素貝葉斯法是基于貝葉斯定理與特征條件獨立假設(shè)的分類方法,是十大算法中的第二個分類算法,前一個是K近鄰算法.
樸素貝葉斯算法模型和決策樹算法模型相比,它有著堅實的數(shù)學(xué)基礎(chǔ),以及穩(wěn)定的分類效率。同時,NBC模型所需估計的參數(shù)很少,對缺失數(shù)據(jù)不太敏感,算法也比較簡單。理論上,NBC模型與其他分類方法相比具有最小的誤差率。但是實際上并非總是如此,這是因為NBC模型假設(shè)屬性之間相互獨立,這個假設(shè)在實際應(yīng)用中往往是不成立的,這給NBC模型的正確分類帶來了一定影響。
算法的實現(xiàn)步驟
1. 準(zhǔn)備工作階段,這個階段的任務(wù)是為樸素貝葉斯分類做必要的準(zhǔn)備,主要工作是根據(jù)具體情況確定特征屬性,并對每個特征屬性進行適當(dāng)劃分,然后由人工對一部分待分類項進行分類,形成訓(xùn)練樣本集合。這一階段的輸入是所有待分類數(shù)據(jù),輸出是特征屬性和訓(xùn)練樣本。這一階段是整個樸素貝葉斯分類中唯一需要人工完成的階段,其質(zhì)量對整個過程將有重要影響,分類器的質(zhì)量很大程度上由特征屬性、特征屬性劃分及訓(xùn)練樣本質(zhì)量決定。
2. 分類器訓(xùn)練階段,這個階段的任務(wù)就是生成分類器,主要工作是計算每個類別在訓(xùn)練樣本中的出現(xiàn)頻率及每個特征屬性劃分對每個類別的條件概率估計,并將結(jié)果記錄。其輸入是特征屬性和訓(xùn)練樣本,輸出是分類器。這一階段是機械性階段,根據(jù)前面討論的公式可以由程序自動計算完成。
3. 應(yīng)用階段。這個階段的任務(wù)是使用分類器對待分類項進行分類,其輸入是分類器和待分類項,輸出是待分類項與類別的映射關(guān)系。這一階段也是機械性階段,由程序完成。
10. CART算法
CART是一種決策樹算法,是十大算法中繼C4.5之后的有一種決策樹算法.它采用一種二分遞歸分割的技術(shù),將當(dāng)前的樣本集分為兩個子樣本集,使得生成的的每個非葉子節(jié)點都有兩個分支。因此,CART算法生成的決策樹是結(jié)構(gòu)簡潔的二叉樹。
且行且珍惜..