ICode9

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

SKlearn

2022-01-28 21:03:23  阅读:252  来源: 互联网

标签:纯度 tree 信息熵 SKlearn 决策树 节点 sklearn


SKlearn 深度学习

Sklearn简述

scikit-learn , 又写作 sklearn ,是一个开源的基于python语言的机器学习工具包,它通过 NumPy, SciOy 和 Matplotlib 等 Python 数值计算库实现搞笑的算法应用,并涵盖了几乎所有的主流机器学习算法。

http://scikit-learn.org/stable/index.html

实际工程应用中,Python 手写代码实现算法耗时耗力,要求过高,sklearn 开源帮助我们,调用 API,实现算法,我们只需要 分析采集数据,根据数据选择合适算法,在工具包中调用算法,调整算法参数,获取所需信息。

决策树

1、概述

1.1 基本概念和解决问题

决策树(Decison Tree)是一种非参数的有监督学习方法,它能够从一系列有特征和标签的数据中总结出决策规则,并利用树状图的结构来呈现这些规则,以解决分类和回归问题。 决策树算法易于理解,适用于各种数据, 在解决各种问题时,均有良好表现。

在树中:(以分类树为例)
在这里插入图片描述
最上方的问题节点叫做根节点,在得到结论前的每个阶段都是中间节点,得到的每一个结论(类别:class ) 叫做叶子节点。

根节点: 只有出边,无进边,包含最初的,针对特征的提问。
中间节点:既有进边,也有出边,进边仅有一条,出边可有多条,都是针对特征的提问。
叶子节点:只有进边,无出,每个叶子节点都是一个类别标签。
子节点与父节点 : 在两个相连的节点中,更接近根节点的是父节点,另一个是子节点。

决策树中,算法核心解决两个问题:
1)如何从数据汇表中找出最佳节点和最佳分枝
2)如何让决策树停止生长(防止过拟合)

1.2 sklearn 中决策树

  • 模块 sklearn.tree

sklearn 中鄋的决策树的类都在 tree 这个模块下

tree描述
tree.DecisionTreeClassifier分类树
tree.DecisionTreeRegressor回归树
tree.export_graphviz将生成的决策树导出为 DOT 格式,画图专用
tree.ExraTreeClassifier高随机版本的 分类树
tree.ExtraTreeRegressor高随机版本的 回归树
  • sklearn 建模基本流程
  1. 实例化 决策树 模型
  2. 通过模型接口,训练模型
  3. 导入测试集,从模型接口中 提取信息
from sklearn import tree                     # 导入模块

clf = tree.DecisionTreeClassifier()          # 实例化 决策树
clf = clf.fit(X_train, Y_train)              # 输入训练集,训练模型
											 # X 为数据,Y 为分类结果
result = clf.score(X_test, Y_test)           # 导入测试集,输出测试分数

2. DecisionTreeClassifier 分类树

2.1 重要参数

2.1.1 criterion

为了将表格转化为一棵树,决策树需要找出最佳节点和最佳分枝方法,对分类树而言,衡量此 “最佳” 的指标成为 “不纯度”。 不纯度越低,决策树对训练集的拟合效果越好。现在使用的决策树宣发,在分枝方法上的核心大多围绕某个不纯度相关指标优化上。

不纯度基于节点计算,树中每个节点均会有一个不纯度,且子节点的不纯度一定低于父节点,在同一棵决策树上,叶子节点的不纯度一定最低。

criterion 参数规定计算不纯度的方法。

  1. “entropy” 使用 信息熵(Entropy)
  2. “gini” 使用 基尼系数(Gini impurity)

在这里插入图片描述

t 代表给定节点,i 代表标签的任意一种分类,p(i|t) 代表 标签分类 i 在 t 节点上,所占比例。
当使用 “entropy” 信息熵时,sklearn 实际计算为 基于信息熵的信息增益 : 父节点信息熵与子节点信息熵之差。

比起基尼系数,信息熵对不纯度更加敏感,对不纯度惩罚最强。但在 实际使用中,信息熵和基尼系数效果基本相同。
由于存在对数,信息熵的计算比基尼系数缓慢。 另外,由于信息熵对不纯度更加敏感,所以使用信息熵作为指标时,决策树的生长会更加 “精细” —— 对于高位度数据或者噪音极多的数据,信息熵易发生过拟合,基尼系数在此情况下,效果较为良好。但是,当模型在训练集和测试集上,均表现较差时,即:拟合程度不足时,一般常用信息熵。
当然,具体情况,具体分析

2.1.2 建立树:

from sklearn import tree      # 导入树
from sklearn.datasets import load_wine    # 导入 sklearn 自带的红酒数据集
from sklearn.medel_selection import train_test_split    # 导入训练集和测试集分类模块



标签:纯度,tree,信息熵,SKlearn,决策树,节点,sklearn
来源: https://blog.csdn.net/qq_45831156/article/details/122731779

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

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

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

ICode9版权所有