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

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

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

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

Q&A

解決済

1回答

2081閲覧

時系列データの機械学習:正解ラベルが複数の比率である場合

HIN0209

総合スコア0

機械学習

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

0グッド

0クリップ

投稿2020/09/12 02:45

編集2020/09/12 09:10

前提・実現したいこと

時系列データを用いた機械学習に取り組んでいます。下の例では1秒ごとに10秒間データを記録し、4回記録した結果をデータとして示します。
それらの波形はシミュレーションの結果であり、要素1から要素6の波形を違った割合で足し合わせたものになります(比率(合計は常に1):正解ラベル)。
課題としては、与えられた波形データと比率を基にした教師あり学習で、波形から各要素の比率を推定するものです。
複数の比率を正解ラベルとして用いる教師ありにつき検索しましたが、マルチラベル学習などばかりヒットします。正解ラベルの設定法ですが、例えば波形1の場合(0.2,0.1,0.15,0.25,0.2,0.1)になりますが、その正解ラベルを用いることのできる機械学習法がわかりませんので、ご教授ください。
追記;簡略化しすぎて却って分かりにくいとご指摘ありがとうございます。
実際の内容は以下の通りです。
1つの時系列波形を幾つかの候補時間のいずれかずらして(右に変位)200個加算する。ありうる候補時間の割合を正解ラベルとするため、説明関数になります。時間をずらして加算した波形が目的関数です。

時間(秒):データ 波形1 波形2 波形3す 波形4
1 0.5 0 -0.5 -1
2 0.9 0.4 -0.1 -0.6
3 2.5 0.8 -0.9 -2.6
4 6.2 0.6 -5 -10.6
5 4.5 0.4 -3.7 -7.8
6 3.9 1.2 -1.5 -4.2
7 -2.3 -3.2 -4.1 -5
8 -5.3 -2.1 1.1 4.3
9 -7.3 -1 5.3 11.6
10 -5 -2.3 0.4 3.1

比率 (正解ラベル)
要素1 0.2 0.05 0.1 0.2
要素2 0.1 0.2 0.15 0.15
要素3 0.15 0.1 0.1 0.05
要素4 0.25 0.3 0.3 0.15
要素5 0.2 0.1 0.05 0.25
要素6 0.1 0.25 0.3 0.2

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

ソースコード

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

aokikenichi

2020/09/12 08:19

問題の設定がよく分かりません 「4回記録」が「波形1-4」でよい? 波形1-4はそれぞれ要素1-6を「正解ラベル」の係数を掛け合わせたものでよい?ということは「波形1-4」は波形の合成ということでよい? 元々の波である要素1-6は6種類であり固定ということでしょうか? 学習データは4つだけなのでしょうか。 説明変数は何で目的変数は何でしょうか。 この問題設定だと、正解ラベルによって合成波形が決まるので、正解ラベルが目的変数ではなくて説明変数に見えます。 この設定のままですと学習のしようがないので機械学習ではまる手法はないとおもいます。
HIN0209

2020/09/12 09:18

コメントありがとうございます。不明瞭ですので訂正します。波形1-4は1つの波形の合成波形です。要素とは時間をずらして加算するため、そのずらした時間の割合です(実際のシミュレーションではずらす候補時間は20位あり、波形を200個加算です)。学習データはシミュレーションなので数千以上可能です。説明関数はずらした時間の割合(例 1秒20%(40個)、2秒40%(80個)、3秒40%(80個) など計100%(200個))。
aokikenichi

2020/09/12 09:24

「右に変位」のパターンが「正解ラベル」の4パターンということでしょうか 「要素1-6」は元の波形ではないようなので何でしょうか。 元の波形は200あるようですが、それを全て加算しているようですので、結局 データは4件であり4つに分類したいということでしょうか。
aokikenichi

2020/09/12 09:28

すみませんQ&Aが行き違いになってしまいました。 学習データは数千以上あるとのことですがそれが波形でしょうか。とすると「波形を200個」の200個とは何でしょうか。 機械学習は通常 学習データがn件あり、それぞれ何らかの説明変数としての属性がm個ある。そして正解としての目的変数が1つあり、その目的変数は連続値の場合もあり(それならば回帰)、離散値の場合もある(それならば判別)。 今回の場合は学習データが数千件の波形、属性は何でしょうか。目的変数は「正解ラベル」の4通り、ということでしょうか。
HIN0209

2020/09/12 21:24 編集

何度も返信ありがとうございます。 時系列データとして原波形を200個、20の候補時間からランダムに選んで右方向に遅らせて合成したものが、学習データとして数千個作成する合成「波形」になります。 学習データは合成波形の時系列データをそのまま入れる場合(150ポイント程度の時点での数値)(1)または、その時系列特徴量を数十抽出したものか次元削減した数個の場合(2)を考えています。 いずれにしても正解としての目的変数は(0.1, 0.15, 0.2, 0.02, ...)(要素20個程度、合計1)です(現波形を時間をずらして加算した場合の200個中のずらした時間の割合)。20次元のベクトルを正解とすれば1つの目的変数として設定可能でしょうか。
aokikenichi

2020/09/13 01:21

質問の度に条件設定の新しい情報が来て混乱しています。 目的変数 説明変数1 説明変数2 …… データ1 … データ2 … …    … の表形式にデータが用意できれば機械学習が可能です。 Teratailはプログラミングがメインで時系列データの回答者は少ないようでしたので積極的に回答しようと心がけておりますが浅学な私では回答できないようです。お時間を使わせてしまい大変申し訳ありませんでした。
HIN0209

2020/09/13 03:37

何度もご回答いただき大変ありがとうございます。最初から情報をしっかり伝えるようにすべきでした。お時間いただき感謝いたします。
aokikenichi

2020/09/13 04:27

いえ私の能力不足です。 興味深い問題ですが、私の力及ばずです。
guest

回答1

0

自己解決

質問者ですがその後調べてみました.「複数の目的変数に対する回帰(multioutput regression)」が答えのようです.
https://www.haya-programming.com/entry/2018/05/07/115144
https://qiita.com/katsuki104/items/71c7581cce60f0e303f3

複数の目的変数に対応したモデルとして正準相関分析,ランダムフォレスト回帰,ニューラルネットワーク回帰などがあり,scikit-learnのパッケージがあるようです.

時系列データに適応できるのか,相対比率を目的変数に用いられるのか,など不明点がありますが,時系列データが無理であれば特徴量ベースに変換してみます.ありがとうございました.

追記:「scikit-learnにおいて2項目以上の出力値をfitさせる方法」というトピックが立っていました.
https://teratail.com/questions/148354

投稿2020/09/13 07:35

編集2020/09/13 07:57
HIN0209

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問