質問編集履歴
1
プログラムの抜け
test
CHANGED
File without changes
|
test
CHANGED
@@ -188,6 +188,76 @@
|
|
188
188
|
|
189
189
|
print('MAE:',mae)
|
190
190
|
|
191
|
+
#特徴量に年を入れる
|
192
|
+
|
193
|
+
#df['year'] = df['datetime'].dt.year #年の特徴量
|
194
|
+
|
195
|
+
#月の特徴量
|
196
|
+
|
197
|
+
df['month']=df['datetime'].dt.month
|
198
|
+
|
199
|
+
#日の要素をデータフレームに加える
|
200
|
+
|
201
|
+
df['day']=df['datetime'].dt.day
|
202
|
+
|
203
|
+
# 曜日
|
204
|
+
|
205
|
+
df['dayofweek'] = df['datetime'].dt.dayofweek
|
206
|
+
|
207
|
+
x_pos = df['POSIX'].values
|
208
|
+
|
209
|
+
#x =df[['POSIX','year','month','day','dayofweek']].values
|
210
|
+
|
211
|
+
x =df[['POSIX','month','day','dayofweek']].values
|
212
|
+
|
213
|
+
y = df['demand'].values
|
214
|
+
|
215
|
+
x_pos=x_pos.reshape(-1,1)
|
216
|
+
|
217
|
+
x_pos_train,x_pos_test=x_pos[:N_train+i*24],x_pos[N_train:N_train+i*24+24] #xと同じ 正解データ
|
218
|
+
|
219
|
+
x=x
|
220
|
+
|
221
|
+
y=y.reshape(-1,1)
|
222
|
+
|
223
|
+
x_train, y_train = x[:N_train + i * 24], y[:N_train + i * 24] # 多分1回ごとに訓練期間が1日分長くなる
|
224
|
+
|
225
|
+
x_test, y_test = x[N_train + i * 24:N_train + i * 24 + 24], y[N_train + i * 24:N_train + i * 24 + 24] # 多分1日予測を繰り返してる
|
226
|
+
|
227
|
+
y_train=np.reshape(y_train,(-1)) #1次元に変換
|
228
|
+
|
229
|
+
y_test=np.reshape(y_test,(-1)) #1次元に変換
|
230
|
+
|
231
|
+
#機械学習パート
|
232
|
+
|
233
|
+
rf = RandomForestRegressor(random_state=1)
|
234
|
+
|
235
|
+
|
236
|
+
|
237
|
+
rf.fit(x_train,y_train)
|
238
|
+
|
239
|
+
y_pred=rf.predict(x_test)
|
240
|
+
|
241
|
+
y_pred=np.array(y_pred)
|
242
|
+
|
243
|
+
|
244
|
+
|
245
|
+
print('y_pred',y_pred)
|
246
|
+
|
247
|
+
|
248
|
+
|
249
|
+
print(x_test)
|
250
|
+
|
251
|
+
plt.figure(figsize=(9,5))
|
252
|
+
|
253
|
+
plt.plot(x_pos,y,color='gray',linestyle='dashdot')
|
254
|
+
|
255
|
+
plt.plot(x_pos_train,y_train,'+')
|
256
|
+
|
257
|
+
plt.plot(x_pos_test,y_pred,'--')
|
258
|
+
|
259
|
+
plt.show()
|
260
|
+
|
191
261
|
```
|
192
262
|
|
193
263
|
|