对sklearn中决策树的理解

sklearn之决策树简介

第一次写博客,这里就写一下最近在学习的,易快速上手的sklearn吧。

sklearn入门

scikit-learn,又写作sklearn,是一个开源的基于python语言的机器学习工具包。它通过NumPy, SciPy和Matplotlib等python库实现高效的算法应用,并且涵盖了几乎所有主流机器学习算法。本篇主要介绍决策树。

决策树

决策树是一种有监督学习,从一系列有数据特征和标签的数据中每次选择某一特征来作为划分依据,也就是树的节点,来划分数据。依次进行直到将数据分类完成,最后呈现出树状结构。决策树算法易理解,在行业中广泛应用。

  • 常用决策树算法:
  1. ID3算法-----计算每一个特征的**信息增益(熵差)**决定分枝节点。
  2. C4.5算法 -----信息增益率
  3. CART算法-----Gini系数
  4. GBDT梯度提升

sklearn中的决策树

  • 决策树中的类都封装在sklearn.tree模块下

    常用类含义
    tree.DecisionTreeClassifier分类树
    tree.DecisionTreeRegressor回归树
    tree.export_graphviz将决策树画出来
  • 怎样建树

  1. 准备数据集
from sklearn.tree import DecisionTreeclassifier
from sklearn.model_selection import train_test_classifier
from sklearn.daatasets import load_wine  //这里用了红酒的数据集
from sklearn.model_selection import train_test_classifier

X = load_wine().data
y=data.data,data.target
Xtrain, Xtest, Ytrain,Ytest = train_test_classifier(X,y,test_size = 0.3) //test_size按比例划分
  1. 实例化模型,将数据导入训练模型
dtf = DecisonTreeClassier(criterion = "entroph")
dtf = dtf.fit(Xtrain,ytrian) //开始训练
  1. 通过模型接口调用相关属性和方法
predict = dtf.predict(Xtest)   //返回预测结果
score = dtf.score(Xtest,ytest) //查看模型预测的准确度
dtf.feature_importances_        //每一个特征的名字
dtf.feature_importances_        //每一个特征的重要性

DecisionTreeClassifier

重要参数

  • criterion
    • "entropy" -----信息熵(以信息熵为选择标准,选择信息熵差值最高的特征作为节点进行分枝。(信息熵是一个重要概念)
    • “gini" ------基尼系数
  • random_state
    值为数值型,用来设置随机模式的参数,可以让模型稳定下来。

剪枝

决策树最大的一个特点就是容易过拟合(树深度很深,划分过于精细)为了解决这一问题,就需要进行剪枝

  • 剪枝参数
    • max_depth-----限制树的最大深度
    • min_samples_leaf-----限定一个节点在分枝后每个子节点必须至少包含min_samples_leaf个样本
    • min_samples_spilt----一个节点必须包含min_samples_spilt个样本才可以被分枝。

决策树中的集成算法

简单来说,集成算法就是从一组数据中建不同的树,这样训练出来的模型比单个树更优。

常用集成算法有: 随机森林、Adaboost、GBDT、XGBoost(XGBoost是一个专门的算法库,当然sklearn里也有关于XGBoost的类)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值