Python机器学习——决策树

简介: Python机器学习——决策树

1、概念

决策树(DEcision Tree)

他通过对训练样本的学习,并建立分类规则,对新样本数据进行分类,属于有监督学习

决策树也是一种多功能的机器学习算法,它可以

实现分类和回归任务,甚至是多输出任务。

优点:

决策树易于理解和实现

决策树可处理数值型和非数值型数据

2 决策树生成方法

dtModel=DecisionTreeClassifier(max_leaf_nodes=None)

max_leaf_nodes 最大的叶子节点

训练模型

dtMOdel.fit(featureData,targetData)

featuereData 属性数据

targetData 目标数据

dtModel.Predict(featureData)

3、决策树绘图方法

sKlearn.tree.export_graphviz(…)

dtModel 决策树模型

out_file 图形数据的输出路径

class_names 目标属性名称,中文

feature_names 特征属性名称 中文

filled=Ture 是否使用颜色填充

rounded=TRUE 边框是否采用圆角边框

special_characters 是否有特殊字符

4、案例代码示例

升学意愿调查——

列 备注

studentID 学生ID

GEnder 性别

ParentIncome 父母亲收入

IQ IQ

parentEncouragement 父母亲是否鼓励

ColegePlans 是否打算上大学

目的: 想换出决策树的图形,用于指导人员判断某个学生是否具有升学意愿

```python
import pandas;
data = pandas.read_csv('D:\\DATA\\pycase\\number2\\5.3\\data.csv')
# 将虚拟变量转换为数值变量,在这里有性别和是否推荐升学
dummyColumns=["Gender","ParentEncouragement"]
for column in dummyColumns:
    data[column]=data[column].astype('category')
dummiesData=pandas.get_dummies(
        data,
        columns=dummyColumns,
        prefix=dummyColumns,
        prefix_sep="=",
        drop_first=True
        )
# 列表展示
dummiesData.columns
# 挑选出可以建模的列
fData=dummiesData[[
        'ParentIncome','IQ','Gender=Male',
        'ParentEncouragement=Not Encouraged'
        ]]
# 挑选出目标变量
tData=dummiesData['CollegePlans']
# 导入决策树方法
from sklearn.tree import DecisionTreeClassifier
# 设置叶子节点的数据为8,太大的话会导致过拟合,8表示的是叶子最下端的叶子数量
dtModel=DecisionTreeClassifier(max_leaf_nodes=8)
# 导入十折交叉验证方法,得出模型的最终分数
from sklearn.model_selection import cross_val_score
cross_val_score(
        dtModel,
        fData,
        tData,
        cv=10
        )
# 进行模型的训练
dtModel.fit(fData,tData)
from sklearn.tree import export_graphviz
# 需要绘图的dot文件
with open('D:\\DATA\\pycase\\number2\\5.3\\data.dot','w') as f:
    f=export_graphviz(dtModel,out_file=f)
# 在cmd客户端进行dote命令绘图,切换到dot文件路径
# dot -Tpng data.dot -o loan_tree.png #png
# dot -Tpdf data.dot -o loan_tree.pdf
# 通过pypdot进行运行和绘制
import pydot
from sklearn.externals.six import StringIO
dot_data=StringIO()
export_graphviz(
        dtModel,
        out_file=dot_data,
        class_names=["不计划","计划"],
        feature_names=["父母收入","智商","性别=男","父母鼓励=不鼓励"],
        filled=True,
        rounded=True,
        special_characters=True
        )
# 将dot_data 转换为图形变量
graph=pydot.graph_from_dot_data(dot_data.getvalue())
#设置字体格式
graph.get_node("node")[0].set_fontname("Microsoft YaHei")
# 导出图片
graph.write_png('D:\\DATA\\pycase\\number2\\5.3\\tree.png')
原文链接:https://blog.csdn.net/qq_36327687/article/details/84944850


目录
相关文章
|
6月前
|
机器学习/深度学习 算法 Python
机器学习特征筛选:向后淘汰法原理与Python实现
向后淘汰法(Backward Elimination)是机器学习中一种重要的特征选择技术,通过系统性地移除对模型贡献较小的特征,以提高模型性能和可解释性。该方法从完整特征集出发,逐步剔除不重要的特征,最终保留最具影响力的变量子集。其优势包括提升模型简洁性和性能,减少过拟合,降低计算复杂度。然而,该方法在高维特征空间中计算成本较高,且可能陷入局部最优解。适用于线性回归、逻辑回归等统计学习模型。
218 7
|
4月前
|
机器学习/深度学习 人工智能 算法
Scikit-learn:Python机器学习的瑞士军刀
想要快速入门机器学习但被复杂算法吓退?本文详解Scikit-learn如何让您无需深厚数学背景也能构建强大AI模型。从数据预处理到模型评估,从垃圾邮件过滤到信用风险评估,通过实用案例和直观图表,带您掌握这把Python机器学习的'瑞士军刀'。无论您是AI新手还是经验丰富的数据科学家,都能从中获取将理论转化为实际应用的关键技巧。了解Scikit-learn与大语言模型的最新集成方式,抢先掌握机器学习的未来发展方向!
660 12
Scikit-learn:Python机器学习的瑞士军刀
|
5月前
|
算法 Java Python
使用Python来绘制樱花树
本文以林徽因的《你是人间的四月天》为引,将春日意象与现代职场编程艺术结合,通过Python的Turtle模块绘制分形树和花瓣图案。文章详细解析了Turtle模块的使用方法、递归算法及随机性在图形生成中的应用,展示了如何用代码创造自然美感。核心代码包含tree函数(绘制分形树)和petal函数(绘制花瓣),最终生成一幅生动的春日画卷。项目不仅帮助读者掌握Turtle绘图技巧,更激发对编程艺术的兴趣,鼓励探索数字世界的无限可能。
130 5
|
7月前
|
机器学习/深度学习 数据可视化 算法
Python与机器学习:使用Scikit-learn进行数据建模
本文介绍如何使用Python和Scikit-learn进行机器学习数据建模。首先,通过鸢尾花数据集演示数据准备、可视化和预处理步骤。接着,构建并评估K近邻(KNN)模型,展示超参数调优方法。最后,比较KNN、随机森林和支持向量机(SVM)等模型的性能,帮助读者掌握基础的机器学习建模技巧,并展望未来结合深度学习框架的发展方向。
Python与机器学习:使用Scikit-learn进行数据建模
|
6月前
|
机器学习/深度学习 数据可视化 TensorFlow
Python 高级编程与实战:深入理解数据科学与机器学习
本文深入探讨了Python在数据科学与机器学习中的应用,介绍了pandas、numpy、matplotlib等数据科学工具,以及scikit-learn、tensorflow、keras等机器学习库。通过实战项目,如数据可视化和鸢尾花数据集分类,帮助读者掌握这些技术。最后提供了进一步学习资源,助力提升Python编程技能。
|
6月前
|
机器学习/深度学习 数据可视化 算法
Python 高级编程与实战:深入理解数据科学与机器学习
在前几篇文章中,我们探讨了 Python 的基础语法、面向对象编程、函数式编程、元编程、性能优化和调试技巧。本文将深入探讨 Python 在数据科学和机器学习中的应用,并通过实战项目帮助你掌握这些技术。
|
9月前
|
机器学习/深度学习 数据可视化 大数据
机器学习与大数据分析的结合:智能决策的新引擎
机器学习与大数据分析的结合:智能决策的新引擎
546 15
|
10月前
|
机器学习/深度学习 数据采集 算法
机器学习在医疗诊断中的前沿应用,包括神经网络、决策树和支持向量机等方法,及其在医学影像、疾病预测和基因数据分析中的具体应用
医疗诊断是医学的核心,其准确性和效率至关重要。本文探讨了机器学习在医疗诊断中的前沿应用,包括神经网络、决策树和支持向量机等方法,及其在医学影像、疾病预测和基因数据分析中的具体应用。文章还讨论了Python在构建机器学习模型中的作用,面临的挑战及应对策略,并展望了未来的发展趋势。
623 1
|
10月前
|
机器学习/深度学习 数据可视化 数据处理
掌握Python数据科学基础——从数据处理到机器学习
掌握Python数据科学基础——从数据处理到机器学习
145 0

热门文章

最新文章

推荐镜像

更多