クラス分類で0,1の間を予測したいときは各クラスの確率を計算しよう!

分子設計・材料設計・プロセス設計・プロセス管理において、分子記述子・実験条件・合成条件・製造条件・評価条件・プロセス条件・プロセス変数などの特徴量 x と分子・材料の物性・活性・特性や製品の品質などの目的変数 y との間で数理モデル y = f(x) を構築し、構築したモデルに x の値を入力して y の値を予測したり、y が目標値となる x の値を設計したりします。

クラス分類モデルにおいて、x の値をモデルに入力した時の基本的な出力結果は、どのクラスに属するか、です。0/1のクラス分類においては、0 もしくは 1 が出力されます。一方で、例えばクラス 0 と予測された時に、その結果の確からしさとして、明らかにクラス 0 なのか、それともクラス 1 に近いのかを検討したいこともあります。その時は、クラス分類の結果を各クラスの確率で計算すると良いでしょう。

例えば、scikit-learn の predict_proba 関数を使用すれば、予測結果が確率で出力されます。この関数は大抵のクラス分類手法に備わっており、カテゴリが3つ以上の多クラス分類においても、各クラスの確率として出力できます。もちろん、確率なので全て足し合わせると1になります。この確率を使えば、クラス0と予測された時にクラス0の確率が1付近であれば、クラス0として確からしいと言えますし、0.5付近であればクラス1の可能性もあると考えられます。

一つ注意点として、この各クラスの確率は、内挿もしくはモデルの適用範囲内でしか有効ではなく、外挿もしくはモデルの適用範囲外には対応していません。x がモデルの適用範囲外の値を入力した時、0/1のクラス分類であれば、0 の確率は 0.5 になってほしいところですが、実際は 0 の確率が 1 もしくは 0 (1の確率が1) となります。これらの結果は信用できないため、注意が必要です。そのため、各クラスの確率を計算できるからと言っても、モデルの適用範囲は別途定める必要があります。

[無料公開] 「化学のためのPythonによるデータ解析・機械学習入門(改訂2版)」の“改訂版の発行にあたって”、詳細な目次、第8章の一部
2023 年 8 月 30 日に、金子弘昌著の「化学のためのPythonによるデータ解析・機械学習入門(改訂2版)」が出版されました。オーム社: Amazon: こちらは、以前に出版した書籍 「化学のための Pythonによるデータ解析・機...

 

各クラスの確率も有効に活用することで、クラス分類の詳細な結果を検討すると良いでしょう。

 

以上です。

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

タイトルとURLをコピーしました