首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++决策树存储

C++决策树存储
EN

Stack Overflow用户
提问于 2013-05-24 15:57:23
回答 1查看 1.3K关注 0票数 0

我有一个决策树。我给这个决策树提供了一些输入值。然后,决策树返回一个值。

输入值可以是“孩子的数量”、“年龄(以年为单位)”等。决策树然后可以返回(例如)一个特定值,该值将指示家庭拥有多少辆汽车或类似的东西。

此决策树(如果转换为if-then语句)将如下所示:

代码语言:javascript
复制
int i=0;

if (ownedHouses==0)
{
    if (numberOfChildren==4)
    {
        if (ageFather==39)
        {
            if (incomeFamily==40000)
            {
                if (carsAlreadyCrashed==1)
                {
                    i=3;
                }
                else
                {
                    if (carsAlreadyCrashed==2)
                    {
                        if (insurancePaysForCrashes==1)
                        {
                            i=5;
                        }
                      }
                      else
                      {
                            i=4;
                        }
                    }
                    else
                    {
                        i=11;
                    }
                }
            }
            else
            {
                i=2;
            }
        }
        else
        {
            i=9;
        }
    }
    else
    {
        i=22;
    }
else
{
    i=8;
}

这只是一个例子。在现实中,产生的if-then语句绝对是巨大的。虽然我可以解析数据并从它创建这样的if-then,但我不能在我的软件中使用这么大的if-then循环。

因此,我正在寻找一种不同的方法来将决策树集成到我的软件中。

我见过决策树数据(以任何形式提供...)的方法。在运行时被解析,然后从它创建具有根、节点和叶的类。

就我的目的而言,这还不够快。

还有没有人有别的主意?

谢谢你的帮助。

编辑:我已经将一些值更改为现实生活中的值,以使含义更清晰。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-04 14:57:37

我所知道的最快的实现是在ALGLIB中实现的。决策树以双精度数组的形式存储。

阈值叶节点-两个值{-1,data}.

  • Non-Leaf节点-三个值{input_value_index,
  • ,input_value_index

您可以在dforest.dfprocessinternal中找到此方法的实现

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

https://stackoverflow.com/questions/16730236

复制
相关文章

相似问题

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