機械学習を実験データベースで効率化
モーターデータの例
実験データと機械学習の概要
モータのデータと汎用実験データベースBRIX LITEを用いてデータサイエンスを体験します。様々なアルゴリズムを用いて、電気モータの永久磁石温度Permanent magnet temperature(pm)を予測します。
実験データベースが機械学習でどのように使えるかをイメージできると思います。
線形回帰、k線形回帰(Linear Regression)、k近傍法(K-Nearest Neighbor)、XGBoost(eXtreme Gradient Boosting)の3つの回帰アルゴリズムを用いて、それぞれの精度を比較しています。
使用したデータは、永久磁石同期モータ(PMSM)の実験で計測されたデータがまとめられています。永久磁石同期モータ(PMSM)は、電気自動車、風力発電機、産業機械など様々な用途で使用されている一般的な電気モータの一種です。データとして、異なる駆動サイクル下での電圧、電流、モータ速度、トルクなど、モータの挙動を示す複数の計測値が含まれています。
今回は、下記の流れを実施しています。データベースを活用することで、手順1でデータを素早く集めることが出来ます。
手順0.複数の実験担当者が実験結果をデータベースに格納する
手順1.データベースで検索して、複数回のモーターの実験データを集める
手順2.APIを使用し、データベースとpythonを接続し、pythonにデータを読み込ませる
手順3.機械学習用のデータセットを作成し、トレーニングデータとテストデータに分ける
手順4.各アルゴリズムでモデルのトレーニングやハイパーパラメータの最適化を実施
手順5.モデルの予測精度を決定係数(R²)、二乗平均平方根誤差(RMSE) 、MAE、RMSE、k-分割交差検証(k-fold cross validation)により評価する
手順0.複数の実験担当者が実験結果をデータベースに格納する
実験で取得したデータをデータベースに格納します。格納したデータは、図のようにグラフ表示で可視化することができます。
手順1.データベースで検索して、複数回のモーターの実験データを集める
データベースでデータを検索します。今回は、モーターのある試作機のデータを集めると想定し、「Motor」、「prototype」というキーワードでデータを検索しています。このように絞り込みすることで、たとえ実験が様々な担当者で実施されていても、リストで一覧表示することができ、速やかに対象のデータを集めることができます。
集めたデータは、データセットカートに保存されます。機会学習の精度に最も影響を与えるのは、学習に使用したデータです。
どのようなデータでモデルを作ったかを、後になっても調べることができるというのは、大きなメリットです。
データベース無しで複数人、複数回の実験データを集める際の苦労
良くある話では、右図のように、実験毎に担当者が異なり、それぞれの担当者のPCにデータが保存されているのをメールで集めなければならず、
データを集めてpythonに読み込ませるのに苦労するといったことをよくお聞きします。このような課題は、データベースでの検索+APIによるpythonでのデータ読みこみで解決します。
手順2.APIを使用し、データベースとpythonを接続し、pythonにデータを読み込ませる
APIを使って、データを読みこみます。簡単なAPIなので、pythonを最近始めた方など、初心者でも使えるレベルになっています。サンプルコードを用意していますので、それをコピーして使うことで自然と習得できます。
データは、JSON形式で出力されます。
手順3.機械学習用のデータセットを作成し、トレーニングデータとテストデータに分ける
JSONで取得したデータをpandas dataframeの形にし、機械学習用のデータセットとします。探索的データ解析(EDA)を実施した後に、データをトレーニングとテストデータに分けます。
作成する機械学習のモデルに再現性やどうやって作成したかのトレーサビリティを求める場合は、分けたデータをAPIでデータベースに格納することも出来ます。BRIXには、データの読み込みだけでなく、書き込みのAPIもあります。
手順4.各アルゴリズムのトレーニングやハイパーパラメータの最適化を実施
各アルゴリズムでモデルのトレーニングやハイパーパラメータの最適化を実施します。
右図では、k近傍法で、kを1~30まで変化させて、モデルの精度を確認し、最も精度が良いk値を選択しています。
必要であれば、このようなハイパーパラメータの最適化の過程で出てきたデータなども、APIでデータベースに格納することも出来ます。
手順5.モデルの予測精度を決定係数(R²)、二乗平均平方根誤差(RMSE) 、MAE、RMSE、k-分割交差検証(k-fold cross validation)により評価する
各モデルの精度を比較します。必要であれば、各モデルの精度や、比較結果をAPIでデータベースに書き込むことができます。
機械学習で使用したトレーニングデータ、テストデータ、ハイパーパラメータの最適化データなどをデータベースに保存することで、
モデルの精度向上のための分析などに役立つかもしれません。
BRIX LITE データサイエンス向け実験データベース
今回使用した製品は、実験データベース BRIX LITEです。ご興味がある方は、カタログや無償評価版をお申し込みください。
また、無償評価版では、今回のコードもサンプルコードとして提供しています。