sklearn 决策树例子_sklearn决策树实例,实战,案例

sklearn决策树实战案例

#全部行都能输出

from IPython.core.interactiveshell import InteractiveShell

InteractiveShell.ast_node_interactivity = "all"

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

plt.style.use('seaborn')

plt.rcParams['axes.unicode_minus']=False #设置显示中文后,负号显示受影响。解决坐标轴上乱码问题

plt.rcParams['font.family'] = ['Arial Unicode MS'] #mac用解决中文显示问题

读入数据train.csv

df=pd.read_csv(r"/Users/liuzeming/Desktop/python/机器学习/练习/train.csv")

df

# 查看数据的信息

df.info

# 提取特征和标签

df1=df.drop(['客户ID','y'],axis=1)

df1

X=df1

X

y=df['y']

# 查看样本是否均衡

y.value_counts()

划分测试集和训练集

# 测试集占0.2, 随机数种子666

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=666)

# 实例化一个决策树分类器对象

# class_weight这个参数设置成"balanced", random_state设置为25

from sklearn.tree import DecisionTreeClassifier

dct=DecisionTreeClassifier(random_state=25,class_weight='balanced')

# 训练模型

dct.fit(X_train,y_train)

# 查看模型在测试集上准确率

dct.score(X_test,y_test)

# 使用网格搜索进行调参

from sklearn.model_selection import GridSearchCV #导入网格搜索,帮助调参选取参数最优值

import numpy as np

# # parameters本质是一串参数和用网格搜索来搜索的参数取值范围,由

# #于是对多个参数同时进行搜索所以要把这些参数和参数取值范围打包成字典

parameters = { 'splitter':('best','random')

,'criterion':("gini","entropy")

,"max_depth":list(range(1, 10))

,'min_samples_leaf':list(range(5, 30, 5))

,'min_impurity_decrease':list(np.linspace(0,0.5,10)) #限制父节点和子节点之间的信息增益

}

clf = DecisionTreeClassifier(class_weight='balanced', random_state=25)

# #首先实例化模型

GS = GridSearchCV(clf,parameters, cv=5)

# #进行网格搜索,GridSearchCV同时满足fit,score和交叉验证三种功能,parameters要进行哪些参数的调参,还要进行5折交叉验证

GS.fit(X_train,y_train)

# 最佳参数组合

GS.best_params_

# 交叉验证最好的得分

GS.best_score_

最后再用最好的组合建模。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值