技術資料

目次 

研究背景 

1. 事前知識 

修論で用いた機械学習・特徴量エンジニアリング手法についての説明

多クラス分類について 

評価指標 

Random Forests (RF)について 

以下のページ参照

機械学習と特徴選択

RFを選んだ理由 

説明可能な機械学習モデルを用いたため

交差検証について 

以下のページ参照

データ分割と交差検証

特徴選択について 

以下参照

修論で用いたのはWrapper MethodのStep Forward法

Wrapper Method(ラッパー法)の適用について 

Step Forwardは1つずつ追加,Step Backwardは1つずつ削減,Exhaustive Searchは全パターンの探索

オーバーサンプリングについて 

不均衡データへの対策

SMOTE 


2.1 環境構築 

本プログラムはAnaconda上で実装する

Anacondaインストール 

以下のページからインストール https://www.anaconda.com/download#downloads

rdkitチャネル(仮想環境)の作成 

仮想環境の補足 

手順 

WindowsボタンからAnaconda Promptを開く

バージョン取得

python -V

rdkitチャネル作成

# 研究当時のバージョン
conda create -n rdkit python=3.8.8 -y

※baseチャネルからrdkitチャネルに変更(Anaconda Prompt)

conda activate rdkit

rdkitライブラリの導入(pipでは不可)

conda install rdkit -c conda-forge

jupyterカーネル導入

pip install jupyter environment_kernels

jupyter起動

jupyter notebook

Jupyterのプログラムを起動するとき 

anaconda promptを起動し,(base)の部分で以下を入力

(base) C:\Users\~~~>activate rdkit

base→rdkitに切り替わったら,Jupyter起動

(rdkit) C:\Users\~~~>jupyter notebook
jupyter_dir.jpg

ディレクトリを辿って「master_ECprediction」まで行き,「~.ipynb」を起動する

2.2 プログラム実行時の補足 

実行するプログラムファイル 

以下2ファイルで構成される

プログラムの取り扱い説明 


リスタートポイントについて 

途中からプログラムを実行できるようにあらかじめ保存したファイルを読み込み再開できる仕組み

3. モデル構築用データセット作成(ECprediction_dataset.ipynb) 

3.1 プログラム順次実行 

モジュールインストール 

pip install rdkit

元データセットを1つの化合物SMILESに分解 

特性値計算不可の化合物SMILES削除 

SMILES形式の化合物から210種の特性値を計算する際,発散値を持つ化合物が存在するため,そのような化合物を除去

リスタートポイント1から5の前までのセル

整理された左辺と右辺のSMILES反応式データフレームが出力される(left_smsDF5, right_smsDF5)

210次元特徴ベクトルの作成 

リスタートポイント5から最後までのセル


4. EC番号分類モデルの作成,テストデータの分類 (ECprediction_model.ipynb) 


4.1. モジュールインストール(多クラス分類,SMOTE用) 

pip install scikit-learn==1.0.2
pip install imblearn

4.2. データ削減1 

「データ削減」セル1,2

SPS記述子の除去 


相関係数1の記述子・データの片方削除(下図参照) 

duplicated_data.jpg

np.float32の最小・最大値を超える要素を持つ特徴ベクトルの削除 

全ての特性値で0のデータを削除 

dropped_all0.jpg


4.3. データ削減2 

「データ削減」セル最後

データ数が5個以下のものを削除する 


EC番号が3桁目まで存在するクラスのみ抽出 

削除するデータ 

【懸念事項】ラベル変更によるクラス分布の変動(交差検証) 

4桁までのクラスで層化抽出したデータを1桁or1~3桁に変更した場合,各クラスの学習データとテストデータの割合は一定かどうか(層化抽出が崩れていないか)

4.4. 予備実験2 

学習データ(Xtrain)・テストデータ(Xtest)の分割 

この研究では,データのラベル付与が重要となる

記述子選択を分けて行う理由 

本来ならラベルの貼り替えなしで,3,4桁のラベルが付いた状態で,1~3桁目 or 1~4桁目のクラス分類(記述子選択)を行う方が効率的

EC X (1桁目)クラス分類 

SMOTEなしで記述子選択を行う

XtrainX_dist.jpg

*1 D. Probst, "An explainability framework for deep learning on chemical reactions exemplified by enzyme-catalysed reaction classification", Journal of Cheminformatics, Vol. 15, No. 1, pp. 113, 2023
*2 N. Watanabe, et al, "EnzymeNet: residual neural networks model for Enzyme Commission number prediction", Bioinformatics Advances, Vol. 3, No. 1, 2023.

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS