[PYTHON] J'ai fait une IA pour juger si c'est de l'alcool ou non!

Objectif

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.

Environnement d'exploitation

Python: 3.6.5 scikit-learn: 0.20.3 rdkit: 2019.03.1.0

Code source

#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.

  1. Préparation des données
  2. Vectoriser les données à l'aide de RDKit
    1. Fractionner les données à l'aide des fonctions SKLearn Quatre. Création d'un modèle à l'aide de la classe d'algorithme de SKLearn Cinq. Vérifiez la précision du modèle créé

Le fichier du notebook jupyter a été téléchargé sur ici sur GitHub.

Les références

Page officielle de RDKit

Recommended Posts

J'ai fait une IA pour juger si c'est de l'alcool ou non!
J'ai fait un modèle de classification d'images et essayé de le déplacer sur mobile
Juger s'il s'agit d'un nombre premier [Python]
Je veux réfuter "Ce n'est pas cool en Ruby"
J'ai créé un installateur Ansible
Que ce soit super ou pas, python est une édition assez débutante. Je déteste trop les opérations sur les fichiers.
J'ai créé un appareil IoT pour acquérir naturellement une pensée positive
S'il n'est pas facile à comprendre, il ne peut pas être amélioré.
J'ai fait une animation qui renvoie la pierre d'Othello avec POV-Ray
[Traitement du langage naturel] Je souhaite rencontrer un ingénieur qui change de poste (ou juste avant)
Je souhaite spécifier un fichier qui n'est pas une certaine chaîne de caractères comme cible logrotate, mais est-ce impossible?
J'ai créé un serveur Xubuntu.
Tensorflow-GPU semble être ensemble s'il s'agit de TF2.0 ou d'une version ultérieure?
Je voulais le faire comme exécuter un cas de test pour AtCoder.
J'ai créé une IA qui recadre joliment une image en utilisant Saliency Map
Lorsque j'essaye d'utiliser pip, le module SSL n'est pas disponible.
J'ai créé un script POST pour créer un problème sur Github et l'enregistrer dans le projet