見出し画像

【W7】活性予測のための機械学習モデル_06_Step2.5_特徴量選択

【W7の目的】

ターゲット分子(EGFR)に対して新規な化合物の活性を予測するために、様々な教師あり機械学習(supervised ML)アルゴリズムを使用する方法について学習します。

【説明変数の精査】

Ligand-based screening: machine learningメタノード

画像1

Step1で今回の問題を決めました。そして4511化合物をEGFR阻害活性pIC50 = 6.3を基準として2群に分類しました。Step2ではデータの前処理を行いました。

今回はW7には記載がないが、機械学習での予測モデルの実装ではとても重要で、時にはほぼこの部分の検討が研究内容になる方もいる工程について紹介したいです。
最初にお断りしておきますが、私は完全に炬燵水練、経験ゼロで記事を書いています。


【ケモインフォマティクスの担い手は?】

機械学習では目的変数を予測するために説明変数を用いて相関を解析します。
説明変数に何を選ぶかで予測精度が大きく影響を受けますよね。

データ分析は、データサイエンスの専門家だけの仕事ではありません。現場の業務がよく分かっている人こそ、手掛けるべき仕事なのです。

先日書籍を紹介した日立産業制御ソリューションズの太田さんが、わかりやすく機械学習入門の記事を公開してくださっています。

今回の話題に関連するのは第3回と第4回です。
第3回では前回紹介した「Statistics」ノードを活用してデータの内訳をみて、異常値(外れ値)や欠損値(空白値)を見つけています。

第4回では

適切なデータを選び、整える

作業例を紹介しています。

データ分析で成果を出すには、分析の目的に合った説明変数を用いる必要があります。そこで重要になるのが、業務知識です。業務知識を基に無関係な項目を明確にして、そのデータを説明変数から除外することが必要です。
データを選択する上では、どのデータを説明変数にするかだけでなく、選んだデータの中に不要なレコードがないかも確認します。その際も、業務の知識が求められます。

とのこと。ケモインフォマティクスを創薬化学者が実践する意義もここにあるのではないでしょうか?

一例として、前回おまけでお話ししましたが、セレンが含まれる化合物はMACCSキーNo.3が「1」でした。
SARを推察するに活性発現にセレンのあるなしが直接関係するでしょうか?
すなわち、このカラムは説明変数として有用でしょうか?あるいはデモデータにおいてセレンが含まれる6化合物は学習データに入れていいですか?
こういったことを工夫したい場合は創薬研究の経験が必要になると思います。

【次元削減のKNIME実装例】

私見ですが、MACCSは166(+ ダミーデータ1)のみのカラム数なので、TeachOpenCADDではわざわざ各カラムの解析や前処理はしない方針を取ったと推察しています。

一般に化合物プロファイルを予測する場合は、フィンガープリントだけでなく、記述子も組み合わせてより多くの情報をもとに予測する手法もあると思います。
業務知識を用いて適切なデータを選び、整えるのは重要とはいっても、Finger Printの全ビット、あるいは数百行を超える各種記述子を全て人間が一つずつ目で見て精査するのはあまりにつらい。そこで説明変数を適切に選択できるよう、様々なデータ前処理技術があります。

特徴量選択とか次元削減と言われているようです。

ここでt-kahiさんのブログをご紹介します。

Seven Techniques for Data Dimensionality ReductionでKNIMEを用いた次元削減の勉強をしました.

とのことで、KNIMEでの実装例での解説は本当にありがたいです。全文引用したいぐらいですがさすがに自重します。皆様ぜひご一読ください。
t-kahiさんの機械学習関連のブログは次回以降も何度も紹介することになると思います。創薬研究領域での圧倒的KNIMEエバンジェリストとして尊敬しております。

さて、上記のSeven Techniques for Data Dimensionality Reductionは昨年バージョンアップされました。

We compare these statistics with the performance of the baseline algorithm that uses all columns for classification.

と各手法の効果比較まで試みてくださっています。

Head of Data Science Evangelism at KNIMEのRosaria Silipoさんらのお仕事です。緻密な検討、そして丁寧な記事。RosariaさんたちのKNIMEエバンジェリストとしての数々の業績はKNIMEユーザにとって歴史的なものだと思います。詳細は理解できていないですが10手法のタイトルを以下に引用します。

Missing Values Ratio
Low Variance Filter
High Correlation Filter
Random Forests/Ensemble Trees
Principal Component Analysis (PCA)
Backward Feature Elimination
Forward Feature Construction
Linear discriminant analysis (LDA)
Neural autoencoder
t-distributed stochastic neighbor embedding (t-SNE)

全てKNIMEで実装されています。初心者だけでなく玄人さんでもかなりのことができるのではないでしょうか?

【よりよい説明変数を求めて】

実際には全部やるのではなくて、解くべき問題と入手したデータを勘案して前処理を工夫するようで、例えば下記のような記事がありました。

データ分析の品質はデータの前処理によってほぼ決まってしまいます。
前処理なしでデータ分析をするのは、料理に例えると下ごしらえを省いていきなり調理を始めるようなイメージです。

特徴量選択を行うことによりいくつかのメリットが得られます。

変数を少なくすることで解釈性を上げる
計算コストを下げて、学習時間を短縮する
過適合を避けて汎用性を向上させる
高次元データによって、パフォーマンスが下がることを防ぐ。

特徴量選択の手法は大別して3つ存在します。

Filter Method
Wrapper Method
Emedded Method

上述の10手法も大きく分ければ上記の3種のようです。

さらに発展的には特徴量を新規に開発する方もいるようですね。

生のデータを、 統計学 や 機械学習 で成果を出せるデータに変換する技術は、「特徴量エンジニアリング(Feature Engineering)」と呼ばれています。

玄人となると特徴量エンジニアリングこそ腕の見せ所なのではと思います。

まだ限界なんて認めちゃいないさ
終わりなき旅

さて、引用だけで今回の記事は終わりです。寄り道が過ぎました。
次こそはStep3で機械学習の学習をします。



記事を読んでいただきありがとうございます。 先人の智慧をお借りしつつ、みなさんに役立つ情報が届けられたらと願っています。 もしサポートいただけるなら、そのお金はKNIMEの無料勉強会の開催資金に充てようと思います。