小编Abh*_*hek的帖子

从randomForest分类的ROC曲线

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)

感谢您抽出时间阅读我的问题!我花了很长时间冲浪.感谢您的建议/意见.

r random-forest roc

7
推荐指数
1
解决办法
2万
查看次数

为什么系统CPU时间(%sy)高?

我正在运行一个加载大文件的脚本.我在单核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)

linux opensuse cpu-usage linux-kernel

7
推荐指数
1
解决办法
2万
查看次数

awk 将一个文件的模式匹配到另一个文件

要在文件中查找字符串并打印输出的第一列,我们可以使用

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)

谢谢!阿布舍克

linux bash shell awk

3
推荐指数
1
解决办法
9348
查看次数

强制条在R中的ggplot geom_bar中从低于0的值开始

我想用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,则不能正确显示较短的条形.

r ggplot2 geom-bar

1
推荐指数
1
解决办法
2422
查看次数

标签 统计

linux ×2

r ×2

awk ×1

bash ×1

cpu-usage ×1

geom-bar ×1

ggplot2 ×1

linux-kernel ×1

opensuse ×1

random-forest ×1

roc ×1

shell ×1