teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

補足の加筆

2020/04/26 08:42

投稿

nats
nats

スコア16

title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,5 @@
1
1
  ### 前提・実現したいこと
2
2
  約2000名分のデータを使って、ランダムフォレストの結果を部分従属プロットにしたいです。
3
- ![イメージ説明](939ad2345b5375b16d7964b2b2bd7003.png)
4
3
  しかし、partial_dependence関数を使うと以下のエラーメッセージが発生しました。
5
4
  ### 発生している問題・エラーメッセージ
6
5
 

1

データ内容の添付

2020/04/26 08:42

投稿

nats
nats

スコア16

title CHANGED
File without changes
body CHANGED
@@ -1,5 +1,6 @@
1
1
  ### 前提・実現したいこと
2
2
  約2000名分のデータを使って、ランダムフォレストの結果を部分従属プロットにしたいです。
3
+ ![イメージ説明](939ad2345b5375b16d7964b2b2bd7003.png)
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 + 変数C + 変数D, data = df.train)
63
+ model.rf <- randomForest(ABC ~ 変数A + 変数B + 変数Ca + 変数Cb, data = df.train)
26
64
  #分類モデルの確認
27
65
  model.rf
28
66