データ予測に使える曲線フィッターアプリ
みなさんお久しぶりです。学生競技会を担当している飯島です。
突然ですが、MATLABで使えるとても便利な曲線フィッターアプリをご存知でしょうか?今回はこれに関してお話をしていきたいと思います。
みなさんは研究室や仕事で何かの測定をして、データを取ったことはありますか?その取得したデータを利用することで実は予測をすることができます。そして、MATLABアプリ(Curve Fitting Toolboxが必要です)を利用することでそのデータの予測を簡単に出来ることに驚くことでしょう。
そもそも、データを使って予測?とはどういうことでしょう。取得したデータとデータの間の値や、観測したデータ以外の点は本来データが取れていない点のため、この点での値を知ることはできません。今回は、データに実在しない点を予測していくということをしていきます。
しかし、どうやったら予測ができるのでしょうか?
実は、予測を可能にしてくれるのが近似曲線です。
近似曲線?とは
データに寄せて描いた線が近似曲線です。連続するデータの前後の値を繋げて一つの線を引くことができます。しかし計測するときに、継続的にデータを測定し続けることは難しく、どうしても計測するタイミングでデータは途切れ途切れの点になってしまいます。もしもみなさんが取得したデータから線を完璧にトレースすることができれば、完璧な予測をすることができるようになります。
そして精度の高い近似曲線を利用することで、例えば未来の天気、温暖化、人口増減の予想や、その予想が原因解明に繋がることもあります。
そしてこの精度の高い近似曲線をボタンだけで作ってくれるのがMATLABの曲線フィッターアプリなのです!!
今回はもうすでに、ワークスペースにデータが入っているものとしましょう。はじめに曲線フィッターアプリで曲線を作成、そこからMATLABで予測を行うという流れで見ていきたいと思います。
それでは早速、曲線フィッターアプリを使っていきましょう。とその前に注意事項です。今回使用するのはR2022aバージョンです。以前のバージョン(旧名称:曲線近似ツール)でも今回と同じことを行うこともできますが、ユーザーインターフェースが変更されたことや、R2022a以前のバーションだといくつか余分なステップを踏む必要があったりするのでR2022aを推奨します。
曲線フィッターアプリを開くためには、MATLABのアプリタブから、左上にある“曲線フィッター“のアイコンをクリックして開きます。
【曲線フィッターアプリ】
曲線フィッターアプリを用いて今回は下記の手順で曲線モデルを作っていきます。
- ワークスペースにあるデータを選択
- 近似タイプを選択、もしくはパラメータの調整
- 曲線モデルのエクスポート
[1. ワークスペースにあるデータ選択]
“データの選択”をクリックし、XデータとYデータにそれぞれワークスペースから予測したいデータを選択
[2. 近似タイプを選択、もしくはパラメータの調整]
データを選択をすると下記画像のように黒いまばらな点と青色の直線(デフォルトの近似曲線)が表示されます。
ここで確認してほしい内容は、下記3点
○ 近似曲線が青色直線
○ 近似タイプが多項式
○ 近似オプションの次数が1
デフォルトでは近似タイプが多項式であり、ウィンドウ右側の近似オプションを見ると次数が1になっているのがわかります。
次数を9次に変更してあげると先程の直線と違って新たな近似曲線が作れました。ただし、今回の結果でもまだ近似曲線はデータにきれいに沿っていないのがわかります。
ではここで、近似タイプを多項式から平滑化スプラインに変えてみましょう。するととても高い精度で近似曲線が描けていることがわかります。
平滑化スプラインを用いることで精度の高い近似曲線を作ることに成功しました。
[3. 曲線モデルのエクスポート]
ここからはこの近似曲線のモデルをMATLABのワークスペースに保存して、予測をいきましょう。
エクスポートが完了するとワークスペース内にfittedmodelと呼ばれる先程作成した曲線のモデルがあるはずです。
ここで問題です。今作った曲線モデルから下記のように元々のデータにはないX=50.5の時のYの値を予測したい場合どうしたら良いでしょうか?
答えは実にシンプルです。コマンドウィンドウにfittedmodel(xの値)を入力するだけです。今回の場合は50.5の時が知りたいので、fittedmodel(50.5)とコマンドウインドウに打ち込めば良いです。
そしてこちらが答えです。
このようにしてデータの予測をすることもできます。
今回の記事では触れていない部分をさらに深くわかりやすく解説した動画が公開されています。MATLABで学ぶプログラミング超入門シリーズをぜひチェックしてください。こちらの超入門シリーズはプログラミング未経験者や初心者を対象に作成しています。これからプログラミングを学ぼうと思っている方はぜひこちらもご利用ください。
【シリーズ】
第一弾: For文
第二弾: 行列
第三弾: データ予測
今回のコンテンツをお仕事や勉学に活用してぜひ活躍していただきたいと思います。
それではまた次回!
Comments
To leave a comment, please click here to sign in to your MathWorks Account or create a new one.