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

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

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

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

深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

機械学習

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

3620閲覧

Keras LSTM で Predict した結果に遅れがあり改善したい

kpanda

総合スコア1

Keras

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

深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

機械学習

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/09/21 06:12

編集2020/09/21 06:54

2時間後河川の水位予測をしようと考えています。
そこで、Keras, LSTMで予測しようとしているのですが、
Predictで実際に予測してみると、画像の様に全体的に予測結果が正解値に対して遅れています。
学習している際にはしっかり2時間後の水位を目的地にして学習しています。
また、予測データをプロットする際には正解データとインデックスのいちを合わせてプロットしているため
プロットの位置はずれていないかと思います。

原因が考えられる箇所があれば教えて頂きたいです。
よろしくお願いします!

(追記)
10分置きで3ヶ月ほどのデータが有り、

  • 20箇所ほど地点の降水量の平均値
  • 20箇所ほどの地点の水位

の2点を特徴量にして、70個のデータ(700分)さかのぼって学習しています。

イメージ説明

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

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

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

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

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

guest

回答2

0

単一地点の水位の履歴のみから2時間後の水位を予測する、というモデルに、根本的な問題があると思います。

河川のいろいろな地点の水位や、いろいろな地点の降水量など、2時間後の水位に影響があると思われる特徴量をもっと取り入れるべきと思います。その際、時間予測だからといってLSTMの適用にこだわらず、いろいろなアルゴリズムを検討すべきと思います。

投稿2020/09/21 06:44

toast-uz

総合スコア3266

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

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

kpanda

2020/09/21 07:49

ご回答ありがとうございます! 特徴量を一回見直して、増やしてみたいと思います。
Harig

2021/04/12 07:53

特徴量を増やしてもあまり改善しないのではないでしょうか? 予測データは1期間前のデータに強く依存しているため、このモデルはそれを学習しています。 水位の増減を予測するようにすると精度も遅延もなくなるかと思われます。
toast-uz

2021/04/12 12:18

そうは思いません。増減予測に切り替える程度で学習できるなら、もとからLSTMで学習できていると思います。ベストアンサーも参照していただいたうえで、おっしゃることが正しいと主張されるのであれば、事例を提示ください。
Harig

2021/04/25 08:23

さきほどのコメントでは説明不足でした。 特徴量も水位を使うのではなく、水位の差分を使うようにするという意見でした。 質問者さんが使用しているデータは公開されていないようなので推測になってしまいますが、 質問者さんが予測しようとしている水位のデータは(プロットを見る限り)非定常な(平均回帰しないような)データのように見えます。 しかし、データの差分はより定常なデータであるはずです。 また一般に、機械学習モデルは学習データと予測データの分布の変化などに弱いです。 (定常性の重要性については以下のリンクが詳しいです。) https://datascience.stackexchange.com/questions/24800/time-series-prediction-using-lstms-importance-of-making-time-series-stationary そのため、非定常な(のように見える)水位データをLSTMに学習させても、学習がうまくいかないが、 より定常なデータである階差系列を扱うことによって学習がうまくいくのではないかと考えました。
guest

0

ベストアンサー

【入門編】機械学習で仮想通貨の価格予測!KerasでLSTMモデルを構築してビットコインとイーサリアムの翌日の価格を予測する方法
の記事が参考になるかと思いますが
実質予測ができてなく、1単位前の値を次の値として予測したら誤差が一番小さくなったのでそうしてる≒ラグモデル
ですね。
説明変数がなく、過去の実績値のみかつ周期性がない場合はこれを改善するのは非常に困難というか無理だと思います。

投稿2020/09/21 06:32

aokikenichi

総合スコア2240

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

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

kpanda

2020/09/21 06:48

早速ご回答ありがとうございます! 説明変数は2つしか使用していませんでした。 周期性は殆どないと思うので説明変数(=特徴量?)を工夫して学習させてみます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問