Ich möchte Materialinformatik studieren. Dieses Mal werde ich RDKit verwenden, ein Tool, das organische Verbindungen in Vektoren umwandelt, um eine KI zu erstellen, die bestimmt, ob die als Daten angegebene organische Verbindung Alkohol ist.
Python: 3.6.5 scikit-learn: 0.20.3 rdkit: 2019.03.1.0
#Lesen Sie die gewünschte Bibliothek
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
#Bereiten Sie die Daten vor.
#Diesmal Alkohol, um festzustellen, ob es Alkohol ist(=1)Und andere(=0)Urteilen.
#Chemische Formeln werden in SMILES-Notation ausgedrückt.
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]
#Vektor transformieren die chemische Formel.
mols = [Chem.MolFromSmiles(smile) for smile in smiles]
finger_print = [AllChem.GetMorganFingerprintAsBitVect(mol, 2, 1024) for mol in mols]
#Teilen Sie die Daten in Trainingsdaten und Testdaten
X = np.array(finger_print)
y = ans
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
#Modellierung in einem zufälligen Wald von Algorithmen für maschinelles Lernen
forest = RandomForestClassifier()
forest.fit(X_train, y_train)
#Überprüfen Sie die Genauigkeit des Modells
forest.score(X_train, y_train)
forest.score(X_test, y_test)
Der Fluss ist wie folgt.
Die Jupyter-Notebook-Datei wurde auf GitHub auf hier hochgeladen.
Recommended Posts