質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.43%
Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Q&A

0回答

2024閲覧

時系列データを時間軸に対してスライドしながら検証したい

ammtjm

総合スコア7

Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

0グッド

0クリップ

投稿2021/12/24 05:05

編集2021/12/25 15:40

#やりたいこと
時系列データを以下の図のように訓練データとテストデータを分割したいと考えています.

イメージ説明

スライド期間は1個ずつなど, このようなことが出来るライブラリなど, あるいはコード, 参考になるwebサイト等ございましたら教えてください.

参考元url (https://pimientito-handson-ml.hatenablog.com/entry/2019/07/15/000955)

#調べたこと
時系列データの分析ということでTimeSeriesSplitについて調べました.

VAR, LSTM を使用した分析をしたいと思っているのですが, 学習に使うデータの量は一定で行いたいと思っているのでこれは当てはまらないかと考えております.

#追記: 問題設定

全部で500秒分のデータがあります. そこに訓練データは100秒固定でテストを1-100秒の予測を行います. 1秒先の予測誤差RMSEから100秒先まで
行い, これを一回の試行とします.

これを一回目は1-100秒のデータで, 2回目は2-101秒のデータ...と400回行います. [1-100のRMSE]の配列を400個用意し, 全体のデータに対して各手法のn秒後の予測精度として平均のRMSEはどれくらいかということを調べたいと思っております. 例えば1秒先をLSTMで学習データ100個で予測すると平均してRMSEが〇〇で予測できる, といったことを調べたいのです. そして最終的には各手法を予測時間とRMSEのグラフにして, n秒後以降を予測するならばこちらの手法の方が優れている, といったようなことを知りたいと思っております.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aokikenichi

2021/12/25 13:56

ご質問の意味・意図がよくわからないです 学習を6ヶ月、検証を2ヶ月に分けたいならば日付をもとに分ければいいだけでは? VARとかLSTMとかは関係ない問題かと思います。
ammtjm

2021/12/25 15:55

失礼いたしました. 改めて問題設定を追記させていただきました. 一度の学習の実行ではなく全体のデータに対して, 学習期間(1-100,2-101,3-102...)と変えてその予測精度をみていきたいと考えております. 現状, 普通のtrain_test_splitを使用すると訓練,テストデータのサイズ指定はできるので上記問題設定に書いたテスト期間1-100に変えるといったことはできるのですが, 学習位置を変えていく方法が分かりません.
aokikenichi

2021/12/26 06:17

train_test_split は指定した割合のデータをランダムに取得するものであり、今回の時系列の場合は使えませんね 時系列用の学習データ取得関数もあるかもしれませんが、ひとまずはdataframeの行を順番に取ってくれば良いと思いますがいかがでしょうか
ammtjm

2021/12/26 06:49 編集

train_test_splitではランダムにならないようshuffle=False として訓練サイズ固定, for文でテストサイズを1-100まで増やして使っております. 今できるのは全データから最初の100個の訓練データをもちいて次の101個目から200個目までの予測となっております. 全体のデータフレーム(例えば500行×64列, 目的変数系列は1列目)から訓練データの位置を1スライドずつどのように取得していけばいいのでしょうか. すみません, 具体的なfor文使ったアイデア等ありましたら教えていただけますでしょうか.
aokikenichi

2021/12/26 08:51

Pythonはどこまで学ばれているのでしょうか df.iloc[i:j, :] のような感じで iからj-1行目まで取得すれば良いのではないでしょうか これはかなり初期にやるべき基本中の基本と思いますが こういう質問なのでしょうか
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.43%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問