Machine Learning – kurz & gut. Oliver Zeigermann. Читать онлайн. Newlib. NEWLIB.NET

Автор: Oliver Zeigermann
Издательство: Bookwire
Серия: kurz & gut
Жанр произведения: Математика
Год издания: 0
isbn: 9783960105121
Скачать книгу

      clf_sepal.score(X_train_sepal_only, y_train)

      > 0.9555555555555556

      clf_sepal.score(X_test_sepal_only, y_test)

      > 0.80000000000000004

      Das passt zu unserem Eindruck aus den Grafiken: Für die Trainingsdaten sieht es nicht schlecht aus (95% passend), aber die Testdaten liefern mit nur 80% Genauigkeit kein gutes Bild ab.

      Das Bild des Overfittings verfestigt sich hier. Unser Modell ist also zu speziell und zu komplex. Es passt sich zu genau den Trainingsdaten an und ist dann nicht mehr allgemein genug für die Testdaten.

       Underfitting

      Gut, dann also ein einfacheres Modell? Erstaunlicherweise bekommen wir das hin, indem wir nicht nur die Nähe zu einem einzigen Nachbarn bei der Vorhersage in Erwägung ziehen, sondern die Nähe mehrerer. Wir probieren einmal zehn Nachbarn aus:

      clf_sepal_10 = neighbors.KNeighborsClassifier(10)

      Abbildung 2-4 zeigt die passende Grafik für die Trainingsdaten, an der man schön die viel sanfteren Übergänge der Decision Boundaries sehen kann.

       Abbildung 2-4: Glatte Decision Boundaries, aber dieses Mal sogar schwach für die Trainingsdaten

      Leider kann man genauso schön sehen, dass nicht einmal die Trainingsdaten gut vorhergesagt werden können. Wir haben es jetzt also mit Underfitting zu tun. Von Underfitting spricht man, wenn ein Modell zu einfach ist und nicht einmal die Trainingsdaten annähernd reproduzieren kann.

      Das bestätigen uns auch die Scores, die für Trainings- und Testdaten ähnlich schwach sind:

      clf_sepal_10.score(X_train_sepal_only, y_train)

      > 0.80000000000000004

      clf_sepal_10.score(X_test_sepal_only, y_test)

      > 0.76666666666666672

      Der Sweet Spot liegt irgendwo zwischen dem zu komplexen und dem zu einfachen Modell. Wir verraten dir jetzt schon einmal: Egal wie wir unser Modell hier anpassen, wir bekommen nie gute Ergebnisse. Das liegt daran, dass dieser Satz an Features einfach nicht ausreicht, um die einzelnen Arten voneinander zu trennen. Nichts zu machen. In der Praxis ist so etwas ernüchternd. Wenn du nicht die richtigen, zu schlechte oder zu wenige Daten hast, kannst du noch so schlau sein, du wirst nie zu guten Ergebnissen kommen. Mehr dazu findest du in Kapitel 3, Datenimport und -vorbereitung, und Kapitel 5, Feature-Auswahl.

       Eine bessere Feature-Auswahl

      Umso erstaunlicher ist es, dass wir mit den Petal-Features sehr viel weiterkommen und fast Werte erzielen wie für alle vier Features zusammen. Wir bleiben bei zehn Nachbarn und bekommen diese Decision Boundaries, die wir in Abbildung 2-5 zuerst zusammen mit den Trainingsdaten anzeigen.

       Abbildung 2-5: Petal-Features-Decision-Boundaries mit Trainingsdaten

      Du kannst glatte Übergänge sehen und ebenso nur geringe Fehler bei den beiden Klassen in der Mitte und rechts. Das spiegelt sich auch in den Scores wider:

      clf_petal_10.score(X_train_petal_only, y_train)

      > 0.96666666666666667

      Nicht perfekt, aber sehr gut, und vor allem sehr ähnliche Scores bei den Testdaten:

      clf_petal_10.score(X_test_petal_only, y_test)

      > 0.94999999999999996

      In Abbildung 2-6 kannst du nun noch einmal dieselben Decision Boundaries sehen, dieses Mal aber mit den Testdaten. An der Decision Boundary rechts kann es keine glatte Grenze geben, die sowohl für die Trainingsdaten als auch für die Testdaten gute Ergebnisse liefert.

       Abbildung 2-6: Petal-Features: Decision Boundaries mit Testdaten

      Das Erstaunliche und Bemerkenswerte hier: Wir haben zwar wieder nur zwei Features verwendet, aber dieses Mal viel bessere Ergebnisse bekommen. Wir lernen daraus, dass es nicht nur auf die Menge der Features ankommt, sondern auch darauf, welche Features man auswählt. Hier hatten wir nur mehr oder weniger Glück mit der Auswahl, wie man das aber systematisch macht und warum das hier so gut geklappt hat, lernst du in Kapitel 5, Feature-Auswahl, und Kapitel 6, Modellvalidierung.

      Die hier erklärte Nearest Neighbors Classification ist relativ einfach, aber erstaunlich häufig ausreichend. In Kapitel 4, Supervised Learning, zeigen wir dir weitere Lernstrategien, die grundsätzlich anders funktionieren.

      Wir hoffen zudem, auf die theoretisch anspruchsvolleren Kapitel 5 und Kapitel 6 neugierig gemacht zu haben. Wie wir trainieren und wie wir Features auswählen, ist offensichtlich essenziell für unseren Erfolg.

       Weiterführende Links

       Jupyter Notebooks: https://jupyter.org/

       Colab Notebooks: https://colab.research.google.com

      Конец ознакомительного фрагмента.

      Текст предоставлен ООО «ЛитРес».

      Прочитайте эту книгу целиком, купив полную легальную версию на ЛитРес.

      Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным