見出し画像

【W7】活性予測のための機械学習モデル_07_Step3_01_機械学習アルゴリズム

【W7の目的】

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

W7の紹介を始めて1ヶ月半、データの前処理の勉強まで終えました。

いよいよ機械学習の体験になります。何を書こうかと考え、いやむしろ何も足すまいと思っております。ありがたいことに玄人というか専門家の方々が日本語でも豊富な情報提供をして下さってますので、私は何を読んで勉強したか記録します。

前回までを読んでいただけている方はmagattacaさんの記事は読み終えておられると思います。念のため抜粋して引用いたします。

機械学習をうまく適用するために必要となるものは、巨大な化合物データセット、化合物のエンコーディング、データセットの化合物ごとのラベル、そしてモデルを訓練するための機械学習アルゴリズムです。これらによって、新しい化合物の予測を行うことができます。

画像1

【機械学習の大分類】

(教師あり)分類:あるオブジェクト(object)がどのカテゴリーに属しているかを明らかにする(最近傍、ナイーブベイズ、ランダムフォレスト、サポートベクトルマシン、・・・)
回帰:オブジェクトに関連づけられた連続値の特徴量の予測
(教師なし)クラスタリング:類似のオブジェクトを各セットに自動的にグループ化

生成モデルなどもありますがおいといて、今回は教師あり分類を体験しています。

学習アルゴリズムは訓練データの中のパターンを見つけることでルールを作成します。

【今回あつかう機械学習アルゴリズム】

• ランダムフォレスト(Random Forest、RF):多数の決定木(decision tree)により平均化された予測を出します。

画像2

おすすめする関連記事としては金子先生とt-kahiさんのブログです。


・サポートベクトルマシン(Support Vector Machines (SVM)): SVMはカーネルトリックと呼ばれる入力を高次元の特徴空間に暗にマッピングする手法を使って、非線形の分類を効率的に実行することができます。オブジェクトの関数としてマージンを最大化するというアイデアに基づいた分類です。

TeachOpenCADDではSVMを驚くほどあっさりと紹介されてますが関連記事はこちら。イラストも引用させていただきます。

画像3


• 人工ニューラルネットワーク(Artificial neural networks、ANNs):ANNは生物学的な脳の神経をゆるくモデル化した人工神経(artificial neuron)と呼ばれる連結されたユニットあるいはノードの集まりに基づいています。生物学的な脳のシナプスの様に、各結合は一つの人工神経からもう一方へとシグナルを伝達することができます。シグナルを受け取った人工神経は、そのシグナルを処理し、結合する別の人工神経へとシグナルを送ります。(図はWikipediaより)

画像4

ニューラルネットワークも本気で解説したら底なしのためか、きわめて簡潔な概念紹介に留められてますね。
そこで私はインフォマジシャン研究所で藤さんに相談して、下記の動画を教えていただきました。後日改めて取り上げます。私のような数学に苦手意識がある人にもわかるよう工夫されているありがたい講義です。

他にもいろんな教材があるもので、マンガでの説明まであり感心しました。

金子先生の記事も動画を見た後のほうが分かった気がします。ごめんなさい見栄を張りましたよくわかりません。これで基礎なんですよね。

数学から学び直すしかなさそうで、学問に王道なしとはよく言ったものです。


【Infocom社の機械学習関連情報】

いろいろ紹介してきましたが、KNIMEでの機械学習実装についての教材としては下記の動画などがわかりやすいと思います。

さらには下記のサービスもありますよね。

以下の機械学習モデルが利用可能です。
  ・ Naive Bayes
  ・ Decision Tree
  ・ Logistic Regression
  ・ Generalized Linear Model
  ・ Random Forest
  ・ Gradient Boosted Trees
  ・ XGBoost
  ・ Neural Network
  ・ Deep Learning

とのことです。KNIMEでかなりの数のアルゴリズムを実装できることが分かります。

以上で機械学習概要の学習記録を終え、いよいよStep3の内容へ進みます。


おまけ:

magattacaさんのブログでかねてから印象に残っているのが

日付以外誤報

との表示です。

画像5

数々の見事な記事を書かれていてこの謙遜ぶりにおののきます。
私の場合は「引用部分以外誤報」とかにしようかな。

機械学習の勉強をしだすとあふれんばかりの情報提供をしてくださっている先達の皆さんに畏敬の念を覚えます。

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