决策树学习的特征选择

此博客停止更新迁移至SnailDove's Blog查看本文点击此处

决策树学习

决策树学习通常包含三个方面:特征选择、决策树生成和决策树剪枝。决策树学习思想主要来源于:Quinlan在1986年提出的ID算法、在1993年提出的C4.5算法和Breiman等人在1984年提出的CART算法。

特征选择

为了解释清楚各个数学概念,引入例子

表5.1  贷款申请样本数据表
       上表有15个样本数据组成的贷款申请训练数据D。数据包括贷款申请人的4个特征:年龄、有工作与否、有房子与否、信贷情况,其中最后一列类别的意思是:是否同意发放贷款,这个就是决策树最后要给出的结论,即目标属性——是否发放贷款,即决策树最末端的叶子节点只分成2类:同意发放贷款与不同意发放贷款。

  • 信息熵(entropy)

    引入概念,对于第一个要用到的概念:信息熵在另外一篇博客——数据压缩与信息熵中详细解释了信息熵为什么度量的是不确定性,下文也不再赘述,直接引用。

     设D为按照目标类别(或称目标属性)对训练数据(即样本数据)进行的划分,则D的信息熵(information entropy)表示为:


     其中pi表示第i个类别在整个训练数据中出现的概率,可以用属于此类别元素的数量除以训练数据(即样本数据)总数量作为估计。

  • 7
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
决策树是一种常用的机器学习算法,用于解决分类和回归问题。在构建决策树模型时,需要选择合适的特征来划分数据集,以便更好地进行预测。 在Python中,可以使用sklearn库中的DecisionTreeClassifier和DecisionTreeRegressor来构建决策树模型。特征选择决策树构建过程中的一个重要步骤,常用的特征选择算法包括信息增益、信息增益比、基尼指数等。 在sklearn库中,可以使用feature_importances_属性来获取特征的重要性度量。该属性返回一个数组,数组的每个元素对应于每个特征的重要性得分。得分越高,示该特征在构建决策树模型时的重要性越高。 以下是使用决策树模型进行特征选择的示例代码: from sklearn.tree import DecisionTreeClassifier # 定义特征矩阵X和目标向量y # 创建决策树分类器 clf = DecisionTreeClassifier() # 训练模型 clf.fit(X, y) # 获取特征重要性得分 importances = clf.feature_importances_ # 输出特征重要性得分 for i, importance in enumerate(importances): print("Feature %d: %f" % (i, importance)) 通过以上代码,我们可以得到每个特征的重要性得分,并根据得分进行特征选择。相对于重要性得分较低的特征,我们可以考虑将其从特征集中删除,以简化模型并提高预测性能。 需要注意的是,特征选择是一个比较主观的过程,具体的选择方法和指标可能因数据集和问题而异。因此,我们可以根据实际情况,灵活选择特征选择算法和指标,以获得更好的模型效果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值