tensorflow决策树初接触

 

    决策树是一种树形结构,为人们提供决策依据,决策树可以用来回答yes和no问题,它通过树形结构将各种情况组合都表示出来,每个分支表示一次选择(选择yes还是no),直到所有选择都进行完毕,最终给出正确答案。

 

 

 决策树(decision tree)是一个树结构(可以是二叉树或非二叉树)。在实际构造决策树时,通常要进行剪枝,这时为了处理由于数据中的噪声和离群点导致的过分拟合问题。剪枝有两种:

    先剪枝——在构造过程中,当某个节点满足剪枝条件,则直接停止此分支的构造。

    后剪枝——先构造完成完整的决策树,再通过某些条件遍历树进行剪枝。

import numpy as np
import matplotlib.pyplot as plt
from sklearn.tree import DecisionTreeRegressor


if __name__ == "__main__":
    n = 500
    x = np.random.rand(n) * 8 - 3
    x.sort()
    y = np.cos(x) + np.sin(x) + np.random.randn(n) * 0.4
    x = x.reshape(-1, 1)

    reg = DecisionTreeRegressor(criterion='mse')
    # reg1 = RandomForestRegressor(criterion='mse')
    dt = reg.fit(x, y)
    # dt1 = reg1.fit(x, y)
    x_test = np.linspace(-3, 5, 100).reshape(-1, 1)
    y_hat = dt.predict(x_test)
    plt.figure(facecolor="w")
    plt.plot(x, y, 'ro', label="actual")
    plt.plot(x_test, y_hat, 'k*', label="predict")
    plt.legend(loc="best")
    plt.title(u'Decision Tree', fontsize=17)
    plt.tight_layout()
    plt.grid()
    plt.show()

 

posted @ 2021-01-11 21:50  凋零_(  阅读(660)  评论(0编辑  收藏  举报