ネガティブデータ(もしくはポジティブデータ)が全く無いときのクラス分類モデルの構築

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

例えば、ポジティブデータ(1)とネガティブデータ(−1)を用いてクラス分類モデルを構築する時、基本的にポジティブデータのサンプルもネガティブデータのサンプルも存在します。もちろんサンプルの割合が1:1とは限らないため、比率が大きく異なる時にはうまく調整して対処します。

新規除草剤および新規殺虫剤のシード化合物を機械学習で分子設計し、実験で検証しました![北興化学工業&金子研の共同研究論文]
北興化学工業と金子研における共同研究の成果の論文が ACS Omega に掲載されましたので、ご紹介します。タイトルはMolecular Design of Novel Herbicide and Insecticide Seed Comp...

 

一方で、ポジティブデータのサンプルもしくはネガティブデータのサンプルが全くない状況も存在します。例えば、活性のない化合物しか存在しないとか、薬物間相互作用をする化合物ペアしか存在しない場合です。普通に考えるとクラス分類モデルを構築できませんが、ポジティブデータもしくはネガティブデータを仮に設定してモデルを構築する方法があります。ここではネガティブデータが全くない状況を想定しますが、ネガティブデータをポジティブデータに置き換えれば、ポジティブデータが全くない状況でも対応可能です。

まず、ポジティブデータのサンプル以外の未ラベルのサンプル (ポジティブデータかネガティブデータか不明なサンプル) を不明サンプルとします。例えば、活性があるか不明な化合物や、薬物間相互作用するかどうかのデータがない化合物ペアなどです。これらのサンプルはポジティブデータでもネガティブデータでもある可能性があり、それを踏まえて活用してクラス分類モデルを構築します。

不明サンプルを活用する1つの方法は、ポジティブデータのサンプルが存在する領域を設定し、その領域以外に存在する不明サンプルをネガティブデータとみなす方法です。ポジティブデータでモデルの適用範囲を設定するイメージです。

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

 

例えば、ポジティブデータのみで one-class support vector machine モデルを構築し、サンプルを予測した時にサポートされない(−1と判断された)サンプルをネガティブデータと設定します。得られたネガティブデータと元々のポジティブデータの間でクラス分類モデルを構築します。

One-Class Support Vector Machine (OCSVM) で外れ値・外れサンプルを検出したりデータ密度を推定したりしよう!
今回は、One-Class Support Vector Machine (OCSVM) についてです。OCSVM は SVM を領域推定問題に応用した手法であり、外れ値・外れサンプルを検出できたり、データ密度を推定できたりします。データ密...

 

詳細についてこちら↓の論文が参考になるかと思います。

DDI-PULearn: a positive-unlabeled learning method for large-scale prediction of drug-drug interactions - BMC Bioinformatics
Background Drug-drug interactions (DDIs) are a major concern in patients’ medication. It’s unfeasible to identify all po...

 

 

不明サンプルを活用するもう1つの方法は、不明サンプルからランダムにサンプルを選択して (仮の) ネガティブデータと設定し、ポジティブデータのサンプルと共に用いてクラス分類モデルを構築することを、繰り返します。繰り返した数だけクラス分類モデルが構築され、予測したい新しいサンプルはすべてのモデルに入力され、ポジティブかネガティブかを判断します。ポジティブと判断されたモデルの数が多いほど、そのサンプルがポジティブである可能性が高いと考えられます。

詳細についてこちら↓の論文が参考になるかと思います。

A bagging SVM to learn from positive and unlabeled examples
We consider the problem of learning a binary classifier from a training set of positive and unlabeled examples, both in ...
Bagging-based positive-unlabeled learning algorithm with Bayesian hyperparameter optimization for three-dimensional mineral potential mapping
Mineralization is a rare event. Hence, the geosciences datasets used for three-dimensional (3D) mineral potential mappin...

 

不明サンプルを活用するどちらの方法も、ネガティブデータとしたサンプルが必ずしも真のネガティブデータではないため、予測結果については別途検証が必要ですが、ネガティブデータが存在しないような状況で、ポジティブの可能性が高いサンプルを抽出する上で有効な手法です。ポジティブデータしかない、もしくはネガティブデータしかないといった状況では、ぜひ検討すると良いでしょう。

ちなみに、ネガティブデータのサンプルが全く存在しないわけではなく、少数だけ存在する場合は、上記の方法でネガティブデータと設定したサンプルに真のネガティブデータのサンプルも追加してモデルを構築したり、構築されたクラス分類モデルの評価に真のネガティブデータのサンプルを用いたりすると良いでしょう。もちろん、アンダーサンプリングやオーバーサンプリングなどを活用して、真のネガティブデータとポジティブデータのみでモデルを構築することも考えられます。比較検討して、最終的に使用するモデルを決定すると良いでしょう。

 

以上です。

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

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