首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >决策树分裂

决策树分裂
EN

Stack Overflow用户
提问于 2018-04-17 13:06:50
回答 1查看 553关注 0票数 0

我有以下数据集,用于预测团队是否赢了一场比赛,其中每一行对应于一个训练示例,每一列对应于特定的特性。在确定最终回归值时,我希望使决策树使用基于每一列中的每个特性的分割:

代码语言:javascript
复制
 Train= 
 [['0' '0' '1' '-1' '8' '-9']
 ['-15' '0' '0' '18' '7' '11']
 ['-8' '0' '0' '8' '2' '6']
 ...
 ['11' '0' '2' '-15' '-3' '-12']
 ['3' '0' '-1' '-16' '-15' '-1']
 ['-3' '0' '0' '-6' '4' '-10']]

Result=
[1,1,0,...,1]

根据输出回归值(即他们获胜的概率),我应用一个阈值函数将输出分类为'1‘(wins)或'0’(loses)。这不能转化为一个分类问题,因为概率是一个重要的中间步骤。

我想知道使用sci-kit学习决策树分类器是否能直接帮助:

代码语言:javascript
复制
regr_2 = DecisionTreeRegressor(max_depth=6)
regr_2.fit(Train, Result)

我还看到了关于决策树的教程,并想知道在这种情况下是否应该从底层构建决策树。sci学习功能是如何创建分裂的?它实现了我想做的事吗?请让我知道我的方法可能存在的缺陷。

另外,max_features和max_depth有什么区别?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-17 14:37:02

Sci学习默认使用吉尼杂质度量(参见吉尼杂质维基百科)来分割决策树中的分支。这通常工作得很好,除非您对数据有很好的了解,并且应该如何进行拆分,否则最好使用Sci-kit学习默认设置。

关于max_depth:这是树的最大深度,您不希望它太大,因为您可能会超出训练数据。

关于max_features:每次出现分裂时,您的训练算法都会查看一些特性,并使用最优度量(在本例中是基尼杂质),并根据该特性创建两个分支。每一次查看所有的功能都是计算量很大的,所以您只需检查其中的一些。然后,max_features是每次在节点上创建一对分支时所看到的特性数。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49878985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档