Je souhaite étudier l'informatique des matériaux. Cette fois, j'utiliserai RDKit, un outil qui convertit les composés organiques en vecteurs, pour créer une IA qui détermine si le composé organique donné comme données est de l'alcool.
Python: 3.6.5 scikit-learn: 0.20.3 rdkit: 2019.03.1.0
#Lire la bibliothèque requise
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
#Préparez les données.
#Cette fois, de l'alcool pour déterminer si c'est de l'alcool(=1)Et d'autres(=0)Juger.
#Les formules chimiques sont exprimées en notation 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]
#Le vecteur transforme la formule chimique.
mols = [Chem.MolFromSmiles(smile) for smile in smiles]
finger_print = [AllChem.GetMorganFingerprintAsBitVect(mol, 2, 1024) for mol in mols]
#Divisez les données en données d'entraînement et données de test
X = np.array(finger_print)
y = ans
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
#Modélisation dans une forêt aléatoire d'algorithmes d'apprentissage automatique
forest = RandomForestClassifier()
forest.fit(X_train, y_train)
#Vérifiez la précision du modèle
forest.score(X_train, y_train)
forest.score(X_test, y_test)
Le flux est le suivant.
Le fichier du notebook jupyter a été téléchargé sur ici sur GitHub.
Recommended Posts