python3.4之決策樹
#!/usr/bin/env python
# coding=utf-8
import numpy as np
from sklearn import tree
from sklearn.metrics import precision_recall_curve
from sklearn.metrics import classification_report
from sklearn.cross_validation import train_test_split
import pydot
from sklearn.externals.six import StringIO
def loadDataSet():
data = []
label = []
with open('D:python/fat.txt') as file:
for line in file:
tokens = line.strip().split(' ')
data.append([float(tk) for tk in tokens[:-1]])
label.append(tokens[-1])
x = np.array(data)
print('x:')
print(x)
label = np.array(label)
y = np.zeros(label.shape)
y[label == 'fat'] = 1
print('y:')
print(y)
return x, y
def decisionTreeClf():
x, y = loadDataSet()
# 拆分資料集和訓練集
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2)
print('x_train:');
print(x_train)
print('x_test:');
print(x_test)
print('y_train:');
print(y_train)
print('y_test:');
print(y_test)
# 使用資訊熵作為劃分標準
clf = tree.DecisionTreeClassifier(criterion='entropy')
print(clf)
clf.fit(x_train, y_train)
dot_data = StringIO()
with open("iris.dot", 'w') as f:
f=tree.export_graphviz(clf, out_file=f)
tree.export_graphviz(clf, out_file=dot_data)
graph = pydot.graph_from_dot_data(dot_data.getvalue())
graph[0].write_pdf("ex.pdf")
# Image(graph.create_png())
# 列印特徵在分類起到的作用性
print(clf.feature_importances_)
# 列印測試結果
answer = clf.predict(x_train)
print('x_train:')
print(x_train)
print('answer:')
print(answer)
print('y_train:')
print(y_train)
print('計算正確率:')
print(np.mean(answer == y_train))
# 準確率與召回率
precision, recall, thresholds = precision_recall_curve(y_train, clf.predict(x_train)
)
answer = clf.predict_proba(x)[:, 1]
print(classification_report(y, answer, target_names=['thin', 'fat']))
decisionTreeClf()
# print('ll')
資料集fat.txt檔案內容如下:
1.5 50 thin
1.5 60 fat
1.6 40 thin
1.6 60 fat
1.7 60 thin
1.7 80 fat
1.8 60 thin
1.8 90 fat
1.9 70 thin
1.9 80 fat
所需要的python包有:
pygraphviz (1.3.1)
pyparsing (2.1.10)
scikit-learn (0.18.1)
pygraphviz (1.3.1)包是視覺化包。
下載視覺化工具:
graphviz-2.38.msi
百度搜尋安裝視覺化工具。
相關文章
- 機器學習之決策樹機器學習
- 決策樹
- 機器學習之決策樹演算法機器學習演算法
- 決策樹之CART演算法演算法
- 決策樹模型(3)決策樹的生成與剪枝模型
- 機器學習:決策樹機器學習
- 決策樹示例
- 機器學習-決策樹機器學習
- 春節不斷電之機器學習 —— 決策樹機器學習
- Python機器學習:決策樹001什麼是決策樹Python機器學習
- 遊戲AI之決策結構—行為樹遊戲AI
- 機器學習之使用sklearn構造決策樹模型機器學習模型
- 機器學習經典演算法之決策樹機器學習演算法
- 機器學習之決策樹原理和sklearn實踐機器學習
- 機器學習之決策樹與隨機森林模型機器學習隨機森林模型
- 機器學習——決策樹模型機器學習模型
- 機器學習之決策樹在sklearn中的實現機器學習
- 機器學習之 決策樹(Decision Tree)python實現機器學習Python
- 分類——決策樹模型模型
- 決策樹演算法演算法
- 機器學習筆記--決策樹機器學習筆記
- 機器學習之決策樹ID3(python實現)機器學習Python
- scikit-learn學習之決策樹演算法演算法
- 人工智慧之機器學習基礎——決策樹(Decision Tree)人工智慧機器學習
- 機器學習Sklearn系列:(三)決策樹機器學習
- 機器學習|決策樹-sklearn實現機器學習
- 決策樹和隨機森林隨機森林
- 機器學習筆記(四)決策樹機器學習筆記
- 決策樹學習總結
- 關於決策樹的理解
- 【Python機器學習實戰】決策樹和整合學習(二)——決策樹的實現Python機器學習
- 機器學習 Day 9 | 決策樹基礎機器學習
- 大資料————決策樹(decision tree)大資料
- 【機器學習】--決策樹和隨機森林機器學習隨機森林
- 決策樹演算法原理(上)演算法
- 決策樹演算法原理(下)演算法
- AI 決策樹判斷黨派AI
- 決策樹模型(2)特徵選擇模型特徵