質問編集履歴

6

ソースコードについて追記しました。

2021/08/30 13:12

投稿

xtail
xtail

スコア2

test CHANGED
File without changes
test CHANGED
@@ -122,6 +122,40 @@
122
122
 
123
123
  ```ここに言語名を入力
124
124
 
125
+ """ライブラリのインポート"""(追記)
126
+
127
+ #データ解析用ライブラリ
128
+
129
+ import pandas as pd
130
+
131
+ import numpy as np
132
+
133
+
134
+
135
+ #データ可視化ライブラリ
136
+
137
+ import matplotlib.pyplot as plt
138
+
139
+ import seaborn as sns
140
+
141
+
142
+
143
+ #RandomForestライブラリ
144
+
145
+ from sklearn.ensemble import RandomForestRegressor as RFR
146
+
147
+ from sklearn.model_selection import GridSearchCV
148
+
149
+
150
+
151
+ #訓練データとモデル評価用データに分けるライブラリ
152
+
153
+ from sklearn.model_selection import train_test_split
154
+
155
+ #-------------------------------------------------------------
156
+
157
+
158
+
125
159
  #データの読み込み
126
160
 
127
161
  concrete_data = pd.read_csv(r'C:データ',engine='python')
@@ -130,6 +164,60 @@
130
164
 
131
165
 
132
166
 
167
+ #データを訓練用とモデル評価用に分割
168
+
169
+ train_set, test_set = train_test_split(concrete_data, test_size=0.2, random_state=4)
170
+
171
+ print(len(train_set))
172
+
173
+ print(len(test_set))
174
+
175
+
176
+
177
+ #データの変数 [A,B,C,D,E,F,G,H,I,J,K,L,M,ID]
178
+
179
+  
180
+
181
+
182
+
183
+ #訓練データを説明変数データ(X_train)と目的変数データ(y_train)に分割
184
+
185
+ X_train = train_set.drop(['A','D','E','F','H','L','M','ID'], axis=1)
186
+
187
+ y_train = train_set['M']
188
+
189
+
190
+
191
+
192
+
193
+ #モデル評価用データを説明変数データ(X_train)と目的変数データ(y_train)に分割
194
+
195
+ # All
196
+
197
+ #X_test = test_set.drop(['A','H','L','M','ID'], axis=1)
198
+
199
+ # Slim
200
+
201
+ X_test = test_set.drop(['A','D','E','F','H','L','M','ID'], axis=1)
202
+
203
+ # non-cyc
204
+
205
+ #X_test = test_set.drop(['A','H','J','K','L','M','ID'], axis=1)
206
+
207
+
208
+
209
+ y_test = test_set['M']
210
+
211
+
212
+
213
+ #分割データの確認
214
+
215
+ print(X_train.head())
216
+
217
+
218
+
219
+
220
+
133
221
  #モデル構築  RandomForest
134
222
 
135
223
 
@@ -164,6 +252,18 @@
164
252
 
165
253
 
166
254
 
255
+ #モデルフィット
256
+
257
+ rf_train = rf.fit(X_train,y_train)
258
+
259
+ rf_eval = rf.fit(X_test, y_test)
260
+
261
+ params = {'metric': 'rmse',
262
+
263
+ 'max_depth' : 9}
264
+
265
+
266
+
167
267
 
168
268
 
169
269
  #予測値算出

5

特徴重要度の可視化についての情報を追記しました。

2021/08/30 13:12

投稿

xtail
xtail

スコア2

test CHANGED
File without changes
test CHANGED
@@ -223,3 +223,11 @@
223
223
  データの分割などは省略しています。
224
224
 
225
225
  一応、①についてはできているとは思うのですが、モデル自体正しいのか不安です。
226
+
227
+ ![![イメージ説明](a9fb8f782dda10ad67c137d03b18e0de.png)
228
+
229
+ これが現在出ているグラフです。
230
+
231
+ ![イメージ説明](e45144518168bdf7c3b060b6d3f97f47.png)
232
+
233
+ 理想的にはこのようにy軸に説明変数を出したいです。

4

予測値についての情報を追記しました。

2021/08/30 12:14

投稿

xtail
xtail

スコア2

test CHANGED
File without changes
test CHANGED
@@ -24,6 +24,12 @@
24
24
 
25
25
 
26
26
 
27
+ 追記
28
+
29
+ ②についても解決したかもしれません。
30
+
31
+
32
+
27
33
 
28
34
 
29
35
  ### 発生している問題・エラーメッセージ

3

予測値についての情報を追記しました。

2021/08/30 12:06

投稿

xtail
xtail

スコア2

test CHANGED
File without changes
test CHANGED
@@ -40,6 +40,32 @@
40
40
 
41
41
 
42
42
 
43
+ 追記
44
+
45
+ #予測値算出
46
+
47
+ y_pred = rf.predict(X_test)
48
+
49
+ #予測値の平均値
50
+
51
+ y_pred_true = sum(y_pred)/len(y_pred)
52
+
53
+
54
+
55
+ print(y_pred)
56
+
57
+ print(y_pred_true)
58
+
59
+ に変更しました。
60
+
61
+
62
+
63
+ >[ 0.38222 -1.58526 0.34684 ... 2.14196 1.05836 1.01766]
64
+
65
+ >0.007574019218924746
66
+
67
+ -------------------------------------------------------------
68
+
43
69
  特徴重要度の可視化について
44
70
 
45
71
  KeyError: 'feature_names'
@@ -180,6 +206,10 @@
180
206
 
181
207
 
182
208
 
209
+ ②予測値の可視化について、y_predの平均値を取ることで解決したかもしれません。追記します。
210
+
211
+
212
+
183
213
  ### 補足情報
184
214
 
185
215
  Spyder(Python3.8)を使っています。

2

エラーメッセージの全文を追加しました。

2021/08/30 12:04

投稿

xtail
xtail

スコア2

test CHANGED
File without changes
test CHANGED
@@ -49,6 +49,26 @@
49
49
 
50
50
 
51
51
  追記
52
+
53
+
54
+
55
+ The above exception was the direct cause of the following exception:
56
+
57
+
58
+
59
+ Traceback (most recent call last):
60
+
61
+
62
+
63
+ File "Cモデル名", line 150, in <module>
64
+
65
+ plt.xticks(x, concrete_data['feature_names'])
66
+
67
+
68
+
69
+ File "C:\Users\Owner\anaconda3\lib\site-packages\pandas\core\frame.py", line 3455, in __getitem__
70
+
71
+ indexer = self.columns.get_loc(key)
52
72
 
53
73
 
54
74
 

1

エラーメッセージの全文を追加しました。

2021/08/30 11:53

投稿

xtail
xtail

スコア2

test CHANGED
File without changes
test CHANGED
@@ -45,6 +45,20 @@
45
45
  KeyError: 'feature_names'
46
46
 
47
47
  と出て、できていない状況です。
48
+
49
+
50
+
51
+ 追記
52
+
53
+
54
+
55
+ File "C:\Users\Owner\anaconda3\lib\site-packages\pandas\core\indexes\base.py", line 3363, in get_loc
56
+
57
+ raise KeyError(key) from err
58
+
59
+
60
+
61
+ KeyError: 'feature_names'
48
62
 
49
63
  ```
50
64