An Algorithm Summary of Programming Collective Intelligence (1)
就按照最后一章的順序來說吧。很多名字都不知道中文該怎么說,就直接用英文名稱了。
Naive Bayesian Classifier 樸素貝葉斯分類器
nb算法是通過學習樣本中已經分類的條目,計算生成條目中的特性相對于類別的概率矩陣,然后根據待分類條目中特性在這個矩陣中的值來反向計算條目的類別概率。
P(Category|Item)=P(Item|Category)*P(Category)/P(Item)
在靜態樣本中,P(Item)是固定的,所以可以去掉簡化計算。但是如果樣本集是動態的,就需要考慮進來。
P(Item|Category)=P(Feature1|Category)*P(Feature2|Category)*...
優點:
速度快
增量訓練時可以不使用舊樣本
容易理解
分類效果往往比想象的好
缺點:
對于內容龐雜的大分類來說效果不太好,特別是出現比較中性的特性組合時更是如此。
Decision Tree Classifier 決策樹
dt算法進行分類計算是很簡單直觀的,它的技巧在于決策樹的構造過程。樣本是已知的條件結果數據矩陣,需要決定的是用來分類的條件順序。為了得到這個順序,就要針對每個條件計算單純應用這個條件分類后結果的混合度,也就是看用哪個條件來分可以分得更清楚一些。確定了最好的分類條件,就把數據分開成若干子集,對每個子集再計算最佳分類條件,以此類推,直到子集只包含一個結果或者達到某些終止條件。
dt算法有兩個有意思的地方。一是如何計算應用某個條件得到的分類結果的混合度。書里面給了一個簡單的計數算法和一個熵算法(好親切啊)。
p(i)=frequency(outcome)=count(outcome)/count(total rows)
Entropy=sum of p(i)*log(p(i) for all outcomes
進一步計算information gain:
weight1 = size of subset1 / size of original set
weight2 = size of subset2 / size of original set
gain = entropy(original) – weight1*entropy(set1) – weight2*entropy(set2)
另外一個有意思的地方是對不同類型的條件數據如何選擇分類點。對于是否問題這個比較容易解決,但是對于數值或者字符串或者更復雜的類型就要特殊情況特殊處理了。
優點:
結果簡潔直觀
可以處理不同的條件數據類型
缺點:
不能通過增量訓練來改進,生成決策樹必須使用整個已知樣本集。
大數據集可能存在的眾多條件會產生巨大繁雜的決策樹,分類計算會變得緩慢。
轉載于:https://www.cnblogs.com/ysjxw/archive/2008/04/11/1148887.html
總結
以上是生活随笔為你收集整理的An Algorithm Summary of Programming Collective Intelligence (1)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 去医院去痣多少钱啊?
- 下一篇: 知识的殿堂??!