ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

机器学习入门篇——sklearn入门&决策树在sklearn中的实现

2021-04-23 11:30:38  阅读:154  来源: 互联网

标签:tree 学习 入门篇 算法 sklearn 节点 决策树


机器学习入门篇——sklearn入门&决策树在sklearn中的实现

本文是学习于B站的菜菜的sklearn学习:视频链接

一、什么是sklearn

1、sklearn是一个开源的基于Python语言的机器学习工具包

2、sklearn 通过NumPy,SciPy和Matplotlib等python数值计算的库实现高效的算法应用

3、它涵盖了几乎所有的主流机器学习算法

为什么选择sklearn

它很有深度,必须对算法掌握很好才能用好sklearn,且它缺乏优秀的解读,并且是通往数据挖掘工程师的起点。

开发环境是Jupyter lab
(Python3.9.4 Scikit-learn Graphviz画决策树 Numpy Pandas Matplotlib SciPy)

sklearn有一个完整而丰富的官网,里面讲解了基于sklearn对所有算法的实现和简单应用。
sklearn网址:sklearn 网址

在工程应用中,用python手写代码来从头实现一个算法的可能性非常低,这样不仅耗时耗力,还不一定能够写出构架清晰,稳定性强的模型。更多情况下,是分析采集到的数据,根据数据特征选择适合的算法,在工具包中调用算法,调整算法的参数,获取需要的信息,从而实现算法效率和效果之间的平衡。而sklearn,正是这样一个可以帮助我们高效实现算法应用的工具包

如果要详细了解算法的内容:介绍两本专业书籍
《数据挖掘导论》机械工业出版社
《机器学习》周志华

二、决策树

决策树(Decision Tree)是一种非参数的有监督学习方法,(非参数也即不限制数据类型和结构,可用于处理各种各样的数据。有监督学习即必须有标签,要给出算法结果 )
它能够从一系列有特征和标签的数据中总结出决策规则,并用树状图的结构来呈现这些规则,以解决分类和回归问题。决策树算法容易理解,适用各种数据,在解决各种问题时都有良好表现,尤其是以树模型为核心的各种集成算法,在各个行业和领域都有广泛的应用。

我们来简单了解一下决策树是如何工作的。决策树算法的本质是一种图结构,我们只需要问一系列问题就可以对数据进行分类了。

在这个决策过程中,我们一直在对记录的特征进行提问。最初的问题所在的地方叫做根节点,在得到结论前的每一个问题都是中间节点,而得到的每一个结论都叫做叶子节点,每个叶子节点都是一个类别标签

关键概念:节点

决策树算法的核心是要解决两个问题:

1)如何从数据表中找出最佳节点和最佳分枝?

2)如何让决策树停止生长,防止过拟合?

几乎所有决策树有关的模型调整方法,都围绕这两个问题展开。这两个问题背后的原理十分复杂。
sklearn中的决策树
模块sklearn.tree
sklearn中决策树的类都在”tree“这个模块之下。这个模块总共包含五个类:

tree.DecisionTreeClassifier:分类树
tree.DecisionTreeRegressor:回归树
tree.export_graphviz:将生成的决策树导出为DOT格式,画图专用
tree.ExtraTreeClassifier:高随机版本的分类树
tree.ExtraTreeRegressor:高随机版本的回归树

sklearn基本建模流程:
三个流程
在这个流程下,分类树的基本代码是:

from sklearn import tree                                #导入需要的模块
​
clf = tree.DecisionTreeClassifier()                   #实例化
clf = clf.fit(X_train,y_train)                               #用训练集数据训练模型
result = clf.score(X_test,y_test)                       #导入测试集,从接口中调用需要的信息

标签:tree,学习,入门篇,算法,sklearn,节点,决策树
来源: https://blog.csdn.net/guoyaqi123456/article/details/116023153

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有