# -*- coding: utf-8 -*-
from sklearn import tree
# visualize code
from sklearn.externals.six import stringio
import pydotplus
# 決策樹演算法
# 初步的兩個特性的判斷,[重量,表皮光滑度](對於水果,可以是:1=光滑,0=粗糙)
# 結論標籤,1=蘋果,0=橘子
features = [[140,1],[130,1],[150,0],[170,0],[150,1],[130,0]]
features_names = ['重量','表皮光滑度']
labels = [0, 0, 1, 1, 0, 1]
label_name = ['橘子','蘋果']
#呼叫決策樹演算法的核心語句
dt = tree.decisiontreeclassifier()
dt= dt.fit(features, labels)
#測試資料,**[200,1]
print(dt.predict([[200,1]]))
# 可以根據測試資料,得到**的結果
# 此處新增三個"截止
# 移動標記來進行**執行測試
dot_data = stringio()
tree.export_graphviz(dt,
out_file = dot_data,
feature_names = features_names,
class_names = label_name,
filled = true, rounded = true,
impurity = false)
graph = pydotplus.graph_from_dot_data(dot_data.getvalue().replace('helvetica','"microsoft yahei"'))
print(dot_data)
#graph = pydotplus.graph_from_dot_data(dot_data.getvalue())
#下面解決windows下亂碼問題
graph = pydotplus.graph_from_dot_data(dot_data.getvalue().replace('helvetica','"microsoft yahei"'))
print(graph)
graph.write_pdf("basic.pdf")
從執行結果可以知道**[200,1]為蘋果
features_names = ['重量','表皮光滑度']
labels = [0, 0, 1, 0, 0, 1]
則[200,0]的**結果是[0]
3 1決策樹演算法應用
1.python 2.python機器學習的庫 scikit learn 2.1 特性 簡單高效的資料探勘和機器學習分析 對所有使用者開放,根據不同需求高度可重用性 基於numpy,scipy和matplotlib 開源,商用級別 獲得 bsd許可 2.2 覆蓋問題領域 分類 classificat...
決策樹演算法
決策樹是一種樹型結構,其中每個內部結點表示在乙個屬性上的測試,每個分支代表乙個測試輸出,每個葉結點代表一種類別。決策樹學習是以例項為基礎的歸納學習,採用的是自頂向下的遞迴方法,其基本思想是以資訊熵為度量構造一棵熵值下降最快的樹,到葉子結點處的熵值為零,此時每個葉節點中的例項都屬於同一類。決策樹學習演...
決策樹演算法
本文主要介紹id3 c4.5和cart演算法 決策樹起源於概念學習系統 cls 概念學習模型 是乙個事先定義的範疇集合和一些有關例子是否落入給定範疇的判定 概念學習的主要任務 是判斷所給定事物的屬性或特性,並且正確地區分這些事物,將其劃分到某乙個範疇 對於如下決策樹模型 我們首先考慮他的屬性outl...