我有一个以利润为目标变量的数据集和大约100个不同的预测变量(一些二进制,一些连续和一些字符)。
R中是否有可以使用的决策树包,它将为利润最大化(最好是> 0)的桶(或终端节点)提供?
目前我一直在使用partykit包中的ctree。分裂的树总是对预测变量进行良好的分割,但终端节点总是会产生负利润。
我也很难理解节点端的结果。这些往往是“N ='和'错误='。有没有办法获得利润='相反,你可以看到最好的终端节点是什么?
非常感谢,
答案 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
观察dist
,65.263
的平均停止err
为9015.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()
之前),这是你最感兴趣的。为了最大化目标变量,你可以选择终端具有最高预测平均值的节点。
最后,我不知道直接用于利润最大化的树方法。标准树方法试图找到以某种方式同质的终端节点。 (这里有大致恒定的平均目标值)。