[PYTHON] Ich habe eine KI gemacht, um zu beurteilen, ob es Alkohol ist oder nicht!

Zweck

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.

Betriebsumgebung

Python: 3.6.5 scikit-learn: 0.20.3 rdkit: 2019.03.1.0

Quellcode

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

    1. Datenaufbereitung
  1. Vektorisieren Sie Daten mit RDKit
    1. Daten mit SKLearn-Funktionen aufteilen Vier. Erstellen eines Modells mit der Algorithmusklasse von SKLearn Fünf. Überprüfen Sie die Genauigkeit des erstellten Modells

Die Jupyter-Notebook-Datei wurde auf GitHub auf hier hochgeladen.

Verweise

Offizielle RDKit-Seite

Recommended Posts

Ich habe eine KI gemacht, um zu beurteilen, ob es Alkohol ist oder nicht!
Ich habe ein Bildklassifizierungsmodell erstellt und versucht, es auf dem Handy zu verschieben
Beurteilen Sie, ob es sich um eine Primzahl handelt [Python]
Ich möchte widerlegen "Das ist in Ruby nicht cool"
Ich habe einen Ansible-Installer gemacht
Ob super oder nicht, Python ist eine Anfängerausgabe. Ich hasse Dateivorgänge zu sehr.
Ich habe ein IoT-Gerät entwickelt, um auf natürliche Weise positives Denken zu erlangen
Wenn es nicht leicht zu verstehen ist, kann es nicht verbessert werden.
Ich habe eine Animation gemacht, die Othellos Stein mit POV-Ray zurückgibt
[Verarbeitung natürlicher Sprache] Ich möchte einen Ingenieur treffen, der seinen Job wechselt (oder kurz zuvor).
Ich möchte eine Datei, die keine bestimmte Zeichenfolge ist, als logrotate Ziel angeben, aber ist es unmöglich?
Ich habe einen Xubuntu-Server erstellt.
Tensorflow-GPU scheint zusammen zu sein, wenn TF2.0 oder höher?
Ich wollte es so machen, als würde ich einen Testfall für AtCoder ausführen.
Ich habe eine KI erstellt, die ein Bild mit Saliency Map gut zuschneidet
Wenn ich versuche, pip zu verwenden, ist das SSL-Modul nicht verfügbar.
Ich habe ein POST-Skript erstellt, um ein Problem in Github zu erstellen und es im Projekt zu registrieren