数学建模--决策树的预测模型的Python实现

这篇具有很好参考价值的文章主要介绍了数学建模--决策树的预测模型的Python实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.算法流程简介

2.算法核心代码

3.算法效果展示文章来源地址https://www.toymoban.com/news/detail-709709.html

1.算法流程简介

"""
决策树的应用:对泰坦尼克号数据集成员进行预测生死
算法流程还是比较简单的,简单学习一下决策树跟着注释写即可
文章参考:https://zhuanlan.zhihu.com/p/133838427
算法种遇上sklearn的函数还是比较多的,请将sklearn函数更新到最新
更新代码如下所示:
pip install --upgrade sklearn
"""

2.算法核心代码

#首先导入需要的包
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import classification_report
from sklearn.tree import DecisionTreeClassifier, export_graphviz
from sklearn.feature_extraction import  DictVectorizer
import pandas as pd

titan= pd.read_csv(r'C:\Users\Zeng Zhong Yan\Desktop\train.csv')
# 处理数据,找出特征值和目标值
x = titan[['Pclass', 'Age', 'Sex']]
y = titan['Survived']
print(x)
# 缺失值处理
x['Age'].fillna(x['Age'].mean(), inplace=True)
# 分割数据集到训练集和测试集
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.25)
# 进行处理(特征工程)
dict = DictVectorizer(sparse=False)
x_train = dict.fit_transform(x_train.to_dict(orient="records"))
dict = DictVectorizer(sparse=False)
x_test = dict.fit_transform(x_test.to_dict(orient='records'))
print(dict.get_feature_names_out())
#X_test = vec.fit_transform(X_features)
print(x_train)
# 用决策树进行预测
dec = DecisionTreeClassifier()
dec.fit(x_train, y_train)
# 预测准确率
print("预测的准确率为:", dec.score(x_test, y_test))
# 导出决策树的结构
export_graphviz(dec, out_file=r"C:\Users\Zeng Zhong Yan\Desktop\py.vs\.vscode\数学建模\decision_tree.dot", feature_names=['Age', 'Pclass', 'Sex=female', 'Sex=male'])
算法最终取得的预测正确率:0.78-0.84左右
整体上来看波动还是比较大的
可能是我的数据集不够多,只有800来个,如果用真正的titanic数据集的话,大概会稳定在0.79-0.82之间

3.算法BUG解决


由于现在各种函数库更新比较快,所以有的时候一个看似正常的函数会一直报错.
这个可能与你的库的版本有关,过高或者过低了,没能正确匹配上,我的建议是统一升级到最新版本

1.bug1:AttributeError: 'DictVectorizer' object has no attribute 'feature_names_out'
这个就是典型的版本不符合的问题.
我们需要做以下更改:
#老版本代码
dict = DictVectorizer(sparse=False)
x_test = dict.transform(x_test.to_dict(orient='records'))
print(dict.feature_names_out())
#新版本代码
dict = DictVectorizer(sparse=False)
x_test = dict.fit_transform(x_test.to_dict(orient='records'))
print(dict.get_feature_names_out())
#改完就不会报AttributeError: 'DictVectorizer' object has no attribute 'feature_names_out'

2.bug2:ValueError: Length of feature_names, 4 does not match number of features, 6
#老版本代码:
export_graphviz(dec, out_file=r"C:\Users\Zeng Zhong Yan\Desktop\py.vs\.vscode\数学建模\decision_tree.dot", feature_names=['age', 'pclass=1st', 'pclass=2nd', 'pclass=3rd', 'sex=female', 'sex=male'])
#新版本代码:
export_graphviz(dec, out_file=r"C:\Users\Zeng Zhong Yan\Desktop\py.vs\.vscode\数学建模\decision_tree.dot", feature_names=['Age', 'Pclass', 'Sex=female', 'Sex=male'])
#解释:因为你原先报错提示你只有4个长度,却要容下6个特征类,这显然是不对的,但是我们发现Pclass=1st/2nd/3rd本质上就属于'Pclass',所以就简化成4个特征维度了

到了这里,关于数学建模--决策树的预测模型的Python实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数学建模|预测方法:灰色预测模型

    灰色系统理论是由华中理工大学邓聚龙教授于1982年提出并加以发展的。二十几年来,引起了不少国内外学者的关注,得到了长足的发展。目前,在我国已经成为社会、经济、科学技术在等诸多领域进行预测、决策、评估、规划控制、系统分析与建模的重要方法之一。特别是它

    2024年02月05日
    浏览(38)
  • 【数学建模】 灰色预测模型

    https://www.cnblogs.com/somedayLi/p/9542835.html https://blog.csdn.net/qq_39798423/article/details/89283000?ops_request_misc=request_id=biz_id=102utm_term=%E7%81%B0%E8%89%B2%E9%A2%84%E6%B5%8B%E6%A8%A1%E5%9E%8Butm_medium=distribute.pc_search_result.none-task-blog-2 all sobaiduweb~default-2-89283000.142 v88 control_2,239 v2 insert_chatgptspm=1018.2226.3001.418

    2024年02月12日
    浏览(38)
  • 数学建模——预测类模型

    定义明晰 中短期预测(短期:1年内;中期:2-5年): 例如天气预报、股票价格预测、销售量预测等。 长期预测(5-10年及以上): 例如人口增长、能源消耗、气候变化等。 中短期预测           数据需求小2/10/100 自变量(多个)+因变量(一个)            不可反

    2024年02月03日
    浏览(30)
  • 数学建模:灰色预测模型

    🔆 文章首发于我的个人博客:欢迎大佬们来逛逛 三个基本方法: 累加数列 :计算一阶累加生成数列 x ( 1 ) ( k ) = ∑ i = 1 k x ( 0 ) ( i ) , k = 1 , 2 , ⋯   , n , x^{(1)}(k)=sum_{i=1}^kx^{(0)}(i),k=1,2,cdots,n, x ( 1 ) ( k ) = i = 1 ∑ k ​ x ( 0 ) ( i ) , k = 1 , 2 , ⋯ , n , 累减数列 :计算一阶累减生

    2024年02月09日
    浏览(28)
  • 数学建模--预测类模型

    目录 一、中短期预测 1、灰色预测法 ①适用范围 ②模型实现  2、回归分析 ①适用范围 ②模型实现  3、时间序列分析 ①自适应滤波法 ②指数平滑法 ③移动平均法 4、微分方程 二、长期预测 1、神经网络预测 2、logistic模型 ①模型介绍 ②模型分析及代码 灰色预测模型 ( G

    2024年02月03日
    浏览(31)
  • 数学建模系列-预测模型(三)时间序列预测模型

    目录 前言 1 时间序列定义 1.1 朴素法 1.2 简单平均法 1.3 移动平均法 1.4 指数平滑法 1.4.1 一次指数平滑  1.4.2 二次指数平滑 1.4.3 三次指数平滑 1.5 AR模型 1.6 MA模型 1.7 ARMA模型 1.8 ARIMA模型 1.9 SARIMA模型         时间序列的目的:进行预测, 根据已有的时间序列数据预测未来

    2024年02月07日
    浏览(35)
  • 数学建模之“灰色预测”模型

    1、CUMCM2003A SARS的传播问题 2、CUMCM2005A长江水质的评价和预测CUMCM2006A出版社的资源配置 3、CUMCM2006B艾滋病疗法的评价及疗效的预测问题 4、CUMCM2007A 中国人口增长预测   灰色系统的应用范畴大致分为以下几方面: (1)灰色关联分析。 (2)灰色预测:人口预测;灾变预测....等等。

    2024年02月12日
    浏览(31)
  • 数学建模系列-预测模型(四)马尔可夫预测

    目录 1 Markov模型含义 2 模型分析 3 应用题型  3.1 问题分析 3.2 模型建立 4 Markov模型优缺点         马尔可夫(Markov)预测法,就是一种关于事件发生的概率预测方法。它是根据事件的目前状况来预测其将来各个时刻(或时期)变动状况的一种预测方法。马尔可夫预测法是地

    2024年02月07日
    浏览(31)
  • 数学建模day16-预测模型

            本讲首先将介绍灰色预测模型,然后将简要介绍神经网络在数据预测中的应用,在本讲的最 后,我将谈谈清风大佬对于数据预测的一些看法。         注:本文源于数学建模学习交流相关公众号观看学习视频后所作 目录 灰色系统 GM(1,1)模型: Grey(Gray) Model GM(

    2024年01月21日
    浏览(24)
  • 数学建模常用模型(一):灰色预测法

    灰色预测法是一种用于处理少量数据、数据质量较差或者缺乏历史数据的预测方法。它适用于一些非线性、非平稳的系统,尤其在短期预测和趋势分析方面有着广泛的应用。灰色预测法作为一种强大的数学建模工具,通过利用有限的信息,能够在不完备的条件下进行准确的预

    2024年02月09日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包