24/8/15算法笔记 复习_决策回归树

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

#创建数据
X_train = np.linspace(0,2*np.pi,40).reshape(-1,1)#训练数据就是符合要求的二维数据
#二维:[[样本一].[样本二],[样本三]....]多个样本,每个样本,包含多个属性
 
#将 X_train 的每个特征值通过正弦(np.sin)和余弦(np.cos)函数进行变换,并将结果沿着指定的轴(在这个例子中是轴1,即列方向)进行拼接。
y_train = np.concatenate([np.sin(X_train),np.cos(X_train)],axis = 1)
 
plt.figure(figsize=(4,4))
plt.scatter(y_train[:,0],y_train[:,1])

X_test = np.linspace(0,2*np.pi,256).reshape(-1,1)

#首先使用线性回归
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X_train,y_train)#建模
 
y_pred = model.predict(X_test)#预测
 
#如果效果好,绘制测试数据应该是圆
plt.scatter(y_pred[:,0],y_pred[:,1])

#决策树
#决策树深度为3
model =DecisionTreeRegressor(max_depth=3)
model.fit(X_train,y_train)#建模
 
y_pred = model.predict(X_test)#预测
display(y_pred.shape)
#如果效果好,绘制测试数据应该是圆
plt.scatter(y_pred[:,0],y_pred[:,1])
_ = plt.axis('equal')#横纵坐标相等

import graphviz


dot_data = tree.export_graphviz(model,filled=True,rounded = True)
 
graph = graphviz.Source(dot_data) #使用 graphviz 的 Source 对象来创建图形
graph

#决策树深度为4
model =DecisionTreeRegressor(max_depth=4)
model.fit(X_train,y_train)#建模
 
y_pred = model.predict(X_test)#预测
display(y_pred.shape)
#如果效果好,绘制测试数据应该是圆
plt.scatter(y_pred[:,0],y_pred[:,1])
_ = plt.axis('equal')#横纵坐标相等

#不进行剪枝,默认展开
model =DecisionTreeRegressor(max_depth=None)
model.fit(X_train,y_train)#建模
 
y_pred = model.predict(X_test)#预测
display(y_pred.shape)
#如果效果好,绘制测试数据应该是圆
plt.scatter(y_pred[:,0],y_pred[:,1])
_ = plt.axis('equal')#横纵坐标相等

dot_data = tree.export_graphviz(model,filled=True,rounded = True)
 
graph = graphviz.Source(dot_data)
graph

决策回归树(Decision Regression Tree)是一种用于解决回归问题的机器学习算法。它特别适用于以下类型的问题:

  1. 连续值预测:决策回归树预测的是一个连续的数值,如房价、温度、销售额等。

  2. 非线性关系:它可以捕捉数据中复杂的非线性关系,而不需要事先假设数据遵循特定的数学模型。

  3. 特征选择:通过构建树的过程中的特征分裂,决策回归树可以识别出对预测目标变量最重要的特征。

  4. 数据探索:决策树提供了一种直观的数据探索方式,帮助理解不同特征如何影响预测结果。

  5. 模型解释:决策树模型易于解释和可视化,可以展示特征与目标变量之间的关系。

  6. 多变量问题:它可以处理具有多个特征(自变量)的数据集。

  7. 多输出问题:虽然决策回归树通常用于单输出问题,但也可以扩展到多输出回归问题。

  8. 数据集大小:对于小到中等大小的数据集,决策回归树可以工作得很好,尤其是在数据量不足以训练复杂的模型时。

  9. 数据类型:决策树可以处理数值型和类别型数据,只要适当地预处理和编码。

  10. 先验知识:如果对数据集中的变量关系有先验知识,可以通过决策树的构建过程来验证这些知识。

  11. 基线模型:在许多情况下,决策树作为基线模型,提供了一个简单的性能比较标准。

  12. 集成学习:虽然决策树本身可能容易过拟合,但它们可以作为集成方法(如随机森林或梯度提升树)的一部分,以提高预测性能和鲁棒性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值