バグ予測に関する研究で、Tomcatというデータを使いロジスティック回帰と線形判別分析の2つの手法でバグの有無を予測するのですが,Rstudioで実行するのですが以下のプログラムを書き換えればできますか?
tomcatのデータは以下からDLできます。https://terapromise.csc.ncsu.edu/!/#repo/view/head/defect/ck/tomcat/
#繰り返し回数 m_max<-1 #k-foldのk k_max<-10 #読み込み,書き出しフォルダの定義 dname<-"C:/研究/仮データ(ISBSG)/" #読み込みファイル名 .csvを含めない fname<-"isbsg_large_log" df <- read.csv(paste(dname,fname,".csv", sep = ""), header=T, row.names=NULL) for(m in 1:m_max){ set.seed(m) ds <- df[order(runif(nrow(df))),] for(k in 1:k_max){ d <- ds[-round(1+(nrow(df)/k_max)*(k-1)):-round(nrow(df)/k_max*k),] write.csv(d, file=paste(dname,fname,"_cv_Fit_",k-1,"_",m-1,".csv", sep = ""),row.names = FALSE) d <- ds[round(1+(nrow(df)/k_max)*(k-1)):round(nrow(df)/k_max*k),] write.csv(d, file=paste(dname,fname,"_cv_Tst_",k-1,"_",m-1,".csv", sep = ""),row.names = FALSE) } }
以下のプログラム実行するとError in cbind(test.df, fit.lm.pred) : object 'fit.lm.pred' not foundというエラーが出ます。
#繰り返し回数 m_max<-1 #k-foldのk k_max<-10 #読み込み,書き出しフォルダの定義 dname<-"C:/Users/実験用/" #読み込みファイル名 .csvを含めない fname<-"Tomcat" df <- read.csv(paste(dname,fname,".csv", sep = ""), header=T, row.names=NULL) for(m in 1:m_max){ set.seed(m) ds <- df[order(runif(nrow(df))),] for(k in 1:k_max){ d <- ds[-round(1+(nrow(df)/k_max)*(k-1)):-round(nrow(df)/k_max*k),] write.csv(d, file=paste(dname,fname,"_cv_Fit_",k-1,"_",m-1,".csv", sep = ""),row.names = FALSE) d <- ds[round(1+(nrow(df)/k_max)*(k-1)):round(nrow(df)/k_max*k),] write.csv(d, file=paste(dname,fname,"_cv_Tst_",k-1,"_",m-1,".csv", sep = ""),row.names = FALSE) #ロジスティック回帰 #result1=lm(bug~wmc+dit+noc+cbo+rfc+lcom+npm+lcom3+loc+dam+moa+ic+cbm,data=fit.df) result1=glm(bug~.,data=fit.df) #↓結果についてステップ関数 step.glm<-step(result1) #結果 summary(result1) # 線形判別 library(MASS) result2 <- lda(bug ~., data = fit.df, na.action = "na.omit", CV = TRUE) # result2 # ct <- table(fit.df$bug, result2$class) diag(prop.table(ct,1)) sum(diag(prop.table(ct))) if(m==0||k==0){ result_summary.df<-cbind(cbind(test.df,fit.lm.pred),fit.rf.pred) }else{ result_summary.df<-rbind(result_summary.df,cbind(cbind(test.df,fit.lm.pred),fit.rf.pred)) } } } write.csv(result_summary.df,paste(dname,"result_summary.csv",sep="")) コード
あなたの回答
tips
プレビュー