prediction.R

最終的に予測したい人たちの確率を計算するためも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")