最終的に予測したい人たちの確率を計算するためもRのコード。オブジェクトの名前がかぶったりするのでrmするとかした。あとifelse関数は初めて使ったけど、これは便利だな。ループを使わないでベクトル単位で計算をするというRの特徴がよく出ている。predictのところはresponseとかやっとかないと、確率を返してくれないので注意が必要。
twitter <- read.csv("/home/yasuhisa/twitter.txt",header=FALSE) source("/home/yasuhisa/twitter.R") twitter <-twitter[!apply(apply(twitter[-1],1,is.na),2,any),] attach(twitter) per<-following/followers is_otaku <- ifelse(is_otaku + is_otaku_in_blog + is_blog_in_bio> 0,1,0) is_blog <- ifelse(is_blog_in_bio + is_blog_in_web > 0,1,0) is_students <- ifelse(is_students + is_students_in_blog > 0,1,0) is_program <- ifelse(is_program + is_program_in_blog > 0,1,0) is_otaku_by_bayes <- ifelse(is_otaku_in_bio_by_bayes +is_otaku_in_entry_by_bayes > 0,1,0) Tooth.glm <- glm(is_follow~followers + update + per + is_program + is_friend , family=binomial) prediction <- read.csv("/home/yasuhisa/prediction.txt",header=FALSE) names(prediction) <- names(twitter) detach(twitter) rm(per) rm(is_otaku) rm(is_blog) rm(is_students) rm(is_program) rm(is_otaku_by_bayes) attach(prediction) per<-following/followers data <- data.frame(followers , update , per , is_program , is_friend) prediction$name prediction[-1] summary(Tooth.glm) predict(Tooth.glm,data,type="response")