決策樹,主要用來分類和回歸
一、首先看下分類決策樹
#載入鳶尾花資料集
from sklearn.datasets import load_iris
iris = load_iris()
x, y = iris.data, iris.target
features = iris.feature_names
#載入交叉驗證莫模組
from sklearn.cross_validation import cross_val_score
from sklearn.cross_validation import kfold
crossvalidation = kfold(n=x.shape[0], n_folds=5, shuffle=true, random_state=1)
#載入決策樹
結果顯示最優方案為4層,即4個分叉的樹
為優化結果,讓分類方案更加簡潔,可以設定樹節點最小樣本數。
tree_classifier = tree.decisiontreeclassifier(min_samples_split=30, min_samples_leaf=10, random_state=0)
tree_classifier.fit(x,y)
score = np.mean(cross_val_score(tree_classifier, x, y, scoring='accuracy', cv=crossvalidation, n_jobs=1))
print ('accuracy: %.3f' % score)
結果如下:精準度為0.913,且只有2層,
二、回歸決策樹
#構建回歸樹
#載入boston資料集
from sklearn.datasets import load_boston
boston = load_boston()
x, y = boston.data, boston.target
features = boston.feature_names
#使用回歸決策樹
from sklearn.tree import decisiontreeregressor
regression_tree = tree.decisiontreeregressor(min_samples_split=30, min_samples_leaf=10, random_state=0)
regression_tree.fit(x,y)
score = np.mean(cross_val_score(regression_tree, x, y, scoring='neg_mean_squared_error', cv=crossvalidation, n_jobs=1))
print('mean squared error: %.3f' % abs(score))
均方差僅有11.4,效果比較好。
決策樹(分類與回歸)
首先我們要知道,決策樹是根據訓練集構造乙個樹結構,每個分叉相當於一次判斷,每個葉子節點就是模型的輸出。如下圖所示 以輸入特徵為離散值的分類決策樹為例,周志華老師 機器學習 給出的演算法偽 決策樹分類演算法選擇最優屬性演算法常用資訊增益法。首先了解資訊熵,它的公式如下 e nt d k 1 y pkl...
決策樹 決策樹引數介紹(分類和回歸)
前面總結了資訊熵,資訊增益和基尼資訊的定義,以及決策樹三大演算法的原理及迭代過程,今天介紹下python中機器學習sklearn庫中決策樹的使用引數 決策樹既可以做分類,也可以做回歸,兩者引數大體相近,下面會先介紹分類,再對回歸不一樣的引數做單獨說明 1 criterion 特徵選取方法,可以是gi...
決策樹(二)決策樹回歸
回歸 決策樹也可以用於執行回歸任務。我們首先用sk learn的decisiontreeregressor類構造一顆回歸決策樹,並在乙個帶雜訊的二次方資料集上進行訓練,指定max depth 2 import numpy as np quadratic training set noise np.r...