决策树-回归树

引包

import pandas as pd
from sklearn import preprocessing
from sklearn import tree
from sklearn.datasets import load_boston  # 波士顿房价

加载数据

boston_house = load_boston()
boston_feature_name = boston_house.feature_names
boston_features = boston_house.data
boston_target = boston_house.target
boston_feature_name  # 特征名称 不懂可以用  boston_house.DESCR  查看
# 查看前5行
boston_features[:5,:]

构建模型

rgs = tree.DecisionTreeRegressor(max_depth=4)
rgs = rgs.fit(boston_features,boston_target)

可视化

import pydotplus
from IPython.display import Image,display
dot_data = tree.export_graphviz(rgs,
                                out_file=None,
                                feature_names = boston_feature_name,
                                class_names = boston_target,
                                filled = True,
                                rounded = True
                               )  # 输出文件 特征 目标 填充颜色
import os
os.environ["PATH"] += os.pathsep + 'C:/Program Files (x86)/Graphviz2.38/bin/'  #注意修改你的路径
graph = pydotplus.graph_from_dot_data(dot_data)
display(Image(graph.create_png()))

image

小结

回归树模型:

  • 把整个特征空间切分成不相交的子区域
  • 每个区域与古城该区域样本的均值

回归树构建

  • 自顶向下贪婪式二分希望最小化RSS
  • 可以通过正则化项去控制过拟合