python和R混合编程
2016-01-28 21:52
736 查看
python可以通过rpy2模块实现和R的混合编程,rpy2安装和python和R环境配置参考python和R混合编程
1 直接嵌入R文件
2 通过r实现在python中使用R的函数和传入参数
1 直接嵌入,在trainNet.py脚本中嵌入train.R
trainNet.py
train.R
2 通过r实现在python中使用R的函数和传入参数
test.py
testcl.R
1 直接嵌入R文件
2 通过r实现在python中使用R的函数和传入参数
1 直接嵌入,在trainNet.py脚本中嵌入train.R
trainNet.py
import rpy2 import rpy2.robjects as ro r=ro.r r.source('train.R') #write into txt f=open('out.txt','w') print >>f,r.tr print >>f,r.vr print >>f,"training result:" print >>f,r.t print >>f,r.t1 print >>f,r.t2 print >>f,"test result:" print >>f,r.t3 f.close()
train.R
#1 train library(nnet) #setwd("d:") test<-read.csv("d:/test.csv")#d:/test.csv inputs<-test[,1:16] targets<-class.ind(c(test[,17])) tnet<-nnet(inputs,targets,size=16,rang=0.5,decay=5e-4,maxit=200) test.cl <- function(true, pred) { true <- max.col(true) cres <- max.col(pred) table(true, cres) } tr<-test.cl(targets,predict(tnet,inputs)) t<-(tr[1,1]+tr[2,2])/sum(tr)#accuracy t1<-tr[1,1]/sum(tr[1,])#other '0' recognition rate t2<-tr[2,2]/sum(tr[2,])#the '1' #1 val vinput<-read.csv("d:/ttest.csv")#测试样本 len=nrow(vinput) vtarget<-cbind( rep(1,len),rep(0,len)) vr<-test.cl(vtarget,predict(tnet,vinput)) t3<-vr[1,2]/sum(vr) save(tnet, file = "tnet.Rdata")缺点是,不能改变传入的参数,R脚本已经确定了。
2 通过r实现在python中使用R的函数和传入参数
test.py
import rpy2 import rpy2.robjects as ro r=ro.r r['library']('nnet') #ready data test=r['read.csv'](filename)#filename是训练样本,维数是3,前2个数inputs,最后一个是targets data=r['data.frame'](test) inputs=r['cbind'](data[0],data[1]) targets=r['class.ind'](r['c'](data[2])) #train tnet=r['nnet'](inputs,targets,size=16,rang=0.5,decay=5e-4,maxit=200) #print tnet r['source']('testcl.R') #predict--target tr=r['test.cl'](targets,r['predict'](tnet,inputs)) print tr
testcl.R
test.cl <- function(true,pred){ true <- max.col(true) cres <- max.col(pred) table(true,cres) }
相关文章推荐
- python-函数式编程
- python学习之7 JSON编码
- Python 爬虫备份人人状态(及评论)
- 多进程,多线程,协程
- Python 8.1 多进程
- 《笨办法学Python》 第26课手记
- python项目之 增加博客访问量
- python的搜索路径与包(package)
- Python-module
- python数字图像处理(19):骨架提取与分水岭算法
- python异常处理
- Python之登录接口(第1天)
- python中的time模块
- Flask
- 2.3.4Python表达式
- python爬虫抓站的一些技巧总结
- python爬虫抓站的一些技巧总结
- 2.3.1Python运算符
- 2.1Python初识&环境变量部署
- 1.1Python语言集成环境搭建