决策树、随机森林,小例子


import matplotlib.pyplot as plt
import pandas as pd
from sklearn.datasets.california_housing import fetch_california_housing
housing=fetch_california_housing()
print(housing.DESCR)
from sklearn import tree
dtr=tree.DecisionTreeRegressor(max_depth=2)
# .fit 相当于传进两个数据,一个是输入x。一个是输出y
dtr.fit(housing.data[:,[6,7]],housing.target)

#得到决策树的图
#指定dtr 和 feature_names
dot_data=tree.export_graphviz(
        dtr,
        out_file=None,
        feature_names=housing.feature_names[6:8],
        filled=True,
        impurity=False,
        rounded=True)

#pip install pydotplus
import pydotplus
graph=pydotplus.graph_from_dot_data(dot_data)
graph.get_nodes()[7].set_fillcolor('#FFF2DD')
from IPython.display import Image
Image(graph.create_png())

graph.write_png("de_tree.png")

#将数据集切分成训练集和测试集
#把数据传进来,取10%为测试集
#为了随机的结果是一致的,指定random_state
from sklearn.model_selection import train_test_split
data_train, data_test, target_train,target_test= train_test_split(housing.data,housing.target,test_size=0.1,random_state=42)
dtr=tree.DecisionTreeRegressor(random_state=42)
dtr.fit(data_train,target_train)
print(dtr.score(data_test,target_test))

from sklearn.ensemble import RandomForestRegressor
rfr=RandomForestRegressor(random_state=42)
rfr.fit(data_train,target_train)
print(rfr.score(data_test,target_test))

#参数的遍历选择,交叉验证
from sklearn.grid_search import GridSearchCV
tree_param_grid ={'min_samples_split':list((3,6,9)),'n_estimators':list((10,50,100))}
grid=GridSearchCV(RandomForestRegressor(),param_grid=tree_param_grid,cv=5)
grid.fit(data_train,target_train)
print(grid.grid_scores_,grid.best_params_,grid.best_score_)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值