[机器学习系列]深入探索回归决策树:从参数选择到模型可视化

目录

一、回归决策树的参数

二、准备数据

 三、构建回归决策树

(一)拟合模型

(二)预测数据

(三)查看特征重要性

 (四)查看模型拟合效果

(五) 可视化回归决策树真实值和预测值

(六)可视化决策树并保存

 部分结果如下:


一、回归决策树的参数

DecisionTreeRegressor(*, criterion='mse', splitter='best', max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features=None, random_state=None, max_leaf_nodes=None, min_impurity_decrease=0.0, min_impurity_split=None, presort='deprecated', ccp_alpha=0.0)

具体参数解释可参考下方链接的文档,几乎和分类决策树相差不大 

sklearn.tree.DecisionTreeRegressor-scikit-learn中文社区

二、准备数据
 

from sklearn.datasets import load_boston
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split

# 加载数据
boston = load_boston()
# 创建DataFrame
df = pd.DataFrame(boston.data, columns=boston.feature_names)
df['PRICE'] = boston.target

# 数据特征和目标变量
X = df.drop('PRICE', axis=1)
y = df['PRICE']

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# 打印训练集和测试集的形状
print("训练集特征数据形状:", X_train.shape)
print("训练集目标变量形状:", y_train.shape)
print("测试集特征数据形状:", X_test.shape)
print("测试集目标变量形状:", y_test.shape)

 三、构建回归决策树

(一)拟合模型

from sklearn.tree import DecisionTreeRegressor
clf=DecisionTreeRegressor()
clf = clf.fit(X_train, y_train)

(二)预测数据

y_pred=clf.predict(X_test)

(三)查看特征重要性

clf.feature_importances_

 (四)查看模型拟合效果

from sklearn.metrics import r2_score,mean_squared_error, explained_variance_score, mean_absolute_error
print("决策树回归模型测试集R^2:",round(r2_score(y_test,y_pred)))
print("决策树回归模型测试集均方误差:",round(mean_squared_error(y_test,y_pred)))
print("决策树回归模型测试集解释方差分:",round(explained_variance_score(y_test,y_pred)))
print("决策树回归模型测试集绝对误差:",round(mean_absolute_error(y_test,y_pred)))

(五) 可视化回归决策树真实值和预测值

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']

# 假设X_test和y_test已经定义好了
plt.figure(figsize=(10, 6))  # 创建一个新的图形,设置大小
plt.plot(range(len(y_test)), y_test, color='blue', label='实际值')  # 绘制散点图,实际值用蓝色表示
plt.plot(range(len(y_pred)), y_pred, color='red', label='预测值')  # 绘制预测值的线,用红色表示
plt.title('决策树回归预测与实际值对比')  # 图表标题
plt.xlabel('测试集样本')  # X轴标签
plt.ylabel('值')  # Y轴标签
plt.legend()  # 显示图例
plt.grid(True)  # 显示网格
plt.show()  # 显示图表

(六)可视化决策树并保存

import graphviz
from sklearn import tree
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
 
dot_data = tree.export_graphviz(clf,out_file = None,  
                                filled=True, rounded=True) 
dot_data=dot_data.replace('helvetica', 'SimHei')
graph = graphviz.Source(dot_data) 
graph.render("my_decision_tree", format='png')  # 保存为png格式
 
graph

 部分结果如下:

可通过控制树的深度、叶子节点等参数对决策树进行剪枝操作。可以通过网格搜索法进行参数调优。具体可参考往期博客:

决策树分类任务实战(python 代码详解)-CSDN博客

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用Anaconda Navigator进行优衣库销售数据分析可视化项目时,可以应用一些模型来进行数据分析,从而获取有关销售趋势、销售预测和其他相关指标的洞察和见解。以下是一些常见的模型分析方法: 1. 时间序列分析: - 时间序列分析可用于揭示销售数据的季节性、趋势和周期性。 - 可以使用ARIMA模型、指数平滑法、移动平均法等方法,对销售数据进行时间序列分析,并预测未来销售趋势。 2. 回归分析: - 回归分析用于探索和建模销售数据与其他相关变量之间的关系。 - 可以使用线性回归、多元回归或非线性回归等方法,建立销售数据与产品价格、广告投入、促销活动等因素之间的关联模型。 3. 聚类分析: - 聚类分析可用于将销售数据进行分组和分类,以发现潜在的市场细分或产品类别。 - 可以使用K均值聚类、层次聚类或密度聚类等方法,对销售数据进行聚类分析,并识别不同的消费者群体或市场细分。 4. 关联规则分析: - 关联规则分析用于发现销售数据中的关联模式和规律。 - 可以使用Apriori算法或FP-Growth算法等,从销售数据中挖掘频繁项集和关联规则,揭示不同产品之间的关联性和交叉销售机会。 5. 预测模型: - 预测模型可用于基于历史销售数据,预测未来的销售趋势和销售额。 - 可以使用时间序列预测模型(如ARIMA、指数平滑法等)或机器学习算法(如回归模型决策树、随机森林等)进行销售预测分析。 在Anaconda Navigator中,可以使用Python的相关库和工具,如pandas、numpy、scikit-learn等,来实现上述模型分析方法。根据具体的分析目标和数据特征,选择合适的模型方法,并进行数据预处理、模型训练和结果评估,以获取有关销售数据的深入洞察和预测分析。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值