半教師あり学習するときはサンプル選択しましょう![金子研論文][Pythonコードあり]

半教師あり学習 (半教師付き学習) に関する、金子研学生との共著論文が Chemometrics and Intelligent Laboratory Systems に掲載されました。半教師あり学習のメリットはこちらに書いたとおりでして、

半教師あり学習 (半教師付き学習) の4つのメリット (回帰分析・クラス分類)
機械学習の手法、統計的・情報学的手法の中には、教師なし学習や教師あり学習があります。教師なし学習では、変数を使ってサンプル群を可視化(見える化)したり、クラスター解析(クラスタリング)したりします。教師あり学習では、物性・活性などの目的変数...

 

実際に確認もしています。

回帰分析における半教師あり学習 (半教師付き学習) のメリットを確認しました!
以前に、半教師あり学習 (半教師付き学習) における4つのメリットについて書きましたが、 その中で回帰分析におけるメリットを議論して、それをQSAR解析・QSPR 解析で確認した論文が、掲載されましたのでご紹介致します。 金子研オンラインサ...

 

特に、教師ありデータ (目的変数 y の値がそろったデータ) と教師なしデータ (y の値がないデータ) とを合わせてから主成分分析 (Principal Component Analysis, PCA) で成分 (潜在変数) を抽出し、教師ありデータにおいて PCA 後の成分と y との間で回帰モデルを構築する Python コードはこちらにあります。

GitHub - hkaneko1985/semi_supervised_learning: Semi-Supervised Learning considering Applicability Domain (AD)
Semi-Supervised Learning considering Applicability Domain (AD) - GitHub - hkaneko1985/semi_supervised_learning: Semi-Sup...

 

実はこれだけでは問題なこともありまして、、、教師なしデータのなかに外れたサンプルがあると、かえって回帰モデルの推定性能を低下させてしまう!!、のです。これまで基本的には、教師なしデータが与えられたとき、それらすべて (と教師ありデータ) を用いて、PCA を行っていました。でも、教師なしデータに外れサンプルがあると、PCA 後の主成分が外れサンプルを表現するためのものになり変な感じになってしまいます。

なので、外れサンプルは事前に検出しておくとよいです。ただ、教師なしデータなので、こちらの手法

回帰分析のときに外れサンプルを検出する手法を開発しました [金子研論文]
応化先生と生田さんが論文 “Automatic outlier sample detection based on regression analysis and repeated ensemble learning” について話しています...
回帰分析のときにアンサンブル学習で自動的かつロバストに外れサンプルを見つける Python プログラムを公開します
今回は外れサンプルを検出するお話です。外れ値ではなく外れサンプルです。外れ値は、他の値と (大きく) 離れた値のことであり、外れ値がデータ解析のときに悪影響を及ぼすことがあります。ただ、回帰分析のときには、大事なのは説明変数 X と目的変数...

 

では、外れサンプルを検出できません。

与えられた教師なしデータの中から、PCA に用いるサンプルを選択するにはどうしたらよいか。今回の論文では、モデルの適用範囲 (Applicability Domain, AD)

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

 

に着目しました。

教師ありデータで AD を決めて、AD 内の教師なしデータのみ、PCA に用いるようにしました。サンプルコードはこちらにあります。

GitHub - hkaneko1985/semi_supervised_learning: Semi-Supervised Learning considering Applicability Domain (AD)
Semi-Supervised Learning considering Applicability Domain (AD) - GitHub - hkaneko1985/semi_supervised_learning: Semi-Sup...

 

[NEW] DCEKit で便利に半教師あり学習や AD によるサンプル選択を利用可能です。scikit-learn に準拠したモデルになっていますので、cross_val_predict, GridSeachCV なども利用可能です。デモンストレーションもあります。

DCEKit (Data Chemical Engineering toolKit) を PyPI にリリース!
これまで化学データ・化学工学データのデータ解析に役立つツールや金子研で開発された手法に関する Python コードを Github にて公開してきました。このたびは、これらのツール・手法 (の一部) に加えて、新たな機能を追加して、DCEK...

 

論文では、QSPR, QSAR 解析を通して、今回の手法で回帰モデルの推定性能が向上することを確認しています。

実は論文においては、もう一歩ふみこんだサンプル選択をしています。キーワードとしてはベイズ最適化です。

ベイズ最適化(Bayesian Optimization, BO)~実験計画法で使ったり、ハイパーパラメータを最適化したり~
ガウス過程による回帰をうまく使って、実験計画法における新しい実験候補を探索したり、回帰モデルやクラス分類モデルのハイパーパラメータ (学習では求まらないため事前に決めるべきパラメータ) を決定する方法が、ベイズ最適化 (Bayesian O...
目的変数が複数のときに実験計画法のベイズ最適化(Bayesian Optimization, BO)が対応!
実験計画法やベイズ最適化 (Bayesian Optimization, BO) についてはこちらに書いたとおりです。Python コードもあります。 今回は実験計画法の BO について目的変数が複数のときに対応しましたので報告します。プロ...

 

回帰モデルを分子設計や材料設計に用いるときには、目的変数の値の目標値、もしくは目標範囲があります。目的変数の値が大きいような、もしくは小さいような、分子を設計したい、材料の実験条件・製造条件を設計したい、といった感じです。

なので、回帰モデルの推定性能を向上させることが目的なのはもちろんですが、目的をしぼると、目標範囲における回帰モデルの推定性能を向上させたい!!、になるわけです。そこで、ガウス過程による回帰

ガウス過程回帰(Gaussian Process Regression, GPR)~予測値だけでなく予測値のばらつきも計算できる!~
ガウス過程による回帰(Gaussian Process Regression, GPR)について、pdfとパワーポイントの資料を作成しました。データセットが与えられたときに、GPRで何ができるか、GPRをどのように計算するかが説明されていま...

 

により、教師なしデータのサンプルそれぞれが、目標範囲を満たす確率を計算し、その確率が高いサンプルのみ選択して、PCA に用います。論文では、QSPR, QSAR 解析で目的変数の目標範囲における回帰モデルの推定誤差が小さくなることを確認しています。

論文はこちらです。こちらからは、2019 年 8 月 21 日まで無料で読めます。

 

以上です。

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

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