机器学习实战8笔记决策树

1.导入库

import numpy as np
import pandas as pd
from sklearn.datasets import make_moons
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
  1. make_moons

    • 这个函数可以从 sklearn.datasets 模块中生成一个类似于“月亮”形状的数据集,通常用于测试分类算法。
    • 你可以指定数据点的数量、噪声等参数。
  2. train_test_split

    • 这个函数位于 sklearn.model_selection 模块中,用于将数据集分割为训练集和测试集。
    • 它允许你指定训练集和测试集的比例。
  3. DecisionTreeClassifier

    • 这个类位于 sklearn.tree 模块中,是一个决策树分类器。
    • 你可以使用它来训练一个决策树模型,用于分类任务。
np.random.seed(42)
raw_data=make_moons(n_samples=2000,noise=0.25,random_state=42)
data = raw_data[0]
target = raw_data[1]

设置随机种子

生成数据集

提取数据和目标

data.shape,target.shape

x_train,x_test,y_train,y_test=train_test_split(data,target)
classifer=DecisionTreeClassifier()
classifer.fit(x_train,y_train)

创建实例,训练分类器

classifer.score(x_test,y_test)
  1. 训练好的分类器:确保你已经使用训练数据(x_train 和 y_train)训练了决策树分类器。
  2. 测试数据:使用测试数据(x_test 和 y_test)来评估模型的性能。
  3. 调用 score 方法classifier.score(x_test, y_test) 将返回模型在测试集上的准确率。

#max_depth树的最大深度

classifer=DecisionTreeClassifier(max_depth=6)
  • max_depth 参数:这个参数限制了决策树的最大深度。树的深度是指从根节点到叶节点的最长路径。限制树的深度可以减少模型的复杂度,避免过拟合。
classifer.fit(x_train,y_train)

classifer.score(x_test,y_test)

#叶子节点最少样本数

创建决策树分类器实例并设置参数

训练分类器

评估模型

classifer=DecisionTreeClassifier(max_depth=6,min_samples_leaf=6)#模型调对的方法
classifer.fit(x_train,y_train)

classifer.score(x_test,y_test)

#网格搜索技术

from sklearn.model_selection import GridSearchCV
params={
    "max_depth":np.arange(1,10),
    "min_samples_leaf":np.arange(1,20),
}

定义了一个名为 params 的字典,其中包含了用于决策树分类器的参数网格

  • "max_depth":决策树的最大深度。这个参数控制树的生长,较大的值可能会使模型更复杂,从而增加过拟合的风险,而较小的值可能会使模型欠拟合。
  • "min_samples_leaf":叶节点中所需的最小样本数。这个参数确保每个叶节点至少有指定数量的样本,有助于控制模型的复杂度。

创建网格搜索实例

grid_search=GridSearchCV(
    classifer,
    param_grid=params,
    scoring="accuracy",
    cv=5
)
grid_search.fit(x_train,y_train)

执行 grid_search.fit(x_train, y_train) 时,你正在使用训练数据 x_train 和对应的标签 y_train 来训练 GridSearchCV 实例 grid_search。这个过程会进行以下步骤:

  1. 参数网格搜索GridSearchCV 会遍历 param_grid 中定义的所有参数组合。
  2. 交叉验证:对于每一组参数,GridSearchCV 会使用指定的交叉验证策略(在这个例子中是5折交叉验证)来评估模型的性能。
  3. 评分:使用指定的评分标准(在这个例子中是准确率)来评估每一组参数在交叉验证中的表现。
  4. 选择最佳参数GridSearchCV 会记录下表现最好的参数组合,并在所有参数组合中选择出最优的一组。

grid_search.beat_params_

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值