03-04 算法学习2(决策树)

1、定义

决策树是一种非参数的有监督学习方法,它能从一系列有特征和标签的数据中总结出决策规则,
并用树状图的结构来呈现这些规则,已解决分类和回归问题。

非参数-

 不限制参数的结构和类型,适用于各种各样的数据。

自我理解:

决策树就是 一种分类方法,即如何将数据进行分类和回归的规则。

但是如何依据数据总结出最合适的规则,又是需要研究的。

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

①如何从数据表中找出最佳节点和最佳分支

②如何让决策树停止生产,防止过拟合

3、sklearn中的决策树模块
模块 sklearn.tree

tree.DecisionTreeclassifier     --分类树
tree.DecisionTreeRegressor      --回归树
tree.export_graphviz            --将生成的决策树导出为DOT格式,画图专用

4、sklearn建模的基本流程(对所模型都通用)

① 实例化:建立评估模型对象
	-实例化式用到的参数

②通过模型接口训练模型
	数据属性和数据接口	(fit)

③通过模型接口提取需要的信息
	数据属性和数据接口

例如这个流程下,分类树对应的代码是:

from sklearn import tree

clf=tree.DecisionTreeclassifier()   #实例化
clf=clf.fit(x_train,y_train)        #用训练数据集训练模型 ,fit 接口
									#几乎使用所有模型
result=clf.score(x_test,y_test)     #打入测试集,从接口中调用需要的信息

 

4-2 分类树的参数(重要的8个参数)

① criterion

	为了将表格转化为一棵树,决策树需要找出最佳节点和最佳分支方法,对于分类来
说,衡量这个最佳的指标叫做“不纯度”,不纯低越低,决策树对训练集拟合的效果
越好,同一棵树上,叶子结点的不纯度肯定是最低的。

criterion用来决定不纯度的计算方法的,主要有两种:

1) 'entropy' ,使用信息熵
2)	'gini' 使用基尼系数

信息熵和基尼系数代表两种数学计算方法,sklearn内置的计算过程,无法干涉。

实际过程中,两种系数的效果基本相同。

creterion 一般默认为 基尼系数,但信息熵对不纯度更敏感,数分支更精细。

当拟合效果不够的时候,可以两个都试试。

4-3 决策树基本流程总结:

计算全部特征的不纯度指标->选取不纯度指标最有的特征来分支-> 在第一个特征的分支下计算全部特征的不纯度指标-> 选取不纯度指标最优的特征继续分…

具体实践如下:

from sklearn import tree
from sklearn.datasets import load_wine
from sklearn.model_selection import train_test_split

wine=load_wine() #加载内置的红酒数据

wine.feature_names #特征的名字查看
wine.target_names #标签的名字

Xtrain,Xtest,Ytrain,Ytest=train_test_split(wine.data,wine.target,test_size=0.3)
# wine_data  数据   wine_target 标签   test_size=0.3 表示将数据中的30%做测试集,其余做训练集

#决策树三步骤
clf=tree.DecisionTreeClassifier(criterion='entropy')
clf=clf.fit(Xtrain,Ytrain)
score=clf.score(Xtest,Ytest)

score   #值表是预测的准确度

#绘制树
import graphviz
dot_data=tree.export_graphviz(clf   #训练好的模型
                              ,feature_names=feature_name
                              ,class_names=['茅台','五粮液','黄台']
                              ,filled=True
                              ,rounded=True
                             )
graph=graphviz.Source(dot_data)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
决策树算法是机器学习中常用的一种算法,它通过构建一棵树形结构来进行分类或回归任务。决策树算法有多种不同的变体,其中包括ID3算法、C4.5算法和基本决策树算法。 ID3算法是最早提出的一种决策树算法,它的核心思想是通过计算信息增益来选择最佳的特征进行节点的划分。具体步骤是:从根节点开始,计算每个特征的信息增益,选择信息增益最大的特征作为当前节点的划分特征,然后根据该特征的不同取值建立子节点,再对子节点递归地应用以上步骤,直到所有的特征信息增益很小或没有特征可选为止。 C4.5算法是对ID3算法的改进,它引入了信息增益率(比)来选择特征,解决了ID3算法对于取值较多的特征有偏好的问题。与ID3算法相似,C4.5算法也使用递归的方式构建决策树,但在选择划分特征时,使用信息增益率作为选择的依据。 基本决策树算法决策树算法的一种简化版,它没有引入信息增益或信息增益率,而是通过计算基尼指数来选择最佳的划分特征。基尼指数衡量了一个特征的不纯度,选择基尼指数最小的特征进行划分。基本决策树算法相对于ID3算法和C4.5算法更简单直观,但在某些情况下可能会有一定的性能损失。 总的来说,决策树算法通过构建一棵树形结构来进行分类或回归任务,其中ID3算法、C4.5算法和基本决策树算法是其中的三种常见变体。每种算法都有其特点和优缺点,选择适合具体问题的算法可以提高算法的性能和准确性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [机器学习算法(3)之决策树算法](https://blog.csdn.net/qq_20412595/article/details/82048795)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值