背景:
我使用的是"randomForest"包的随机森林算法。
描述:
我最近在做用户异常检测的问题,按照常理来讲,这是一个分类问题,最终预测用户是否异常,即0、1问题。但是问题要求最终预测的是用户异常的可能性,这就又类似于一个回归问题。
目前我以分类问题考虑来做,主要代码有:
rf<- randomForest(mark~.,train)
rf.predict<- predict(rf,test)
其中train 和 test 分别是训练集和测试集,而mark是需要预测的属性。
问题:
1、首先问一个关于训练的问题:
rf<- randomForest(mark~.,train)是训练train中除了mark属性外所有属性对mark属性的影响,但是我如果有这样的需求:
比如train中有n个属性,分别为a1~an,其中an列为mark属性,假设我只想要训练前10维属性对mark属性的影响,代码应该如何修改,是否有不枚举属性列名称的方法?
2、据我所知,随机森林会生出多棵决策树(假设100棵树),并按照一定权重来进行综合,(假设平均分配的话,100课树每棵树的全重是0.1),最终得到结果。那么我想知道是否可以根据每棵树最后预测的0或1结果再乘上权重来得到一个数值作为可能性?而不是直接0或者1的分类结果?
3、如果问题1的思路可行,那么该怎么实现?最好有代码?
4、如果作为回归问题考虑,由于mark属性只有0,1,调试会有如下的警告信息:
Warning message:
In randomForest.default(m, y, ...) :
The response has five or fewer unique values. Are you sure you want to do regression?
这样是否会对结果有比较大的影响?
并且得到预测结果后如何进行优劣判断?比如分类问题可以使用confusionMatrix函数进行交叉验证。


雷达卡




京公网安备 11010802022788号







