プログラミング初心者の学生です、わかる方ご教授いただけると幸いです。
以下matalbのHP「テーブル内のデータの使用による GPR モデルの学習」
を参考にしてtxtファイルからデータを読み込み、データを学習させ、将来予測を行いたいです。
現状
x軸:データナンバーになっている。(与えていないのに)
学習させたはずだが、予測値、回帰式がない。
理想
X:時間軸、Y:予測したい数値
回帰式が出てきて将来値を求めたい。
matlab
1addpath '/Users/XXX/Documents' 2T=readtable('ファイル名.txt') 3gprMdl = fitrgp(T,'Weight_Square','KernelFunction','ardsquaredexponential',... 4'FitMethod','sr','PredictMethod','fic','Standardize',1) 5ypred = resubPredict(gprMdl); 6figure(); 7plot(T.Weight_Square,'r.'); 8hold on 9plot(ypred,'b'); 10xlabel('x'); 11ylabel('y'); 12legend({'data','predictions'},'Location','Best'); 13axis([0 4000 0 0.5]); 14hold off;
> x軸:データナンバーになっている。(与えていないのに)
与えてないから、そうなっているのです
> X:時間軸、Y:予測したい数値
横軸を時間にしたければ、
plot(時間が入ってる変数, T.Weight_Square,'r.');
plot(時間が入ってる変数, ypred,'b');
と、MATLABに教えてあげないといけません
ご教授いただきありがとうございます。
ご指摘の通りに修正すると軸も変更され予測の直線が描かれました。
何度も申し訳ありませんが、直線の式を確認する方法はあるのでしょうか。
また、曲線などに変更することは可能なのでしょうか。
> 将来予測を行いたい
将来予測ということは、外挿ですよね
外挿は、カーネルの選び方でかなり変わります
https://dajiro.com/entry/2020/04/21/085950
> 回帰式が出てきて
https://cyberagent.ai/blog/research/10245/
の「サンプル数2のとき,3つ目の予測値はどうなるか」と書いてあるところのすぐ上の式の、N(...) のかっこの中の「,」より前が、予測値の平均値を計算する式です
これが実際にどのような形になるのかが、学習に使ったサンプルデータ数が2個の場合に具体的に書いてあるのが、「サンプル数2のとき,3つ目の予測値はどうなるか」の下の式です
「上式から,以下のように考えることができます.」のすぐ上の式の {...} のかっこの中に、4個の項があります
そこの項の数は、学習に使ったサンプルデータ数をN個とすると、N×N個になります
その例の場合は、学習に使ったサンプルデータ数=2個なので、項数は2×2=4個しかないため、式は簡単に書けます
現実の問題に適用する場合、学習に使うサンプルデータ数が数個しかない場合は、めったにないでしょう
もっとたくさんのデータを使って学習する場合がほとんどでしょう
その場合は、当然式の項数もとても増えます
たとえば、学習サンプルデータ数=100個の場合は、項数は100×100=10000個となります
学習サンプルデータ数=1000個の場合は、項数は1000×1000=1000000個となります
そんな項数がものすごく多い式を表示させても、画面が文字だらけになって、わけがわからないですよ
ご丁寧にありがとうございます。
統計学的回帰のように式を出すことが現実的に可能であると勝手に考えていましたが、
私の機械学習の知識がなく考えが浅はかだったようです。
質問の内容もご教授いただいた内容で十二分解決した為ベストアンサーに指名させて頂きたいのですが、いかがでしょうか。
回答1件
あなたの回答
tips
プレビュー