我randomForest在R平台上使用包进行分类任务.
rf_object<-randomForest(data_matrix, label_factor, cutoff=c(k,1-k))
Run Code Online (Sandbox Code Playgroud)
其中k的范围为0.1至0.9.
pred <- predict(rf_object,test_data_matrix)
Run Code Online (Sandbox Code Playgroud)
我有随机森林分类器的输出,我将它与标签进行了比较.因此,我有9个截止点的准确度,MCC,灵敏度,特异性等性能指标.
现在,我想绘制ROC曲线并获得ROC曲线下的面积,看看性能有多好.R中的大多数包(如ROCR,pROC)需要预测和标记,但我有灵敏度(TPR)和特异性(1-FPR).
任何人都可以建议我,如果截止方法是正确的还是可靠的,以产生ROC曲线?您是否知道使用TPR和FPR获得ROC曲线和曲线下面积的方法?
我还尝试使用以下命令来训练随机森林.通过这种方式,预测是连续的,ROCR并且pROC在R 中可以接受并打包.但是,我不确定这是否是正确的方法.任何人都可以向我推荐这种方法吗?
rf_object <- randomForest(data_matrix, label_vector)
pred <- predict(rf_object, test_data_matrix)
Run Code Online (Sandbox Code Playgroud)
感谢您抽出时间阅读我的问题!我花了很长时间冲浪.感谢您的建议/意见.
我正在运行一个加载大文件的脚本.我在单核OpenSuSe服务器和四核PC中运行相同的脚本.正如我所预期的那样,它比服务器中的速度快得多.但是,脚本会降低服务器的速度,使其无法执行任何其他操作.
我的剧本是
for 100 iterations
Load saved data (about 10 mb)
Run Code Online (Sandbox Code Playgroud)
时间myscript(在PC中)
real 0m52.564s
user 0m51.768s
sys 0m0.524s
Run Code Online (Sandbox Code Playgroud)
时间myscript(在服务器中)
real 32m32.810s
user 4m37.677s
sys 12m51.524s
Run Code Online (Sandbox Code Playgroud)
我想知道为什么当我在服务器中运行代码时"sys"如此之高.我使用top命令检查内存和CPU使用情况.
似乎仍然有免费记忆,所以交换不是原因.%sy是如此之高,它可能是服务器速度的原因,但我不知道是什么导致%sy这么高.使用最高CPU百分比(99%)的过程是"myscript".屏幕截图中%wa为零,但有时会变得非常高(50%).
当脚本运行时,平均负载大于1,但从未见过高达2.
我还检查了我的光盘:
strt:~ # hdparm -tT /dev/sda
/dev/sda:
Timing cached reads: 16480 MB in 2.00 seconds = 8247.94 MB/sec
Timing buffered disk reads: 20 MB in 3.44 seconds = 5.81 MB/sec
john@strt:~> df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 245G 102G 131G 44% /
udev 4.0G 152K 4.0G 1% /dev …Run Code Online (Sandbox Code Playgroud) 要在文件中查找字符串并打印输出的第一列,我们可以使用
grep "foo" file.txt | awk '{print $1}'可以awk单独使用
awk '/foo/ {print $1}' file.txt(/sf/answers/1600649291/)。
我想搜索文件中的字符串列表,而不是使用单个字符串 (foo) 作为模式。使用grep,这将是
grep -f file.txt file2.txt | awk '{print $1}' > outFile.txt
Run Code Online (Sandbox Code Playgroud)
awk我可以单独使用做同样的事情吗?
file.txt
abcd
acde
a2rt
file2.txt
1 albcd dhakd kdf
3 abcdbd and
2a bda2rt tert
outFile.txt
3
2a
Run Code Online (Sandbox Code Playgroud)
谢谢!阿布舍克
我想用ggplot绘制条形图.我使用scale_y_log10来重新缩放y轴.当使用下面的脚本时,我得到两个方向(向上和向下)的条形,条形从1开始.我明白这是因为,log10(1)= 0.
ggplot (data=dat, aes(x=Col2,y=Col4,fill=Col3,group=Col1))+
geom_bar(stat="identity")+ facet_grid(.~Col1,scales="free_x",space="fixed")+
ylab("")+xlab("")+scale_fill_discrete("")+
scale_y_log10("#Counts",breaks=c(.1,1,10,100,1000),expand=c(0,0))+
theme_bw()+
theme(axis.text.x=element_text(angle=45,hjust=1,vjust=1))
Run Code Online (Sandbox Code Playgroud)
现在,我想强制条形从较低的值(比如0.1或0.01)开始,并使所有条形向上.我怎样才能做到这一点?试图找到相关的帖子和信息,但没有运气.如果有这样的信息,有人可以指导我吗?
编辑:我想使用scale_y_log10,因为大多数条形都很低,有些条形图非常高.如果我使用scale_y_continuous,则不能正确显示较短的条形.