python多分类画混淆矩阵_Scikit-learn中的决策树分类器简介

165ea136695eb7f2bb245a1e82dde5f9.png

很多文章介绍过决策树及其它的作用(如下链接)。

•https://medium.com/swlh/decision-tree-classification-de64fc4d5aac

•https://towardsdatascience.com/the-basics-decision-tree-classifiers-b0d20394eaeb

•https://medium.com/@borcandumitrumarius/decision-tree-classifiers-explained-e47a5b68477a

本文将重点介绍如何在iris数据集中使用python中的scikit-learn来实现决策树,以及在分析算法性能时有用的一些功能。

什么是分类器

分类器算法用于通过决策规则将输入数据映射到目标变量,并可用于预测和了解与特定类或目标相关联的特征。这是一个有监督的机器学习算法,因为我们已经有了最终的标签,只想知道他们如何被预测。我们利用决策树分类器,根据鸢尾花的花瓣长度、花瓣宽度、萼片长度和萼片宽度等特征来预测鸢尾花的类型。

什么是决策树

决策树,一种类似树的结构,其中内部节点表示属性,分支表示决策规则,叶节点表示结果。这是通过根据一个属性选择度量将数据分割成不同的分区,在本例中是Gini索引(尽管我们可以根据需要将其更改为信息熵增益)。这本质上意味着我们每个分裂的目的是减少基尼不纯度,根据错误的分类结果来衡量一个节点的不纯程度。

实现决策树

首先,我们希望将数据转换为正确的格式,以便创建决策树。这里,我们将使用sklearn数据集数据库中的iris数据集,它非常简单,可以展示如何实现决策树分类器。

scikit-learn提供的决策树分类器的好处是,目标变量可以是类别变量,也可以是数值变量。为了清晰起见,考虑到iris数据集,我更喜欢保留花的分类性质,因为以后解释起来更简单,尽管如果需要,标签可以稍后引入。因此,可以使用以下代码导入数据集:

import pandas as pdimport numpy as npfrom sklearn.datasets import load_iris# 加载数据data = load_iris()# 转换为数据帧df = pd.DataFrame(data.data, columns = data.feature_names)# 创建“Species”列df['Species'] = data.target# 将其替换为实际名称target = np.unique(data.target)target_names = np.unique(data.target_names)targets = dict(zip(target, target_names))df['Species'] = df['Species'].replace(targets)

接下来我们要提取训练和测试数据集。这样做的目的是确保模型没有针对所有可用数据进行训练,这样我们就可以测试它在看不见的数据上的表现。如果使用所有的数据作为训练数据,那么我们可能会过拟合模型,这意味着它可能在看不见的数据上表现不佳。

# 提取特征和目标变量x = df.drop(columns="Species")y = df["Species"]# 保存特征名称和目标变量feature_names = x.columnslabels = y.unique()# 拆分数据集from sklearn.model_selection import train_test_splitX_train, test_x, y_train, test_lab = train_test_split(x,y, test_size = 0.4, random_state = 42)

现在我们有了正确格式的数据,可以开始创

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值