[PYTHON] Stellen Sie sicher, dass die Vorverarbeitung zum Zeitpunkt der Erstellung und Vorhersage des Vorhersagemodells ausgerichtet ist

Einführung

Es ist schön, ein Vorhersagemodell zu erstellen, aber machen Sie es bei der Vorhersage genauso wie die Voraussetzungen für die Erstellung des Modells? Sich unterhalten. Es scheint eine sehr wichtige Geschichte im Betrieb des Opportunity-Lernsystems zu sein.

Insbesondere auf dem Gebiet der Chemoinfomatik werden Modelle häufig durch die Kombination verschiedener kommerzieller und freier Software erstellt. Die Vorbehandlung der Verbindung wird mit dem A-Werkzeug durchgeführt, dann wird der Deskriptor mit dem B-Werkzeug berechnet und das Vorhersagemodell wird mit dem C-Werkzeug erstellt. .. .. Es ist in Ordnung, ein solches Modell zu erstellen, aber dieses Mal habe ich versucht zu überprüfen, was passieren würde, wenn der Benutzer nicht dieselbe Vorverarbeitung durchführen würde.

Umgebung

Überprüfungsszenario

Es gibt verschiedene Vorbehandlungen, aber da es zufällig gefunden wurde, fuhr ich diesmal mit dem folgenden Szenario fort.

So berechnen Sie den RDKit Morgan-Fingerabdruck

Was ist der Morgan-Fingerabdruck von RDKit überhaupt? Aber so sieht es in der Quelle aus.

from rdkit.Chem import AllChem

mol = Chem.MolFromSmiles("CCC")
mol = Chem.AddHs(mol)
fp = AllChem.GetMorganFingerprintAsBitVect(mol, radius=3, nBits=2048, useFeatures=False, useChirality=False)

In der ersten Zeile erstellt "CCC" ein zusammengesetztes Objekt aus der Zeichenfolge SMILES, die eine Verbindung darstellt. In der zweiten Zeile wird der Verbindung explizit Wasserstoff hinzugefügt, und in der dritten Zeile wird die Deskriptorberechnung durchgeführt. Das Ergebnis der Deskriptorberechnung ist ein 2048-Bit-Array, und jedes Bit ist 0 oder 1.

Dies wird verwendet, um ein Vorhersagemodell zu erstellen und Vorhersagen zu treffen, aber danach, wenn "Chem.AddHs (mol)" zum Zeitpunkt der Erstellung des Vorhersagemodells und zum Zeitpunkt der Vorhersage nicht hinzugefügt wird Ich habe bestätigt, dass sich das Vorhersageergebnis unterscheidet, wenn es nur beim Erstellen des Vorhersagemodells angehängt wird.

Versucht & überlegt

In den Daten von ungefähr 100 Trainingsdaten und ungefähr 10.000 Vorhersagezieldaten ist die Korrelation zwischen den durch die Kombination der folgenden drei Muster vorhergesagten Ergebnissen in der Tabelle zusammengefasst.

Die Ergebnisse sind wie folgt. image.png

Für das Vorhersagemodell, das durch explizites Hinzufügen von Wasserstoff zu den Trainingsdaten und Berechnen des Deskriptors erstellt wurde, ist der vorhergesagte Wert, wenn die Deskriptorberechnung / -vorhersage durch Weglassen von Wasserstoff in den Vorhersagezieldaten durchgeführt wird, explizit Wasserstoff. Es gibt nur eine Korrelation von ungefähr 0,48 im Vergleich zu dem vorhergesagten Wert, wenn er gegeben wird. Die Darstellung der Beziehung zwischen den beiden ist wie folgt. Es ist ein erheblicher Fehler.

image.png

Dieser Wert von 0,48 ist niedriger als die Korrelation von 0,58 zwischen denjenigen, die Vorhersagen mit und ohne Wasserstoff getroffen haben, indem sie die Bedingungen zum Zeitpunkt der Erstellung des Vorhersagemodells und zum Zeitpunkt der Vorhersage ausgerichtet haben. Es gibt einige Debatten darüber, welche als Eingabe für den Morgan-Fingerabdruck mit oder ohne Wasserstoff geeigneter ist (in einigen Fällen ist sie nicht spezifiziert), aber zunächst scheint es wichtig, die Eingabebedingungen richtig auszurichten.

Fazit

Stellen Sie sicher, dass die Vorverarbeitungsbedingungen beim Erstellen eines Vorhersagemodells und beim Erstellen einer Vorhersage dieselben sind. Es ist am besten, es auf der Systemseite einschließlich der Vorverarbeitung bereitzustellen. Wenn dies jedoch aus irgendeinem Grund nicht möglich ist, schreiben Sie es fest in das Dokument.

Referenz

Recommended Posts

Stellen Sie sicher, dass die Vorverarbeitung zum Zeitpunkt der Erstellung und Vorhersage des Vorhersagemodells ausgerichtet ist
Ich möchte gleichzeitig einen Musik-Player erstellen und Musik ablegen
Ich habe versucht, zum Zeitpunkt der Bereitstellung mit Fabric und ChatWork Api automatisch in ChatWork zu posten
[PyTorch] Überprüfen Sie, ob sich Modell und Datensatz im Cuda-Modus befinden
So machen Sie VS Code auf die venv-Umgebung und ihre Vorteile aufmerksam
Verwenden Sie Pillow, um das Bild transparent zu machen und nur einen Teil davon zu überlagern
Machen Sie es sich einfach, die Zeit von AWS CloudWatch-Ereignissen mit CDK anzugeben.
Zum Zeitpunkt des Python-Updates mit Ubuntu
Ich habe versucht, mit dem Seq2Seq-Modell von TensorFlow so etwas wie einen Chatbot zu erstellen
Die Geschichte von Airflows Webserver und DAG, deren Laden lange dauert
Ich wollte nur die Daten des gewünschten Datums und der gewünschten Uhrzeit mit Django extrahieren
Es ist Zeit, ernsthaft über die Definition und die Fähigkeiten von Datenwissenschaftlern nachzudenken
Die Entscheidung von scikit-learn Wie man ein Holzmodell visualisiert
Visualisieren Sie Daten und erfassen Sie gleichzeitig die Korrelation
Führen Sie das Caffe-Modell in Google Colaboratory aus, um Alter und Geschlecht der Supermodels der Welt vorherzusagen
[Einführung in das SIR-Modell] Prognostizieren Sie die Endzeit jedes Landes mit der COVID-19-Datenanpassung ♬
So starten Sie den PC jeden Morgen zu einer festgelegten Zeit und führen das Python-Programm aus
In Python integrierte Funktion ~ divmod ~ Lassen Sie uns gleichzeitig den Quotienten und den Rest der Division erhalten
Wie man einen bestimmten Prozess am Anfang und Ende der Spinne mit Scrapy einfügt
Ich habe versucht, ein Skript zu erstellen, das die Tweets eines bestimmten Benutzers auf Twitter verfolgt und das veröffentlichte Bild sofort speichert
Versuchen Sie, die Leistung des Modells für maschinelles Lernen / Regression zu bewerten
SIGNATE Quest ② Von der gezielten Modellerstellung bis zur Erstellung von Übermittlungsdaten
Erleichtern Sie die Anzeige von Python-Modulausnahmen
Grep, damit grep zum Zeitpunkt von grep nicht angezeigt wird
Versuchen Sie, die Leistung des Modells für maschinelles Lernen / Klassifizierung zu bewerten
Ich habe eine Funktion erstellt, um das Modell von DCGAN zu überprüfen
Ich habe versucht, die Zeit und die Zeit der C-Sprache zu veranschaulichen
Ich habe versucht, die Uhrzeit und das heutige Wetter anzuzeigen
Schließen Sie den ersten Import des Moduls an und drucken Sie den Modulpfad
Ich möchte die Natur von Python und Pip kennenlernen
[Einführung in Tensorflow] Verstehen Sie Tensorflow richtig und versuchen Sie, ein Modell zu erstellen
Befehle und Dateien zum Überprüfen der Version von CentOS Linux
Es ist überraschend mühsam, eine Liste mit dem Datum und der Uhrzeit der letzten Anmeldung von Arbeitsbereichen abzurufen
Die Geschichte, zum ersten Mal seit 5 Jahren wieder an die Front zurückzukehren und Python Django umzugestalten
Erfahren Sie anhand eines einfachen Regressionsmodells den Ablauf der Bayes'schen Schätzung und die Verwendung von Pystan
python Hinweis: enumerate () - Index und Element der Liste gleichzeitig abrufen und zur Anweisung wenden