機械学習を手軽に試したい方へ、プログラミング不要で実行できるアプリ「DCE tool」を作りました。ご自由にお使いください

シェアする

機械学習にチャレンジしてみたい、自分のもっているデータを使って機械学習してみたらどうなるか確認してみたい、という方はいらっしゃると思います。実際に機械学習をやってみて、よい結果が出ると、さらに機械学習をするモチベーションになるかもしれません。

ただ、とりあえず機械学習を試してみるといっても、

  • 使用するツールの使い方を調べる必要がある (けっこう複雑なツールだったりすることも・・・)
  • プログラミングにより機械学習を実行するときは、プログラミングを学ばないといけない

といった感じで、特にプログラミング未経験者やパソコンが苦手な方々にとって、ハードルは高めです。

また、ちょっと機械学習を試してみるにしても、間違って解析してしまって悪い結果が出たら、それで諦めてしまいもったいないです。逆に、よい結果が出ても、それが間違えによってよい結果になっていたとしたら、それに気付くまでの時間がもったいないです。たとえば、モデルの適用範囲 (Applicability Domain, AD) を考慮せずに、物凄い外挿を予測していて、その予測結果を真として信じてしまい、後に実測値が合わないことに気付く、といった感じです。

モデルの適用範囲・モデルの適用領域 (Applicability Domain, AD) ~回帰モデル・クラス分類モデルを使うとき必須となる概念~
今回は、モデルの適用範囲・モデルの適用領域 (Applicability Domain, AD) についてです。AD は回帰モデル・クラス分...

つまり、

簡単に、正しく機械学習を試してみる

ことが求められているわけです。

そこで今回は、機械学習の中でも回帰分析を対象にして、クリックだけで機械学習を試せるアプリ 「DCE tool」 を作りました。なお Windows 10 Pro でのみ動作確認をしており、特に macOS では使用できないと思います。ご注意ください。

なお、「DCE tool」には機能が追加されました。以下の説明を読んだ後に、こちらもご覧ください。

「DCE tool」に機能を追加しました!クロスバリデーション・カーネル関数・ベイズ最適化
「DCE tool」に機能を追加しましたので報告します! 追加した機能は、 クロスバリデーションの fold 数の選...
「DCE tool」に機能を追加しました!その2 逆解析のための予測用サンプルの生成・化学構造モード
「DCE tool」に機能を追加しましたので報告します! 追加した機能は、 逆解析のための予測用サンプルの生成 ...

搭載されている手法は、ガウス過程回帰 (Gaussian Process Regression, GPR) です。

ガウス過程による回帰(Gaussian Process Regression, GPR)~予測値だけでなく予測値のばらつきも計算できる!~
ガウス過程による回帰(Gaussian Process Regression, GPR)について、pdfとパワーポイントの資料を作成しました...

カーネル関数は以下のサイトの 2 番目のものです。

[デモのプログラムあり] ガウス過程による回帰(Gaussian Process Regression, GPR)におけるカーネル関数を11個の中から最適化する (scikit-learn)

この GPR により以下の 3 つのことができます。

  • 目的変数 Y と説明変数 X との間で回帰モデル Y = f(X) を構築する
  • クロスバリデーションによりそのモデルの推定性能を評価する
  • Y の値がわからないサンプルにおける X の値を回帰モデルに入力して、Y の値、およびその標準偏差を予測する

Y の予測値と一緒に、その標準偏差も出力されますので、予測値の信頼性、すなわち AD も考慮できるわけです。

それでは今回のアプリ DCE tool の説明をします。まず以下の URL から zip ファイルをダウンロードし、解凍してください。

https://datachemeng.com/wp-content/uploads/dcetool.zip

解凍しましたら、その dcetool フォルダの中で、dcetool.exe を探してください (ファイルの数が多くてすみません。。。)。下図のように見つかると思います (拡張子を表示しない設定ですと、「dcetool」 しか表示されないかもしれません)。

見つかりましたら、dcetool.exe (もしくは dcetool) をダブルクリックしてください。少し時間が経った後に、下のようなウィンドウが開くと思います。

同時に以下のような黒いウィンドウも開きますが、気にしなくて構いません (不具合が起きたときの原因探索に役立ちますが、問題ないときは特に使用しません)。

次に、「Modeling and prediction」 と書かれたボタンをクリックしてください。少し時間が経った後に、下の画面になると思います。

これで、このアプリでできるすべての解析が終了します。どんな解析をしているか、上の図の意味はなんなのか、説明します。

DCE tool ではまず、同じフォルダにある以下の 2 つのデータセットを読み込みます。

  1. training_data.csv : トレーニングデータ。このデータを用いて GPR モデルを構築します
  2. x_for_prediction.csv : 予測用のデータ。構築された GPR モデルに入力して、Y の値およびその標準偏差を予測します

今回は、サンプルデータセットとして、以下の図のような training_data.csv と x_for_prediction.csv があります。

training_data.csv

x_for_prediction.csv

training_data.csv は、一番左の列がサンプル名、次の列が Y、その次からが X です。一番上の行が変数名で、その下からが実際のデータセットです。x_for_prediction.csv は、一番左の列がサンプル名、次の列からが X です (Y はありません)。一番上の行が変数名で、その下からが実際のデータセットです。

training_data.csv で GPR モデルを構築し、同じ training_data.csv の Y の値を推定した結果が、上の実測値 (actural y) vs. 推定値 (estimated y) のプロットと、r^2(training), RMSE(training), MAE(training) です。r2, RMSE, MAE についてはこちらをご覧ください。

回帰モデル・クラス分類モデルを評価・比較するためのモデルの検証 (Model validation)
いろいろな回帰モデル・クラス分類モデルを構築したり、モデルの中のハイパーパラメータ (PLSの成分数など) を決めたりするとき、モデルを評価...

GPR モデルなので、この結果の推定誤差はほとんど 0 になると思います。では、新しいデータに対する予測精度はどれくらいか?、ということで、10-fold クロスバリデーションをします。クロスバリデーションについてはこちらをご覧ください。

回帰モデル・クラス分類モデルを評価・比較するためのモデルの検証 (Model validation)
いろいろな回帰モデル・クラス分類モデルを構築したり、モデルの中のハイパーパラメータ (PLSの成分数など) を決めたりするとき、モデルを評価...

クロスバリデーションによって Y の値を推定した結果が、下の実測値 (actural y) vs. 推定値 (estimated y in CV) のプロットと、r^2(cross-validation), RMSE(cross-validation), MAE(cross-validation) です。

その後、構築されたGPRモデルに x_for_prediction.csv の X の値を入力し、サンプルごとの Y の値およびその標準偏差を推定します。

モデル構築や予測の結果は、同じフォルダに results フォルダが作成され、そこに以下の 4 つの csv ファイルと、2 つの png ファイルして保存されます。

  1. statistics.csv : r^2(training), RMSE(training), MAE(training), r^2(cross-validation), RMSE(cross-validation), MAE(cross-validation) [ウィンドウに表示されている値と同じです]
  2. estimated_y_in_detail.csv : 上の実測値 (actural y) vs. 推定値 (estimated y) のプロットに対応する結果。サンプルごとに、実測値 (actual_y)、推定値 (estimated y), 推定誤差 (error_of_y(actual_y-estimated_y) が並んでいます
  3. estimated_y_in_cv_in_detail.csv : 下の実測値 (actural y) vs. 推定値 (estimated y in CV) のプロットに対応する、クロスバリデーションの結果。サンプルごとに、実測値 (actual_y)、推定値 (estimated y), 推定誤差 (error_of_y(actual_y-estimated_y) が並んでいます
  4. predicted_y_in_x_for_prediction.csv : x_for_prediction.csv に対する Y の予測結果。サンプルごとに、予測値(predicted y)、予測値の標準偏差(std of predicted y)が並んでいます

  1. yy_plot_in_training.png : 実測値 (actural y) vs. 推定値 (estimated y) のプロット [ウィンドウに表示される図と同じです]
  2. yy_plot_in_cross_validation.png : 実測値 (actural y) vs. クロスバリデーション推定値 (estimated y) のプロット [ウィンドウに表示される図と同じです]

予測値が望ましい値であり、かつ標準偏差が小さい (予測値が確からしい) サンプルが望ましいといえます。

なお終了するときは、「Quit」ボタンか右上の × ボタンをクリックしてください。

ご自身のデータセットを、training_data.csv, x_for_prediction.csv と同様の形式で整理していただければ、このアプリで解析することができます。Y の数は 1 つにする必要がありますが、X の数およびサンプル数はいくつでも構いません。ただし、training_data.csv の X の変数名と x_for_prediction.csv の X の変数名とは、まったく同じにしてください。

以上が本アプリの説明になります。ぜひご活用いただき、さらなるデータ解析・機械学習のためのモチベーションにつなげていただければと思います。

以上です。

質問やコメントなどありましたら、twitter, facebook, メールなどでご連絡いただけるとうれしいです。

シェアする

フォローする