Python机器学习——决策树

本文详细介绍了Python中决策树的学习和应用,包括决策树的基本原理、特征选择、决策树生成与剪枝。通过sklearn库构建决策树模型,并使用wine数据集进行实例演示,展示了如何通过max_depth等参数进行剪枝以防止过拟合。同时讨论了分类模型的评估指标,如混淆矩阵、准确率、精确度和召回率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


# 模型用途:既可以分类,也能解决回归问题
###主要还是应用分类决策树:本质是从训练数据集中归纳出一组分类规则,称为树归纳。对于给定的训练集,存在许多对他无错编码的树。为了简单起见,我们选出最小的树。
简单来说是决策树学习是由训练数据集估计条件概率模型。基于特征空间划分的类的条件概率模型由很多,训练模型既要对训练数据由很好的拟合,也要对未知数据有很好的预测。
###决策树学习算法包含特征选择、决策树的生成、决策树剪枝。决策树生成只考虑局部最优,剪枝考虑的是全局最优。
###特征选择依据:香农熵和信息增益.
   决策树需要选择最优划分属性,节点的纯度越高越好。在分类树里面,划分的优劣用不纯度度量。不纯度越低,类分布就越倾斜。
   度量不纯性的函数是包括熵函数、基尼系数、分类误差。通常情况2分类较多,也可以推广到大于2的分类。熵越高,信息不纯度越高,则混合的数据越多。信息熵是对整个数据集来讲的,计算的是分类的信息熵
   信息增益:决策树最终的优化目标使得叶节点的总不纯度最低,即对应衡量不纯度的指标最低。要求父节点的信息熵和子节点的信息熵差要最大。
#用sklearn生成决策树
###参数criterion:决定不纯度的计算方法。
        # 输入entropy,使用信息熵(enteropy)

       #输入gini,使用基尼系数(jini):适用于数据维度大,噪音很大时。
        
#一般2个都试一下,哪个好用哪个。通常信息熵多一点。
#初步建模
##导入需要的算法库和模块。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

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

plt.rcParams['font.sans-serif'] = ['Simhei']
plt.rcParams['axes.unicode_minus']= False
#探索数据
wine =load_wine()
#wine
#wine.data.shape

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值