貝葉斯定理(Bayes Theorem)node
樸素貝葉斯分類(Naive Bayes Classifier)python
貝葉斯分類算法(NB),是統計學的一種分類方法,它是利用貝葉斯定理的機率統計知識,對離散型數據進行分類的算法。算法
樸素貝葉斯的思想基礎是這樣的:對於給出的待分類項,求解在此項出現的條件下各個類別出現的機率,哪一個最大,就認爲此待分類項屬於哪一個類別。機器學習
tips:python中sklearn包的naive_bayes模塊中,由三種貝葉斯算法類型:oop
使用多項式貝葉斯進行分本分類的實現:學習
#構建語料庫,須要包含文本分類測試
#進行分詞spa
#文本向量化code
#構建多項式貝葉斯模型orm
from sklearn.naive_bayes import MultinomialNB #多項式貝葉斯分類模型創建 MNBmodle = MultinomialNB() #將文本向量做爲特徵值傳入,將分類序列做爲目標序列傳入 MNBmodle.fit(textVector,corpos['class']) MNBmodle.score(textVector,corpos['class'])
tips:多項式貝葉斯很是適用於文本分類
#針對新文本進行分類(須要進行分詞和向量化操做),獲得分類預測
MNBmodle.predict(newTextVector)
決策樹(Decision Tree)
決策樹經過對訓練樣本的學習,並創建分類規則,而後依據分類規則,對新樣本數據進行分類預測,屬於有監督學習。
決策樹是在已知各類狀況發生機率的基礎上,經過構成決策樹來求取淨現值的指望值大於等於零的機率,評價項目風險,判斷其可行性的決策分析方法,是直觀運用機率分析的一種圖解法。
因爲這種決策分支畫成圖形很像一棵樹的枝幹,故稱決策樹。
在機器學習中,決策樹是一個預測模型,他表明的是對象屬性與對象值之間的一種映射關係。
決策樹是一種樹形結構,其中每一個內部節點表示一個屬性上的測試,每一個分支表明一個測試輸出,每一個葉節點表明一種類別。
優勢:
決策樹易於理解和實現
決策樹可同時處理數值型和非數值型數據
缺點:
對連續性的字段較難預測
對有時間順序的數據,須要不少的預處理工做
當類別較多時,錯誤可能增長的比較快
python實現決策樹模型的構建
重點代碼:
dtmodel = DecisionTreeClassifier(max_leaf_nodes=None) #最大葉子節點數
dtModel.fit(featureData, targetData) #特徵數據、目標數據
#對離散型變量進行虛擬化
#設置特徵變量、目標變量
#構建決策樹模型
from sklearn.tree import DecisionTreeClassifier dtmodel = DecisionTreeClassifier(max_leaf_nodes=8) #最大葉數爲8
#模型驗證
from sklearn.model_selection import cross_val_score
cross_val_score(dtmodel,fdata,tdata,cv=10) #交叉驗證10次
#模型訓練
dtmodel.fit(fdata,tdata)
#繪製決策樹模型 (須要下載安裝graphviz軟件 並 安裝pydot包,可參考http://wenda.chinahadoop.cn/question/5518)
#繪製決策樹圖形 from sklearn.tree import export_graphviz with open(r'D:\...\data.dot','w') as f: f = export_graphviz(dtmodel, out_file=f) import pydot from sklearn.externals.six import StringIO dot_data = StringIO() export_graphviz( dtmodel, #模型名稱 out_file=dot_data, #圖形數據的輸出路徑 class_names=['A','B'], #目標屬性的名稱 feature_names=['a','b','c','d'], #特徵屬性的名稱 filled=True, #是否使用顏色填充 rounded=True, #邊框是否圓角 special_characters=True) #是否有特殊字符(含中文就算) graph = pydot.graph_from_dot_data(dot_data.getvalue()) graph.get_node('node')[0].set_fontname('Microsoft YaHei') graph.write_png(r'D:\...\決策樹.png')
#最終在目標路徑下獲得決策樹的圖形