Utile au quotidien!? Semi-automatisation de la méthode de planification expérimentale la plus puissante de COSPA avec Python

<! - Titre Comment obtenir beaucoup d'informations avec un petit nombre d'expériences avec Python Créez automatiquement des plans expérimentaux efficaces avec Python Créez automatiquement un bon plan expérimental pour cospa avec Python J'ai expérimenté 30000 fois, mais en fait 16 fois c'était assez Raccourcir 30 000 expériences à 16 Utile au quotidien!? ->

Aperçu

Quelle est la méthode de planification expérimentale (quelle est son utilité)

La conception expérimentale (conception d'expériences) est un domaine d'application de la statistique qui vise à concevoir une méthode expérimentale efficace et à analyser les résultats de manière appropriée. y a-t-il. De Wikipedia

Supposons que vous vouliez savoir quel effet est le plus important parmi divers paramètres (causes) dans les expériences scientifiques. La planification des expériences peut être utilisée pour réduire considérablement le nombre ** d'expériences nécessaires pour l'étudier.

Cela semble difficile à écrire, mais en fait, cette méthode de planification expérimentale est également utile dans les situations de la vie quotidienne. ** **

Prenons l'exemple de la cuisine. ** Je veux faire un délicieux curry **, en tant que paramètre qui détermine le caractère délicieux du curry

Essayez deux types à la fois ** Découvrez quels paramètres affectent sa saveur **.

Paramètres 1 2
Temps de ragoût 20 min 60 minutes
Ratio de farine de blé 5% 10%
Types de poudre de curry Marine Yokosuka Vermont

Dans l'exemple du tableau ci-dessus, si vous essayez ces derniers avec toutes les combinaisons,

2 * 2 * 2 = ** Vous devez manger du curry 8 fois. ** **

Cependant, en utilisant la méthode de planification expérimentale,

Il suffit de manger ** 4 fois ** et vous verrez quels facteurs affectent sa saveur.

Puissance de la méthode de planification expérimentale

C'est assez étonnant de réduire de moitié le nombre de fois (8⇒4), Plus il y a de paramètres, plus la méthode de planification expérimentale sera puissante.

――S'il y a 7 paramètres, le nombre total de combinaisons est de ** 128 fois ** ⇒ Avec la méthode de planification expérimentale, ** 8 fois suffisent! ** ** --S'il y a 15 paramètres, le nombre total de combinaisons est de ** 32768 fois ** ⇒ Avec la méthode de planification expérimentale, ** 16 fois suffit! !! ** **

Ne serait-il pas formidable d'être aussi efficace?

Quel genre de personne est efficace

Comme mentionné ci-dessus, il devrait avoir un large éventail d'applications telles que ** la vie quotidienne, la vie de recherche, la vie professionnelle, etc. **. La vie devient pratique en l'utilisant.

À titre d'exemple de moi-même, si je le savais quand j'étais étudiant à l'université, je pourrais grandement rationaliser mes recherches, mais je ne le savais pas à l'époque. «** Je veux m'enseigner moi-même en tant qu'étudiant **» est la motivation pour écrire cet article.

Et cette méthode de planification expérimentale peut également être utilisée pour ** l'étude gratuite des élèves du primaire pendant les vacances d'été **. Le raisonnement est que ** seule la "moyenne" est utilisée pour calculer l'effet des paramètres de cette manière **. (Il peut être nécessaire pour un adulte compréhensif de fournir un soutien.)

Et alors? Pourquoi Python?

La méthode de planification des expériences est un outil d'efficacité très puissant, j'aimerais donc que beaucoup de gens l'utilisent. Cependant, il est un peu difficile d'apprendre à l'utiliser.

C'est une idée personnelle, mais une telle technique est comme une formule mathématique, L'idée technique est que je souhaite généralement l'utiliser facilement comme un outil.

** Automatisez les procédures complexes avec Python afin de pouvoir l'utiliser régulièrement comme un outil! ** ** C'est la raison de cette conversion Python.

Je veux savoir comment ça marche

Comme pour les formules mathématiques, je pense que vous devez comprendre le contenu une fois. Cependant, une fois que je l'ai compris, je ne pense pas qu'il soit nécessaire de se souvenir du contenu à chaque fois que je l'utilise.

Veuillez étudier en vous référant aux liens ci-dessous.

Introduction à la planification expérimentale, partie 2

J'aimerais que vous compreniez le ** mécanisme qui peut réduire le nombre d'expériences en utilisant le ** tableau orthogonal de la méthode de planification d'expériences **.

Méthode de planification expérimentale utilisant Python --Design_of_Experiment (DoE) avec Python dans Jupyter Notebook

Cette fois, j'ai implémenté ce qui suit avec le notebook Python + Jupyter. Le fichier de bloc-notes Jupyter est téléchargé sur GitHub.

--Création d'un plan expérimental en utilisant une table orthogonale à deux niveaux (create_expt_plan_2_levels.ipynb) --Analyse des résultats expérimentaux ci-dessus (de la visualisation à l'analyse de dispersion) (analysis_expt_result_2_levels.ipynb)

Fonctionnalité - Fonctionnalité

Dépendance de la langue et de la bibliothèque

<! - Ecrire la langue et la version utilisées, la bibliothèque requise et sa version Pour Python, il est également bon de préparer requirements.txt->

Préparation - Configuration

<! - Ecrivez la méthode de configuration. Décrivez la commande pour configurer le matériel et le logiciel à préparer-> L'environnement Jupyter Notebook et lié à Python ci-dessus est requis. Anaconda est un moyen pratique de tous les installer en même temps. Explication d'Anaconda et méthode d'installation (lien de référence) Articles référencés dans le notebook Jupyter

Utilisation - Utilisation

<! - Comment utiliser. Écrivez aussi précisément que possible. Écrivez également un échantillon->

Création d'un plan expérimental utilisant une table orthogonale à deux niveaux

<! - Écrivez ce qu'est ce logiciel et ce que vous pouvez faire De plus, une simple démo (exemple d'utilisation) etc. est affichée avec des captures d'écran et une animation GIF->

● Exemple Supposons que vous souhaitiez connaître les paramètres qui affectent un délicieux curry.

Entrez ceci comme indiqué ci-dessous.

create_expt_plan_2_levels.ipynb


#Nom du facteur
factor_symbols_all = ["temps", "blé", "poudre de curry"]

#Niveau de chaque facteur
factors = [
    [20,60],
    [5,10],
    ["Marine","BMT"]
]

#Numéro de facteur de l'interaction que vous souhaitez voir(o~)Spécifié par.
interactions = [
#     [0, 1],    # AxB
#     [1, 2]     # BxC
]

Une fois exécutés, le plan expérimental suivant et EXCEL seront générés. Nom du fichier de sortie: output_Expt_Plan_L * .xlsx sample-table.png

Analyse des résultats expérimentaux (de la visualisation à l'analyse de dispersion)

<! - Écrivez ce qu'est ce logiciel et ce que vous pouvez faire De plus, une simple démo (exemple d'utilisation) etc. est affichée avec des captures d'écran et une animation GIF->

● Exemple Entrez le résultat dans la sortie EXCEL plus tôt et enregistrez-le. «Ici, supposons que la saveur du curry soit évaluée sur une échelle de 5 points. --Enregistrez le fichier avec les résultats sous "result_Expt_Plan_L4.xlsx".

Spécifiez le fichier dans le code.

analysis_expt_result_2_levels.ipynb


path = 'result_Expt_Plan_L4.xlsx'

Lorsqu'il est exécuté, l'effet individuel de chaque paramètre (appelé facteur) est ** visualisé ** dans un graphique. sample-plot.png sample-bar.png

Vous pouvez également voir ** les résultats de l'analyse statistique (table d'analyse distribuée) **

Parce qu'il regroupe le résultat avec moins d'influence en tant qu'erreur Dans ce cas, vous devez spécifier le blé.

analysis_expt_result_2_levels.ipynb


# ['temps', 'blé', 'poudre de curry']
pool_list = [0,1,0] 

Ensuite, l'analyse distribuée sera effectuée comme indiqué ci-dessous.

sample-analysis.png

Licence-Licence

Released under the MIT license

Références - Références

Informations et liens tels que sources d'informations de référence (sites / articles)

http://jasst.jp/archives/jasst05w/pdf/S4-1.pdf https://www.slideshare.net/hajimemizuyama/par-49440366

Tâches futures

Actuellement, nous n'utilisons que la méthode «Table d'interaction» pour allouer les interactions. Afin d'améliorer la fiabilité, la méthode d'allocation est «méthode utilisant la table d'interaction» et «méthode utilisant le symbole du composant». Je voudrais faire deux façons et ajouter un chèque.

En outre, actuellement, seul le système à 2 niveaux est pris en charge.

――Support pour le système à 3 niveaux ――Correspondance à 4 niveaux et pseudo niveaux

J'aimerais également les mettre en œuvre à l'avenir.

Épilogue

J'avais l'impression que la méthode de planification expérimentale que j'ai étudiée récemment pouvait être assez utilisée. J'ai écrit cet article dans le but principal de le faire connaître à de nombreuses personnes.

Dans certaines parties, j'ai omis l'explication (en raison de mon manque d'explication) afin de donner la priorité à la clarté. Si vous proposez un bon exemple à l'avenir, je peux l'ajouter.

Je suis aussi un débutant sur Python, donc je pense qu'il y a des parties qui sont difficiles ou difficiles à voir, J'espère que cela aide quelqu'un.

Publié précédemment lors de la compilation des résultats dans un rapport ** Création automatique de document Powerpoint ** peut également être utile. → Création de rapport automatique avec Python (article Qiita)

Enfin, la publicité

L'application de mémo iOS "Sakumemo!" a été publiée en tant que développement personnel. Il s'agit d'une application de gestion de mémos / tâches qui propose des opérations intuitives telles qu'un écran simple et un tri par glisser-déposer. → Sakumemo! --Anytime notes nettes, Todo, tri (Apple App Store)

Recommended Posts

Utile au quotidien!? Semi-automatisation de la méthode de planification expérimentale la plus puissante de COSPA avec Python
Résumé des techniques utiles de Scrapy en Python
Récapitulatif des outils d'exploitation de l'interface graphique Windows avec Python
[Pour les débutants] Résumé de l'entrée standard en Python (avec explication)
Simulez des dommages-intérêts tardifs pour les frais de garde d'enfants en souffrance avec Python
Tourner un tableau de chaînes avec une instruction for (Python3)
Faites attention à LANG pour UnicodeEncodeError lors de l'impression du japonais avec Python 3
J'ai créé beaucoup de fichiers pour la connexion RDP avec Python
L'histoire de la création d'un pilote standard pour db avec python.
[Jouons avec Python] Viser la génération automatique de phrases ~ Achèvement de la génération automatique de phrases ~