CNNによるCSVファイルを用いた変化量予測

画像のように出力データ(黄色)と入力データ(特徴量13個)を用意したCSVファイルを用いてimageDatastoreにてデータの処理をしたいと考えております.
皆さまでしたらどのようなプログラムを組むのでしょうか.教えてください.
また、CSVファイルからCNN処理をする際、参考となる例・ドキュメンテーションがございましたら教えてください.

7 comentarios

Kenta
Kenta el 29 de Jul. de 2020
こんにちは、「CNN処理」とのことですが、13個の特徴量を持つデータに対して畳み込みといった、処理をしたいということでしょうか?1D畳み込みとかそういったことでしょうか?それとも単に サンプル数×13のデータに対してニューラルネットワークのような操作をイメージされていますでしょうか。
データの読み込みに関しては、まずはcsvの読み込みの関数を検索して、ワークスペースに読み込めば良いと思います。CSVのデータ容量がとても大きい場合を除き、データストアを使わずとも、メモリに乗って、コーディングも簡単かもしれません。まずはCSVの読み込みと、「CNN処理」のほうを別々に検索しても良いかもしれません。参考になれば幸いです。
Shunichi Kusano
Shunichi Kusano el 29 de Jul. de 2020
もしCSV用のデータストアをお探しでしたらtabularTextDatastoreをお使いください。
Kentaさんと同じ主旨になりますが、特徴量13個+出力1個ということですとCNNではなく、全結合層を中心とした多層パーセプトロンの方がなじみそうな気がします。CNNは画像のようにデータの位置関係が特徴抽出に重要な場合に使います。今回はいかがでしょうか。
Masashige Tayasu
Masashige Tayasu el 6 de Ag. de 2020
コメントありがとうございます。 csvデータはtable型で読み込んでも問題なさそうです。 多層パーセプトロンを使用してみたいのですが、テーブル型で特徴量13のものと出力1のものとでそれぞれ作りその後、
https://jp.mathworks.com/help/deeplearning/ug/perceptron-neural-networks.html;jsessionid=4d0a715f3f0c4e91be1358755a53
こちらのURLを確認したのですが、 ベクトルを用いた解析しか出来ないように思えるのですが、具体的にはどのような操作が必要なのでしょうか?
Kenta
Kenta el 6 de Ag. de 2020
パーセプトロンもいいですが、浅いニューラルネットでもよさそうです。
対象データはすべて数字のようなので、Table型で読んでいるなら、それをdouble型などの行列に直して(ネットで詳しい方法は検索してみてください)、訓練データとラベルデータを作り、それを上のURLの関数に入力してみてください。
Masashige Tayasu
Masashige Tayasu el 3 de Sept. de 2020
ご回答ありがとうございます.
以下のような結果を得る事が出来ました.
これらの表記された内容を理解するためにはどちらのドキュメンテーションを参照すればよいのでしょうか.
他にも参考になるページがございましたら、お教えくださいませ.
Naoya
Naoya el 3 de Sept. de 2020
浅いネットワークで回帰モデルを設計するという点では、fitnet関数でネットワークを設計されるのがよいと思います。関数の詳細は下記コマンドでドキュメントを参照できます。
doc fitnet
学習時は同じく net = train(net,x,t) を使いますが、xは[入力層のユニット数 x パターン数]、tは[出力層 x パターン数]のサイズをの行列を指定します。上のキャプチャ例の入出力サイズが 179になっているようですので、もしかしたら、お手持ちの x と t の行列は転置する必要があるのかもしれません。
Masashige Tayasu
Masashige Tayasu el 16 de Sept. de 2020
ご回答ありがとうございます。
fitnet関数についても興味深いと思い、解析しました.
しかし、添付致しました画像の通りの結果となりました.
学習時間が0であること等からうまく解析が出来ていないように思いました.
x,tについては転置しないとエラーが表示されたため、転置処理を行いました.
コードは以下の通りです。
>> net = fitnet(10,'trainbr');
net = train(net,x,t);
y = net(x);
perf = perform(net,y,t)
perf =
NaN

Iniciar sesión para comentar.

 Respuesta aceptada

Kenta
Kenta el 5 de Sept. de 2020

3 votos

こんにちは、コメントのほう返信ありがとうございます。うまく学習できたようでよかったです。
参考としてはたとえば こちら などはいかがでしょうか。リンクなどもたどると色々と見つかるとおもいます。またコメントで提示させていただいたURLの「入力引数」という欄にも、パラメータの情報などがあります。他の用語の説明などは、適宜インターネット上に情報があるので検索してみてはいかがでしょうか。

1 comentario

Masashige Tayasu
Masashige Tayasu el 16 de Sept. de 2020
ご回答ありがとうございます.
理解することができました.
ご丁寧な解説、その後の対応に関しましても感謝申し上げます.
今後もご縁がございましたら、よろしくお願い致します.

Iniciar sesión para comentar.

Más respuestas (0)

Etiquetas

Preguntada:

el 29 de Jul. de 2020

Comentada:

el 16 de Sept. de 2020

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!