質問編集履歴
2
補足の加筆
    
        title	
    CHANGED
    
    | 
         
            File without changes
         
     | 
    
        body	
    CHANGED
    
    | 
         @@ -1,6 +1,5 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ### 前提・実現したいこと
         
     | 
| 
       2 
2 
     | 
    
         
             
            約2000名分のデータを使って、ランダムフォレストの結果を部分従属プロットにしたいです。
         
     | 
| 
       3 
     | 
    
         
            -
            
         
     | 
| 
       4 
3 
     | 
    
         
             
            しかし、partial_dependence関数を使うと以下のエラーメッセージが発生しました。
         
     | 
| 
       5 
4 
     | 
    
         
             
            ### 発生している問題・エラーメッセージ
         
     | 
| 
       6 
5 
     | 
    
         | 
1
データ内容の添付
    
        title	
    CHANGED
    
    | 
         
            File without changes
         
     | 
    
        body	
    CHANGED
    
    | 
         @@ -1,5 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ### 前提・実現したいこと
         
     | 
| 
       2 
2 
     | 
    
         
             
            約2000名分のデータを使って、ランダムフォレストの結果を部分従属プロットにしたいです。
         
     | 
| 
      
 3 
     | 
    
         
            +
            
         
     | 
| 
       3 
4 
     | 
    
         
             
            しかし、partial_dependence関数を使うと以下のエラーメッセージが発生しました。
         
     | 
| 
       4 
5 
     | 
    
         
             
            ### 発生している問題・エラーメッセージ
         
     | 
| 
       5 
6 
     | 
    
         | 
| 
         @@ -11,8 +12,45 @@ 
     | 
|
| 
       11 
12 
     | 
    
         
             
            ### 該当のソースコード
         
     | 
| 
       12 
13 
     | 
    
         | 
| 
       13 
14 
     | 
    
         
             
            ```R
         
     | 
| 
       14 
     | 
    
         
            -
            # 
     | 
| 
      
 15 
     | 
    
         
            +
            #書いたコードをすべて加筆しました
         
     | 
| 
      
 16 
     | 
    
         
            +
            n <- ncol(alldata)
         
     | 
| 
      
 17 
     | 
    
         
            +
            ix <- 1:n
         
     | 
| 
      
 18 
     | 
    
         
            +
            data1 <- lapply(alldata[ix], as.numeric) #alldataが元データの名前です
         
     | 
| 
      
 19 
     | 
    
         
            +
            data1$SEX <-as.character(data1$SEX) #性別をcharacterにする
         
     | 
| 
       15 
20 
     | 
    
         | 
| 
      
 21 
     | 
    
         
            +
            data1 <-as.data.frame(data1) 
         
     | 
| 
      
 22 
     | 
    
         
            +
            is.data.frame(data1)
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
            data1$変数A <-  rowMeans(data1[,c("A1","A2","A3","A4","A5","A6","A7","A8","A9","A10","A11","A12","A13")],na.rm = T)
         
     | 
| 
      
 25 
     | 
    
         
            +
            data1$変数B <- rowMeans(data1[,c("B1","B2","B3","B4","B5","B6","B7","B8","B9","B10","B11","B12")],na.rm = T)
         
     | 
| 
      
 26 
     | 
    
         
            +
            data1$変数Ca <- rowSums(data1[,c("C1","C3","C6","C7","C9","C13","C14")],na.rm = T)
         
     | 
| 
      
 27 
     | 
    
         
            +
            data1$変数Cb <- rowSums(data1[,c("C2","C4","C11","C12","C17")],na.rm = T)
         
     | 
| 
      
 28 
     | 
    
         
            +
            data1$変数Da <- rowMeans(data1[,c("D1","D2","D3","D4","D5","D6","D7","D8")],na.rm = T)
         
     | 
| 
      
 29 
     | 
    
         
            +
            data1$変数Db <- rowMeans(data1[,c("D9","D10","D11","D12","D13","D14","D15")],na.rm = T)
         
     | 
| 
      
 30 
     | 
    
         
            +
            data1$変数Dc <- rowMeans(data1[,c("D16","D17","D18","D19","D20")],na.rm = T)
         
     | 
| 
      
 31 
     | 
    
         
            +
            data1$変数Dd <- rowMeans(data1[,c("D21","D22","D23","D24","D25","D26","D27")],na.rm = T)
         
     | 
| 
      
 32 
     | 
    
         
            +
            data1$変数De <-rowMeans(data1[,c("D28","D29")],na.rm = T)
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
            #クラスタの作成
         
     | 
| 
      
 35 
     | 
    
         
            +
            library(dplyr)
         
     | 
| 
      
 36 
     | 
    
         
            +
            ABC_s <- data1 %>% select(変数Da,変数Db,変数Dc,変数Dd,変数De)
         
     | 
| 
      
 37 
     | 
    
         
            +
            distance <- dist(ABC_s)
         
     | 
| 
      
 38 
     | 
    
         
            +
            hc <- hclust(distance, method="ward.D2")
         
     | 
| 
      
 39 
     | 
    
         
            +
            plot(hc)
         
     | 
| 
      
 40 
     | 
    
         
            +
            cluster <- cutree(hc, k=4) #クラスタ数の指定
         
     | 
| 
      
 41 
     | 
    
         
            +
            cluster
         
     | 
| 
      
 42 
     | 
    
         
            +
            cluster <- as.factor(cluster) #Factor型に変更
         
     | 
| 
      
 43 
     | 
    
         
            +
            data1$cluster <- cluster
         
     | 
| 
      
 44 
     | 
    
         
            +
            class(data1$cluster)
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
            df <- data1
         
     | 
| 
      
 47 
     | 
    
         
            +
            df <- mutate(df,cluster_N = if_else(cluster == 3,true = 1,false = 0))
         
     | 
| 
      
 48 
     | 
    
         
            +
            data1$cluster_N <- df$cluster_N
         
     | 
| 
      
 49 
     | 
    
         
            +
            data1$cluster_N <- as.factor(data1$cluster_N)
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
            #最後の行を実行するとエラーが出ます--------------
         
     | 
| 
      
 52 
     | 
    
         
            +
             
     | 
| 
      
 53 
     | 
    
         
            +
            library(randomForest)
         
     | 
| 
       16 
54 
     | 
    
         
             
            set.seed(1)
         
     | 
| 
       17 
55 
     | 
    
         
             
            df.rows = nrow(data1)
         
     | 
| 
       18 
56 
     | 
    
         
             
            train.rate = 0.6
         
     | 
| 
         @@ -22,7 +60,7 @@ 
     | 
|
| 
       22 
60 
     | 
    
         
             
            cat("train =",nrow(df.train),"test= ",nrow(df.test)) 
         
     | 
| 
       23 
61 
     | 
    
         | 
| 
       24 
62 
     | 
    
         
             
            #分類モデルの作成
         
     | 
| 
       25 
     | 
    
         
            -
            model.rf <- randomForest(ABC ~ 変数A + 変数B + 変数 
     | 
| 
      
 63 
     | 
    
         
            +
            model.rf <- randomForest(ABC ~ 変数A + 変数B + 変数Ca + 変数Cb, data = df.train)
         
     | 
| 
       26 
64 
     | 
    
         
             
            #分類モデルの確認
         
     | 
| 
       27 
65 
     | 
    
         
             
            model.rf
         
     | 
| 
       28 
66 
     | 
    
         |