決策樹是處理分類的常用演算法,但它也可以用來處理回歸問題,其關鍵在於選擇最佳分割點,基本思路是:遍歷所有資料,嘗試每個資料作為分割點,並計算此時左右兩側的資料的離差平方和,並從中找到最小值,然後找到離差平方和最小時對應的資料,它就是最佳分割點。sklearn.tree.decisiontreeregressor函式即利用決策樹處理回歸問題,樹的深度越高擬合效果越好,也更容易發生過擬合。
回歸決策樹實踐**及效果如下:
#!/usr/bin/python
# -*- coding:utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
from sklearn.tree import decisiontreeregressor
if __name__ == "__main__":
n = 100
x = np.random.rand(n) * 6 - 3
# [-3,3)
x.sort()
y = np.sin(x) + np.random.randn(n) * 0.05
x = x.reshape(-1, 1) # 轉置後,得到n個樣本,每個樣本都是1維的
reg = decisiontreeregressor(criterion='mse', max_depth=9)
dt = reg.fit(x, y)
x_test = np.linspace(-3, 3, 50).reshape(-1, 1)
y_hat = dt.predict(x_test)
plt.plot(x, y, 'r*', ms=10, label='actual')
plt.plot(x_test, y_hat, 'g-', linewidth=2, label='predict')
plt.legend(loc='upper left')
plt.grid()
plt.show()
# 比較決策樹的深度影響
決策樹(二)決策樹回歸
回歸 決策樹也可以用於執行回歸任務。我們首先用sk learn的decisiontreeregressor類構造一顆回歸決策樹,並在乙個帶雜訊的二次方資料集上進行訓練,指定max depth 2 import numpy as np quadratic training set noise np.r...
決策樹 回歸
決策樹常用於分類問題,但是也能解決回歸問題。在回歸問題中,決策樹只能使用cart決策樹,而cart決策樹,既可以分類,也可以回歸。所以我們說的回歸樹就是指cart樹。為什麼只能是cart樹 1.回想下id3,後需要計算每個類別佔總樣本的比例,回歸哪來的類別,c4.5也一樣 2.回歸問題肯定是連續屬性...
決策樹 回歸樹
回歸樹重要介面 交叉驗證 1 如何確定最佳節點和最佳分支 2 決策數什麼時候停止生長 防止過擬合 from sklearn import tree 匯入需要的模組 clf tree.decisiontreeclassifier 例項化 clf clf.fit x train,y train 訓練集資...