利用决策树探讨鸢尾花数据集分类问题,并可视化了数的深度和过拟合的关系

本文通过决策树探讨鸢尾花数据集的分类问题,结合可视化技术展示树的深度与过拟合之间的关系。内容源于邹博老师的机器学习课程,涉及鸢尾花数据预处理、特征关系分析以及决策树模型的构建和评估。
摘要由CSDN通过智能技术生成

代码来自邹博老师的机器学习课程。其中对鸢尾花label转换为int,plt.pcolormesh()、决策树的可视化等方法都有一定的讲述。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
from sklearn import tree
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
import pydotplus


# 花萼长度、花萼宽度、花瓣长度、花瓣宽度
iris_feature_E = ['sepal length', 'sepal width', 'petal length', 'petal width']
iris_feature = ['花萼长度', '花萼宽度', '花瓣长度', '花瓣宽度']
iris_class = ['Iris-setosa', 'Iris-versicolor', 'Iris-virginica']


if __name__ == '__main__':
    mpl.rcParams['font.family'] = 'SimHei'
    mpl.rcParams['axes.unicode_minus'] = False
    
    data = pd.read_csv('./iris.data', header=None)
    x = data[[i for i in range(4)]]
    y = pd.Categorical(data[4]).codes   # 将obejet类型转化为int分类,得到numpy格式数据
    
    # 为了可视化,仅使用前两列特征
    x = x.iloc[:, :2]
    x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.7, random_state=1)
    
    '''
    决策树参数估计
    1、分类用entropy或者gini,回归用mse
    2、min_samples_split=10,如果该节点包含的样本数目大于10,则(有可能)对其分支 --看这一次
    3、min_samples_leaf=10:若将某节点分支后,得到的每个子节点样本数目都大于10,则完成分支;否则不进行分支--看上一次
    4、max_depth=1:树的深度,很重要
    '''
    
    model = DecisionTreeClassifier(criterion='entropy')
    model.fit(x_train, 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值