Why not login to Qiita and try out its useful features?

We'll deliver articles that match you.

You can read useful information later.

1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

アルコールかどうかを判定するAIを作ってみた!

Last updated at Posted at 2020-06-07

目的

マテリアルズインフォマティクスの勉強をしたいと思います。
今回は、有機化合物をベクトルに変換するツールであるRDKitを使って、データとして与えられた有機化合物がアルコールかどうかを判定するAIを作っていこうと思います。

動作環境

Python: 3.6.5
scikit-learn: 0.20.3
rdkit: 2019.03.1.0

* 動作環境については、Anacondaをインストールして、仮想環境を作成して構築してます。
Anacondaのインストールは、以前書いたこちらを参照していただけると幸いです。
また、RDKitのインストールはこちらを参照して下さい。

ソースコード

# 必要なライブラリーを読み出し
from rdkit import Chem
from rdkit.Chem import AllChem
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.externals import joblib
import numpy as np

# データを準備する。
# 今回は、アルコールかどうかを判定するためにアルコール(=1)とそれ以外(=0)を判定します。
# 化学式は、SMILES記法で表現します。
smiles = ['CO', 'C(=O)O', 'CCO', 'C=O', 'CCCO', 'CCC', 'C(C)CO', 'C(=O)', 'CC(=O)', 'CC(=O)', 'C', 'CC(=O)C', 'CCCCO', 'C(C)CO']
ans = [1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1]

# 化学式をベクトル変換します。
mols = [Chem.MolFromSmiles(smile) for smile in smiles]
finger_print = [AllChem.GetMorganFingerprintAsBitVect(mol, 2, 1024) for mol in mols]

# データを学習データとテストデータに分割
X = np.array(finger_print)
y = ans
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)

# 機械学習アルゴリズムのランダムフォレストでモデルの作成
forest = RandomForestClassifier()
forest.fit(X_train, y_train)

# モデルの精度を確認
forest.score(X_train, y_train)
forest.score(X_test, y_test)

流れとしては、以下の通りになります。
1.データの準備
2.RDKitを用いて、データをベクトル化
3.SKLearnの関数を用いてデータを分割
4.SKLearnのアルゴリズムクラスを用いてモデルの作成
5.作成したモデルの精度のチェック

GitHubのこちらにjupyternotebookのファイルをUPしています。

参照文献

RDKit公式ページ

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up

Comments

No comments

Let's comment your feelings that are more than good

1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Login to continue?

Login or Sign up with social account

Login or Sign up with your email address