使用决策树来最大化连续变量,如利润

时间:2016-09-14 10:42:29

标签: r optimization decision-tree party

我有一个以利润为目标变量的数据集和大约100个不同的预测变量(一些二进制,一些连续和一些字符)。

R中是否有可以使用的决策树包,它将为利润最大化(最好是> 0)的桶(或终端节点)提供?

目前我一直在使用partykit包中的ctree。分裂的树总是对预测变量进行良好的分割,但终端节点总是会产生负利润。

我也很难理解节点端的结果。这些往往是“N ='和'错误='。有没有办法获得利润='相反,你可以看到最好的终端节点是什么?

非常感谢,

1 个答案:

答案 0 :(得分:0)

简单的事情:了解每个终端节点中的打印结果。考虑以下简单(并不是特别有用)的ctree来模拟dist cars的停靠speed取决于library("partykit") ctree(dist ~ speed, data = cars) ## ## Model formula: ## dist ~ speed ## ## Fitted party: ## [1] root ## | [2] speed <= 17 ## | | [3] speed <= 12: 18.200 (n = 15, err = 1176.4) ## | | [4] speed > 12: 39.750 (n = 16, err = 3535.0) ## | [5] speed > 17: 65.263 (n = 19, err = 9015.7) ## ## Number of inner nodes: 2 ## Number of terminal nodes: 3

19

这意味着,例如,在节点5中,speed > 17观察dist65.263的平均停止err9015.7,对应n或总和err的正方形。

因此,首先给出目标变量的平均值(在var gulp = require('gulp'); var rename = require('gulp-rename'); var uglify = require('gulp-uglify'); var gp_concat = require('gulp-concat'); gulp.task('js', function() { gulp.src([ './public/bower_components/jquery/dist/jquery.min.js', './public/js/functions.js', ]) .pipe(gp_concat('combined.js')) .pipe(gulp.dest(path.js + '/dist')) .pipe(uglify({ preserveComments: 'license', hoist_funs: false })) .pipe(rename({suffix: '.min'})) .pipe(gulp.dest(path.js + '/dist')) }); mysqli_fetch_assoc()之前),这是你最感兴趣的。为了最大化目标变量,你可以选择终端具有最高预测平均值的节点。

最后,我不知道直接用于利润最大化的树方法。标准树方法试图找到以某种方式同质的终端节点。 (这里有大致恒定的平均目标值)。