LoginSignup
1

More than 1 year has passed since last update.

posted at

updated at

【気軽に実現!】FileMakerでIoT|取得したデータを機械学習に利用する方法

この記事でわかること

  • 最強ローコード開発ツール「FileMaker」を使用したIoT・AIシステムの実現方法
  • CoreMLの使用方法
  • Pythonを利用した機械学習方法

対象

  • FileMakerを使用していて、Pythonも少しかじった。これから2つを融合して世界を変える方法を探究している人
  • FileMakerのCoreML利用に興味がある人

今回実装すること

  • 取得したデータからモデルを作成し、FileMakerで利用します。
    • IoT機器からのデータ取得についてはこちらをご参考ください。
    • 機械学習モデルの作成にはGoogle Colaboratoryを使用します。

image.png

環境

  • OS:Mac(IoTデータから機械学習モデルの作成まではWindowsでも可能です。DataAPIを使用すると、Pythonから予測を行い、FileMakerに書き込むことができます。)
  • FileMakerバージョン:19

実装の流れ

  1. IoTでデータ収集
  2. 機械学習モデル作成
  3. Core MLに変換
  4. FileMakerでCoreMLモデルを使用

実装

1.IoTでデータ収集

【ローコードIoT】FileMakerで実現!快適快速IoTシステム!の記事で解説しました。
お手数ですがこちらを参照してご開発お願いします。

2.機械学習モデル作成

Google Colaboratoryを使用して機械学習モデルを作成します。

Google Colaboratoryを開いてください。

↑こちらにアクセスしてください

「ファイル」⇨「ノートブックを開く」とクリックしてください。

image.png

「GitHub」タブをクリックし「https://github.com/jackasser/FileMaker-coreML/blob/main/lenier_regression.ipynb 」を入力し、虫眼鏡マークをクリックしてください。

image.png

「ドライブにコピー」をクリックしてください。

image.png

Google Colaboratoryについて

https://qiita.com/beehibiki/items/3ae6ea5e5a011ebcd0b7
こちらの記事などをご参照ください。

Pythonについて

↑こちらのコースなどをご参照してください。

一番上のセルから順に「Shift」キーと「Enter」キーを同時押しして実行してください。

ここでは今回の実装に必要なライブラリのインストールを行います。
image.png
下記のように表示された場合は「RESTART RUNTIME」をクリックし再度一番上のセルから実行してください。
image.png

今回学習に使用するデータをGoogle Colaboratoryへダウンロードします。

image.png

今回使用するライブラリをインポートします。

FileMakerでいうとカスタム関数をインポートして使用できる状態にするイメージです。
image.png

ダウンロードした情報をpandasのDataFrameに読み込みます。

FileMakerでいうとCSVデータをインポートするイメージです。
image.png

データ内容の確認やデータの統計基礎情報を確認します。

今回のモデルは、「気温」、「湿度」、「土中湿度」より人間が0から3で記録した植物の「元気」を予測するモデルの作成を行います。
湿度のminが-87.000000、maxが153.000000 とおかしな値が入ってしまっていることがわかります。
image.png

データの可視化を行うと湿度(青)に外れ値(異常な値)が含まれていることがわかります。

image.png

湿度の外れ値を除外します。

image.png

外れ値を除外した後のデータの統計基礎情報とデータの可視化します。

外れ値が除去されたことがわかります。
image.png

機械学習モデルを学習させるためにデータの型を変換します。

image.png

線形回帰モデルで学習を行います。

学習後に「clf.coef_」と実行すると回帰係数を確認することもできます。
image.png

学習したモデルを使用して植物の元気を予測してみます

image.png

テストデータを予測します。

X_testに入っている気温、湿度、土中湿度のデータを使用して元気の予測を行った結果がy_predに格納されました。
image.png

精度を求めます。

今回はaccuracyを使用して精度を求めます。
image.png

3.Core MLに変換

作成した機械学習モデルをCoreMLに変換します。

ここで設定した["temp","humid","modhumid"]は後ほどFileMakerでこのモデルを使用する時に利用するので覚えておいてください。
image.png

完成したCoreMLのモデルをダウンロードします。

ダイアログが表示されるのでわかりやすい場所に保存してください。
image.png

4.FileMakerでCoreMLモデルを使用

こちらから今回利用するファイルをダウンロードしてください。

まずは予測してみましょう!

「モデル」に上でダウンロードしたCoreMLのファイルを挿入してください。
image.png

気温、湿度、土中湿度に値を入力し、「予測」ボタンをクリックしてください。

image.png

予測元気に予測結果が表示されました。

image.png

FileMakerファイルの解説

データベース管理

テーブルは「g_機械学習モデル」テーブルのみ、フィールドはグローバルフィールドの「g_モデル」、「g_気温」、「g_湿度」、「g_土中湿度」、「g_予測元気」となっています。
image.png
image.png

スクリプト

「予測」という1スクリプトを「予測」ボタンクリック時に呼び出しています。

モデルの読み込み

数値予測のため処理を「一般」に設定し、名前は好きな名前を設定します。
image.png

予測

上で読み込んだ機械学習モデルを利用して予測を行います。
上で設定したモデル名("genki_predict")を使用して予測を行います。
Google Colaboratoryで設定した変数名をここで使用して入力データを設定します。

ComputeModel ( "genki_predict";//モデル名
 "temp" ;g_機械学習モデル::g_気温;
"humid";g_機械学習モデル::g_湿度;
"modhumid";g_機械学習モデル::g_土中湿度)

image.png

モデルのメモリ解放

CoreMLモデルを使用する際はアンロードしない限りメモリ上に残ってしまうので必ずアンロードしましょう。
image.png

まとめ

以上でIoTで取得したデータから機械学習モデルを作成し、FileMakerで使用する方法を解説しました。
機械学習モデルについては様々なものがあるのでいろんなモデルやパラメータ調整を試すと精度が向上します。
気になる方はkaggleをご覧ください。(https://www.kaggle.com/)

FileMakerを使用したIoTや機械学習についてのご相談は弊社HPよりお待ちしております。(https://tsumugiya-it.com/

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
1