[PYTHON] Assurez-vous que le prétraitement au moment de la création du modèle de prédiction et de la prédiction est aligné

introduction

C'est bien de créer un modèle prédictif, mais lors de la prédiction, faites-vous exactement la même chose que les prérequis pour créer le modèle? Parler. Cela semble être une histoire très importante dans le fonctionnement du système d'apprentissage des opportunités.

Surtout dans le domaine de la chimioinfomatique, les modèles sont souvent créés en combinant divers logiciels commerciaux et gratuits. Le prétraitement du composé est effectué avec l'outil A, puis le descripteur est calculé avec l'outil B et le modèle de prédiction est créé avec l'outil C. .. .. Il est normal de créer un modèle comme celui-là, mais cette fois, j'ai essayé de vérifier ce qui se passerait si l'utilisateur ne faisait pas le même prétraitement.

environnement

Scénario de vérification

Il existe différents prétraitements, mais comme il s'est avéré trouvé, j'ai procédé cette fois au scénario suivant.

Comment calculer l'empreinte digitale RDKit Morgan

Quelle est l'empreinte digitale Morgan de RDKit en premier lieu? Mais ça ressemble à ça dans la source.

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)

Dans la première ligne, "CCC" crée un objet composé à partir de la chaîne de caractères SMILES, qui représente un composé, dans la deuxième ligne, l'hydrogène est explicitement ajouté au composé et dans la troisième ligne, le calcul du descripteur est effectué. Le résultat du calcul du descripteur est un tableau de 2 048 bits et chaque bit vaut 0 ou 1.

Ceci est utilisé pour créer un modèle de prédiction et faire des prédictions, mais après cela, lorsque `` Chem.AddHs (mol) '' n'est pas ajouté au moment de la création du modèle de prédiction et au moment de la prédiction , J'ai confirmé en quoi le résultat de la prédiction est différent lorsqu'il est attaché uniquement lorsque le modèle de prédiction est créé.

J'ai essayé et considéré

Dans les données d'environ 100 données d'apprentissage et d'environ 10 000 données cibles de prédiction, la corrélation entre les résultats prédits par la combinaison des trois modèles suivants est résumée dans le tableau.

Les résultats sont les suivants. image.png

Pour le modèle de prédiction créé en ajoutant explicitement de l'hydrogène aux données d'apprentissage et en calculant le descripteur, la valeur prédite lorsque le calcul / prédiction du descripteur est effectué en omettant l'hydrogène dans les données cibles de prédiction est explicitement l'hydrogène. Il n'y a qu'une corrélation d'environ 0,48 par rapport à la valeur prédite lorsqu'elle est donnée. Le graphique de la relation entre les deux est le suivant. C'est une erreur considérable.

image.png

Cette valeur de 0,48 est inférieure à la corrélation de 0,58 entre ceux qui ont fait des prédictions avec et sans hydrogène en alignant les conditions au moment de la création du modèle de prédiction et au moment de la prédiction. Il y a un débat sur ce qui est plus approprié comme entrée pour l'empreinte digitale Morgan, avec ou sans hydrogène (dans certains cas, ce n'est pas spécifié), mais tout d'abord, il semble important d'aligner correctement les conditions d'entrée.

Conclusion

Assurez-vous que les conditions de prétraitement sont les mêmes lors de la création d'un modèle de prédiction et lors de la réalisation d'une prédiction. Il est préférable de le fournir côté système, y compris le prétraitement, mais si, pour une raison quelconque, il n'est pas possible de le faire, écrivez-le fermement dans le document.

référence

Recommended Posts

Assurez-vous que le prétraitement au moment de la création du modèle de prédiction et de la prédiction est aligné
Je veux créer un lecteur de musique et enregistrer de la musique en même temps
J'ai essayé de publier automatiquement sur ChatWork au moment du déploiement avec Fabric et ChatWork Api
[PyTorch] Vérifiez si le modèle et l'ensemble de données sont en mode cuda
Comment sensibiliser VS Code à l'environnement venv et à ses avantages
Utilisez Pillow pour rendre l'image transparente et en superposer une partie seulement
Facilitez la spécification de l'heure d'AWS CloudWatch Events avec CDK.
Au moment de la mise à jour de python avec ubuntu
J'ai essayé de faire quelque chose comme un chatbot avec le modèle Seq2Seq de TensorFlow
L'histoire du serveur Web et du DAG d'Airflow, dont le chargement prend beaucoup de temps
Je voulais juste extraire les données de la date et de l'heure souhaitées avec Django
Il est temps de réfléchir sérieusement à la définition et aux compétences des data scientists
La décision de scikit-learn Comment visualiser un modèle en bois
Visualisez les données et saisissez la corrélation en même temps
Exécutez le modèle Caffe sur Google Colaboratory pour prédire l'âge et le sexe des mannequins du monde
[Introduction au modèle SIR] Prédire l'heure de fin de chaque pays avec l'ajustement des données COVID-19 ♬
Comment démarrer le PC à une heure fixe chaque matin et exécuter le programme python
Fonction intégrée Python ~ divmod ~ Obtenons le quotient et le reste de la division en même temps
Comment insérer un processus spécifique au début et à la fin de l'araignée avec la tremblante
J'ai essayé de créer un script qui retrace les tweets d'un utilisateur spécifique sur Twitter et enregistre l'image publiée à la fois
Essayez d'évaluer les performances du modèle d'apprentissage automatique / de régression
SIGNATURE Quête ② De la création du modèle de ciblage à la création des données soumises
Facilitez la compréhension de l'affichage des exceptions du module Python
Grep pour que grep n'apparaisse pas au moment de grep
Essayez d'évaluer les performances du modèle d'apprentissage automatique / de classification
J'ai fait une fonction pour vérifier le modèle de DCGAN
J'ai essayé d'illustrer le temps et le temps du langage C
J'ai essayé d'afficher l'heure et la météo d'aujourd'hui w
Accrocher à la première importation du module et imprimer le chemin du module
Je veux connaître la nature de Python et pip
[Introduction à Tensorflow] Comprendre correctement Tensorflow et essayer de créer un modèle
Commandes et fichiers pour vérifier la version de CentOS Linux
Il est étonnamment difficile d'obtenir une liste de la dernière date et heure de connexion des espaces de travail
L'histoire du retour au front pour la première fois en 5 ans et de la refactorisation de Python Django
Apprenez le flux de l'estimation bayésienne et comment utiliser Pystan grâce à un modèle de régression simple
python Remarque: enumerate () -Obtenir l'index et l'élément de la liste en même temps et tourner pour l'instruction