見出し画像

【W7】活性予測のための機械学習モデル_11_Step3_05_(ハイパー)パラメ(ー)タ(ー)

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

機械学習のスタンダード手法とも思えるランダムフォレスト(RF)を勉強しております。

【スタンダードな手法とはいいつつも】

RFでの予測は、深層学習での化合物プロファイル予測研究でもベースラインというか、従来手法との比較対象として用いられたりします。皆さん機械学習検討の最初にRFでの予測はやってみるのではと思います。今もなおスタンダードな手法の一つと思います。

船津研究室の「ケモインフォマティクスのオンライン入門書。」より

Random Forestの特徴
さまざまな機械学習手法の中で、Random Forestの利点は
・調整すべきパラメータがほとんどない
・変数選択の必要がない
といった点です。 分類と回帰のどちらにも使えます。 弱点としては、データ数が少ない場合に過学習になりやすい傾向があります。

とありました。KNIMEでの実装例をいくつか見てもパラメータ(あるいはハイパーパラメータなどとも言われます)は

n_estimators: 決定木の数 (100~数百をよく見かけます)

Tree_depth(max_depth): ツリーの深さ (3~10くらいを見たことがあります)

の2種だけを変えるぐらいの例が多いと思います。

下記の記事を参考にしてもう少し書きますと、

ランダムフォレストで調整すべきパラメータは、以下の3つです。

n_estimaters:
決定木の数を表します。
要するにこれはバギングで使うブートストラップサンプルの個数に該当します。
多ければ多いほど良いですが、計算コストが高くなるので注意。
ある一定値を超えると分類器としての性能は収束していく。
十分な性能を得るには数百〜数千となることが多い。
デフォルトは少なめの『100』。

前々回に紹介した通りです。

max_features:
ランダムに指定する特徴量の数を表します。
デフォルトは特徴量の数(データの次元)の二乗根。
場合によっては変更すると良いこともあるが、あまり調整する数値ではない。

前回取り上げたRandom Forest Learnerノードの日本語化されたディスクリプションでは、

決定木の個々の分割の属性セットは、利用可能な属性からsqrt(m)個の属性を無作為に選択することで決定されます(mは学習カラムの総数)。

とあるので、このノード単独では固定で変更できなさそうです。

max_depth:
決定木のノード深さの制限値を表します。
デフォルトは『制限なし』で、教師データが一つ残らずクラス分けされるまで空間を分割します。ここもあまり調整する必要はなく、制限を与えずとも十分に大きく決定木の数を取れば良好な性能を達成することが多い。
逆に決定木の数をあまり大きくできない場合、深さに制限を与えることで性能が向上する場合があります。

前々回で最深で20は深いのではと書きました。
学習に用いるデータ数やその内容で違うようなので、チューニングを行うことが多いそうです。t-kahiさんの下記記事は必見です。

Accuracyを指標に、予測精度が上げどまった深さでなるべく小さい値の「3」を採用した理由は

あまり"Tree Depth"が大きすぎても過学習になり汎化性が落ちるかもしれない

からということです。

【過学習の学習】

過学習と汎化性については優れた記事がネットにいっぱいあるのですが金子先生の記事を紹介いたします。

平易に説明して下さってます。初心者に優しい!

RFは比較的過学習しにくいし、汎化性が高いから初心者から使いやすく各種機械学習の研究で比較対象に置かれるのではと思います。

人間も過学習しちゃうんじゃないと言う記事が読み物として面白かったので紹介して今回はここまでとします。蛇足かも。

次回から、ニューラルネットワークなんですよね。初心者向きかなぁ…。


おまけ:

【ビジネスでランダムフォレストを検討した例】

初心者にも手軽に試せるRFと紹介してきましたが、玄人さんが扱うとまた違って見えました。

デフォルトの設定のままでもある程度高い精度を出すことが可能ですが、ビジネスにと考えるとチューニングは必要です。

ケモインフォマティクスからは外れますが、ゲーム内で発生する不正行為の対策にRFを検討した例が面白かったので紹介します。

ランダムフォレストを採用した理由は, 1.いくつかのアルゴリズムを試した結果もっとも良い精度が出た, 2.分析が目的のためFeature Importanceも調査したい, 3.決定木をベースとしているため判断基準がある程度明確である, の3つです. 今回の調査はデータセットの分析も兼ねており, これらの理由によりランダムフォレストを採用しました.

RF選定の理由以外にも問題設定やハイパーパラメーターのチューニングも興味深い記事でしたが、この精度が出せる秘訣はむしろ特徴量の選定にあるのではと思いました。

あと、さらに余談ですが

パラメーターチューニングについて解説していきます.まずは以下のパラメーター(ハイパーパラメーター)を独立に調査し, 最適な値を調べていきましょう.

とコメントされており、ハイパーパラメーターとパラメーターは厳密には使い分けなくっていいんだと思ったことも書き添えておきます。

あと、パラメターとか、パラメータとかいわゆるSynonymが多いんですよね。

最後に、こんなにもRFにパラメーターが存在すると知って驚いた記事もリンクだけ引用しておきます。

もう機械学習研究という富士より高い山麓の樹海で遭難しそうです。

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