sklearn决策树(Decision Tree)多分类问题

步骤

建立模型

class sklearn.tree.DecisionTreeClassifier(criterion=’gini’, splitter=’best’, max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features=None, random_state=None, max_leaf_nodes=None, min_impurity_decrease=0.0, min_impurity_split=None, class_weight=None, presort=False)

  • 参数详解
  • 比较重要的参数
    • criterion:{‘gini’, ‘entropy’} 基尼系数和信息增益,特征选择要用
    • max_depth:整数,预剪枝要用

特征选择

  • 选择特征的算法主要有以下三种:
    • ID3 (使用信息增益)
    • C4.5(使用信息增益率)
    • CART(使用gini系数)
  • 在模型的criterion参数中设定。'gini’是CART, 'entropy’是ID3

预剪枝

  • 通过设定max_depth实现。max_depth表示决策树的最大层数。太大容易过拟合,太小容易欠拟合。

预处理

  • 主要是看有没有缺失值、异常值;
  • 还需要把分类变量转化为数值变量(分类变量不能是字符串)
import pandas as pd
# 数据
path = "../Data/classify.csv"
rawdata = pd.read_csv(path) 
X = rawdata.iloc[:,:13]
Y = rawdata.iloc[:,14]  # {”A":0,"B":1,"C":2}
Y = pd.Categorical(Y).codes  # ABC变成123

训练

from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier, export_graphviz
# 训练集和测试集
x_train, x_test, y_train, y_test = \
            train_test_split(X, Y, test_size=0.3)
# 训练
tree = DecisionTreeClassifier(random_state=1
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值