{"id":176634,"date":"2023-05-18T18:58:47","date_gmt":"2023-05-18T17:58:47","guid":{"rendered":"https:\/\/liora.io\/de\/?p=176634"},"modified":"2026-02-06T06:46:44","modified_gmt":"2026-02-06T05:46:44","slug":"tpot-alles-ueber-diese-python-bibliothek-fuer-machine-learning","status":"publish","type":"post","link":"https:\/\/liora.io\/de\/tpot-alles-ueber-diese-python-bibliothek-fuer-machine-learning","title":{"rendered":"TPOT: Alles \u00fcber diese Python-Bibliothek f\u00fcr Machine Learning"},"content":{"rendered":"<p><strong>Bevor ein Machine-Learning-Modell in Produktion gehen kann, muss zun\u00e4chst das am besten geeignete Modell bestimmt werden, die optimalen Parameter ausgew\u00e4hlt werden usw. Dies sind redundante Vorg\u00e4nge, die auf verschiedene Projekte angewendet werden. W\u00e4re es nicht einfacher, diese Prozesse zu automatisieren? Hier kommt TPOT ins Spiel.<\/strong><\/p>\n<h3>Was ist TPOT ?<\/h3>\nTPOT ist eine <a href=\"https:\/\/liora.io\/de\/open-source-definition\">Open-Source-Bibliothek,<\/a> die f\u00fcr die Automatisierung von Machine Learning verwendet wird. Basierend auf der <a href=\"\/\">Scikit-learn-Bibliothek,<\/a> die genetische Programmierung verwendet, untersucht TPOT tausende verschiedener Pipelines und findet diejenige, die f\u00fcr ein bestimmtes <a href=\"https:\/\/liora.io\/de\/datasets-top-5-websites-fuer-qualitativ-hochwertige-datensaetze\">Dataset<\/a> am besten geeignet ist.\n\nAngenommen, du hast einen Datensatz, f\u00fcr den die Anwendung eines <a href=\"https:\/\/liora.io\/de\/machine-learning-clustering\">Machine-Learning-Modells<\/a> relevant ist. Deine ersten Schritte werden sich um die Erforschung der Daten und ihre Vorbereitung drehen.\n\nDer n\u00e4chste Schritt besteht darin, das beste Machine-Learning-Modell auszuw\u00e4hlen, indem du deine Daten an verschiedene Modelle anpasst und nach dem besten Satz von Hyperparametern suchst.\n\nTechnisch gesehen wirst du die gleichen Bibliotheken in verschiedenen Projekten verwenden. Das wird dich viel Zeit kosten und nicht unbedingt deine F\u00e4higkeiten verbessern, da du immer wieder denselben Code schreibst.\n<h3>Warum sollte man TPOT verwenden ?<\/h3>\n<a href=\"https:\/\/liora.io\/de\/mlops\">Automatische Machine-Learning-Tools (AutoML)<\/a> sind die Antwort auf eine einfache Frage: Wie kann man die Erstellung und das Training von Modellen weniger zeitaufwendig gestalten?\n\nAutoML erm\u00f6glicht es, wie der Name schon sagt, einen Gro\u00dfteil des Prozesses der Modellerstellung zu automatisieren, ohne dabei an Qualit\u00e4t einzub\u00fc\u00dfen, sodass sich der Data Scientist auf die Analyse konzentrieren kann.\n\nSeine Pipeline besteht aus mehreren Prozessen, die es erm\u00f6glichen werden, ein leistungsf\u00e4higes Machine-Learning-Modell zu erstellen (Feature Engineering, Modellgenerierung, Optimierung der Hyperparameter).\n\nZur Erinnerung: Bei Machine Learning kodifiziert und automatisiert eine Pipeline den Workflow, der es erm\u00f6glicht, dass Daten in ein Modell umgewandelt und korreliert werden, das dann analysiert werden kann. Das <strong>Laden der Daten<\/strong> in das Modell ist dann vollst\u00e4ndig automatisiert.\n\nEine Pipeline kann auch verwendet werden, um den Workflow unseres Modells in unabh\u00e4ngige, wiederverwendbare Teile zu unterteilen, wodurch die Erstellung vereinfacht und Doppelarbeit vermieden wird.\n\nEine gute Pipeline wird die Erstellung und Produktion von <a href=\"https:\/\/liora.io\/de\/data-trends-2023-diese-solltest-du-verfolgen\">Machine-Learning-Modellen<\/a> effizienter und skalierbarer (skalierbar) machen.\n\nDar\u00fcber hinaus ist TPOT sehr flexibel, da du es mit <a href=\"https:\/\/liora.io\/de\/pytorch\">PyTorch<\/a> an Modelle f\u00fcr neuronale Netze anpassen kannst. TPOT unterst\u00fctzt insbesondere die Verwendung von Dask, um parallele Trainings zu realisieren.\n<h3>Wie funktioniert TPOT ?<\/h3>\n<strong>TPOT, oder Tree-based Pipeline Optimization,<\/strong> verwendet eine auf bin\u00e4ren Entscheidungsb\u00e4umen basierende Struktur, um ein Pipeline-Modell darzustellen.\n\nDies beinhaltet die Vorbereitung von Daten, die Modellierung von Algorithmen, die Einstellung von Hyperparametern und die Auswahl des Modells.\n\nNachfolgend ein Beispiel f\u00fcr eine Pipeline, das die von TPOT automatisierten Elemente zeigt:\n<figure>\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"902\" height=\"486\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/05\/image1-1.png\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/05\/image1-1.png 902w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/05\/image1-1-300x162.png 300w, https:\/\/liora.io\/app\/uploads\/sites\/8\/2023\/05\/image1-1-768x414.png 768w\" sizes=\"(max-width: 902px) 100vw, 902px\"><figcaption><\/figcaption><\/figure>\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex is-content-justification-center\"><div class=\"wp-block-button \"><a class=\"wp-block-button__link wp-element-button \" href=\"https:\/\/liora.io\/de\/unsere-aus-und-weiterbildungen\">TPOT lernen<\/a><\/div><\/div>\n\n\nDurch die Kombination von stochastischen Suchalgorithmen wie der genetischen Programmierung und einer flexiblen Darstellung von Trees wird<strong> TPOT automatisch die Funktionen, das Machine-Learning-Modell<\/strong> und die Hyperparameter entwerfen und optimieren. Das Ziel ist es, die Wirksamkeit der \u00fcberwachten Klassifizierung in unserem Datensatz zu maximieren.\n\nEs ist wichtig zu beachten, dass du <strong>TPOT<\/strong> eine Zeit lang arbeiten lassen musst, um die optimierteste Pipeline zu finden. Du kannst sie nat\u00fcrlich auch ein paar Minuten laufen lassen, aber das wird nicht ausreichen, um das beste Modell f\u00fcr deinen Datensatz zu finden.\n\nAbh\u00e4ngig von der Gr\u00f6\u00dfe deines Datenbestands kann es mehrere Stunden oder sogar Tage dauern, bis TPOT l\u00e4uft. Es wird empfohlen, mehrere Instanzen gleichzeitig f\u00fcr mehrere Stunden laufen zu lassen, um eine gr\u00fcndliche und effiziente Suche durchzuf\u00fchren.\n\nDa der Optimierungsalgorithmus von<strong> TPOT<\/strong> stochastischer Natur ist, was eine partielle Randomisierung bedeutet, kann es vorkommen, dass bei zwei L\u00e4ufen unterschiedliche Pipelines f\u00fcr denselben Datensatz empfohlen werden. Wenn dies der Fall ist, werden die Pipelines entweder wegen mangelnder Ausf\u00fchrungszeit nicht \u00fcbereinstimmen, oder sie werden sehr \u00e4hnliche Leistungswerte haben.\n\n?Auch interessant:\n<table dir=\"ltr\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<colgroup>\n<col width=\"268\"><\/colgroup>\n<tbody>\n<tr>\n<td data-sheets-value=\"{&quot;1&quot;:2,&quot;2&quot;:&quot;Gradient Boosting Algorithmen&quot;}\" data-sheets-hyperlink=\"https:\/\/liora.io\/de\/gradient-boosting-algorithmen\"><a href=\"https:\/\/liora.io\/de\/gradient-boosting-algorithmen\" target=\"_blank\" rel=\"noopener\">Gradient Boosting Algorithmen<\/a><\/td>\n<\/tr>\n<tr>\n<td data-sheets-value=\"{&quot;1&quot;:2,&quot;2&quot;:&quot;Dijkstra Algorithmus&quot;}\" data-sheets-hyperlink=\"https:\/\/liora.io\/de\/was-ist-der-dijkstra-algorithmus\"><a href=\"https:\/\/liora.io\/de\/was-ist-der-dijkstra-algorithmus\" target=\"_blank\" rel=\"noopener\">Dijkstra Algorithmus<\/a><\/td>\n<\/tr>\n<tr>\n<td data-sheets-value=\"{&quot;1&quot;:2,&quot;2&quot;:&quot;t-sne-Algorithmus&quot;}\" data-sheets-hyperlink=\"https:\/\/liora.io\/de\/t-sne-algorithmus\"><a href=\"https:\/\/liora.io\/de\/t-sne-algorithmus\" target=\"_blank\" rel=\"noopener\">t-sne-Algorithmus<\/a><\/td>\n<\/tr>\n<tr>\n<td data-sheets-value=\"{&quot;1&quot;:2,&quot;2&quot;:&quot;CAH Algorithmus ML Clustering&quot;}\" data-sheets-hyperlink=\"https:\/\/liora.io\/de\/machine-learning-clustering-fokus-auf-den-cah-algorithmus\"><a href=\"https:\/\/liora.io\/de\/machine-learning-clustering-fokus-auf-den-cah-algorithmus\" target=\"_blank\" rel=\"noopener\">CAH Algorithmus ML Clustering<\/a><\/td>\n<\/tr>\n<tr>\n<td data-sheets-value=\"{&quot;1&quot;:2,&quot;2&quot;:&quot;3 ML Algorithmen die du kennen solltest&quot;}\" data-sheets-hyperlink=\"https:\/\/liora.io\/de\/3-machine-learning-algorithmen-fuer-deinen-job\"><a href=\"https:\/\/liora.io\/de\/3-machine-learning-algorithmen-fuer-deinen-job\" target=\"_blank\" rel=\"noopener\">3 ML Algorithmen die du kennen solltest<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Die beste Pipeline finden mit TPOT<\/h3>\nNachdem wir nun verstanden haben, was <strong>TPOT<\/strong> ist und warum es n\u00fctzlich ist, werden wir uns ansehen, wie man es einrichtet und benutzt.\n\n?<strong>Zur Erinnerung:<\/strong> TPOT basiert auf scikit-learn, was den Code vertraut macht, wenn du diese Bibliothek schon einmal benutzt hast.\n<ol>\n \t<li>Beginne mit dem Importieren der TPOT-Module und anderer Module, die du brauchst, um dein Modell zu definieren: &#8218;pip install tpot&#8216;.\nW\u00e4hrend des Schrittes der Datenumwandlung musst du die Zielvariable unbedingt umbenennen und ihr den Namen &#8218;class&#8216; geben.<\/li>\n \t<li>Da TPOT nur Daten im numerischen Format ber\u00fccksichtigt, ist es notwendig, die notwendigen Transformationen auf die erkl\u00e4renden Variablen anzuwenden.<\/li>\n \t<li>Nachdem du deinen Datensatz in einen Trainings- und einen Testsatz aufgeteilt hast, kannst du deinen TPOT-Klassifikator und seine Parameter definieren.<\/li>\n \t<li>Um TPOT auf deinen Datensatz anzuwenden, musst du nur die Methode .fit() verwenden.\nSobald die Berechnung abgeschlossen ist, siehst du als Output die beste Pipeline f\u00fcr deinen Datensatz.<\/li>\n \t<li>Du kannst dann die Methode .score() verwenden, um die Leistung des Modells zu messen, das TPOT ausgew\u00e4hlt hat.<\/li>\n<\/ol>\nIm Folgenden findest du ein Beispiel f\u00fcr die Erstellung einer Pipeline mithilfe von TPOT :\n\n# F\u00fcr die Klassifizierung\n\nfrom tpot import TPOTClassifier.\n\n# F\u00fcr die Regression\n\nfrom tpot import TPOTRegressor\n\nfrom sklearn.model_selection import train_test_split\n\n# Stellt den TPOTClassifier ein.\n\ntpot_classification = TPOTClassifier(verbosity=2, max_time_mins=2, max_eval_time_mins=0.04, population_size=40).\n\n# Einrichten des TPOTRegressors.\n\ntpot_regression = TPOTRegressor(generations=5, population_size=50, scoring=&#8217;neg_mean_absolute_error&#8216;, cv=cv, verbosity=2, random_state=1, n_jobs=-1)\n\n# Anwendung von TPOT auf unseren Zugdatensatz.\n\ntpot_classification.fit(X_train, y_train)\n\ntpot_regression.fit(X_train, y_train)\n\n# Berechnet die Rate der guten Vorhersagen.\n\ntpot.score(X_test,y_test)\n\n# Extrahiere den von TPOT erzeugten Code, um die erstellte Pipeline zu ver\u00e4ndern.\n\ntpot.export(&#8218;tpot_titanic_pipeline.py&#8216;)\n<h3>Fazit<\/h3>\nTPOT ist ein sehr n\u00fctzliches Werkzeug, um ein erstes optimiertes Modell zu finden. Die resultierende Pipeline muss sicherlich noch einmal \u00fcberarbeitet werden, bevor sie in Produktion gehen kann. Um erste Ergebnisse zu erzielen, ist dieses Tool jedoch mehr als ausreichend und wird dir viel Zeit sparen.\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex is-content-justification-center\"><div class=\"wp-block-button \"><a class=\"wp-block-button__link wp-element-button \" href=\"https:\/\/liora.io\/de\/unsere-aus-und-weiterbildungen\">TPOT lernen<\/a><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bevor ein Machine-Learning-Modell in Produktion gehen kann, muss zun\u00e4chst das am besten geeignete Modell bestimmt werden, die optimalen Parameter ausgew\u00e4hlt werden usw. Dies sind redundante Vorg\u00e4nge, die auf verschiedene Projekte angewendet werden. W\u00e4re es nicht einfacher, diese Prozesse zu automatisieren? Hier kommt TPOT ins Spiel. Was ist TPOT ? TPOT ist eine Open-Source-Bibliothek, die f\u00fcr [&hellip;]<\/p>\n","protected":false},"author":78,"featured_media":176635,"comment_status":"open","ping_status":"open","sticky":false,"template":"elementor_theme","format":"standard","meta":{"_acf_changed":false,"editor_notices":[],"footnotes":""},"categories":[2472],"class_list":["post-176634","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-data-ki"],"acf":[],"_links":{"self":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/176634","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/users\/78"}],"replies":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/comments?post=176634"}],"version-history":[{"count":1,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/176634\/revisions"}],"predecessor-version":[{"id":217525,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/176634\/revisions\/217525"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/media\/176635"}],"wp:attachment":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/media?parent=176634"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/categories?post=176634"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}