2

我试图通过在无监督模式下实现随机森林来检测异常值来理解它。

这是我正在使用的数据集:

数据集:https ://gist.github.com/k2xl/5cd9a048ae153275f9c7

如果你观察,有一行值:

XKTVEQAX    570 12980.5 clothing store

这个数量比其他值多得多,所以我希望在随机森林输出中检测到这一点。

library(randomForest)
library(ggplot2)

data_set <- read.csv("~/PATH/anomaly-sample.csv", header=TRUE, as.is=TRUE )
data_set$category = factor(data_set$category)
train_all = data_set
test_all = train_all
#test_all = data_set[0:200,]

rf <- randomForest(train_all[,-1],importance=TRUE,mtry=3,norm.votes=FALSE)
print(rf)
predictions <- rf$votes
qplot(test_all$mins.after.midnight,test_all$amount,size=predictions[,2])
results <- cbind(test_all,predictions)
results <- results[sort.list(results[,5]), ]

我想要得到的是一个图表,其中异常值是非常大的圆圈,以证明不寻常。我这样做对吗?

4

0 回答 0