RSNNS包 RBF神经网络

举报
the-order 发表于 2022/04/17 16:48:34 2022/04/17
【摘要】 RSNNS包 RBF神经网络

1 RBF神经网络

在统计学章节里面,博主介绍了RBF神经网络的原理,通过把线性不可分的数据,通过径向基距离转化为线性可分数据,在使用径向基函数进行分类。
本章里面将使用R代码实现RBF网络

rm(list=ls())
install.packages("mlbench")
install.packages("RSNNS")
install.packages("mlbench")
library(mlbench)
library(RSNNS)
library(ROCR)

相关的包依赖
此次章节承接上一章节的代码
链接: link.

2 建立模型与预估

由于数据使用R自带的数据集,并进行过清洗转化,直接建模

#############################RBF neural network##################################
myrbf<- rbf(Sonar$inputsTrain, Sonar$targetsTrain, size=100, 
            maxit=1000,linOut=F)
            ```

0.5阈值估计,一般阈值根据业务设计

##model predict
out<-predict(myrbf, Sonar$inputsTest) 
out[out<0.5543928]=0
out[out>=0.5543928]=1
#calculation accuracy
rate<-sum(out==Sonar$targetsTest)/length(Sonar$targetsTest)

在这里插入图片描述

3 绘制ROC曲线

方法与上一章节一致,绘制ROC曲线,找出auc值

##Prediction probability
tr_rbf<-predict(myrbf,Sonar$inputsTrain)
te_rbf<-predict(myrbf,Sonar$inputsTest) 
##draw ROC  curve
tr_pred<-prediction(tr_rbf,Sonar$targetsTrain)
tr_perf<-performance(tr_pred,"tpr","fpr")
te_pred<-prediction(te_rbf,Sonar$targetsTest)
te_perf<-performance(te_pred,"tpr","fpr")

plot(tr_perf,col='green',main="ROC of Models")
plot(te_perf, col='black',lty=2,add=TRUE);
abline(0,1,lty=2,col='red')


tr_auc<-round(as.numeric(performance(tr_pred,'auc')@y.values),3)
tr_str<-paste("Train-AUC:",tr_auc,sep="")
legend(0.3,0.45,c(tr_str),2:8)

te_auc<-round(as.numeric(performance(te_pred,'auc')@y.values),3)
te_ste<-paste("Test-AUC:",te_auc,sep="")
legend(0.3,0.25,c(te_ste),2:8)

4

4 发现最佳阈值

library(colorspace)
library(pROC)

modelroc=roc(Sonar$targetsTest,te_rbf,plot=T)

plot(modelroc,print.auc=T,auc.polygon=T,grid=c(0.1,0.2),grid.col=c("green","red"),max.auc.polygon=T,auc.polygon.col="skyblue",print.thres=T)

modelauc=auc(modelroc)
modelauc
rocbest=coords(modelroc,"best")

在这里插入图片描述
在这里插入图片描述
发现最佳阈值为0.5543928

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。