Menu
CoddyTech

Rückblick: Wein-Nachbarn

Teil des Abschnitts Überwachtes Lernen der Machine Learning-Journey von Coddy. Lektion 10 von 58.

challenge icon

Aufgabe

Einfach

Zeichne eine Karte wie die erste in diesem Kapitel, für Wein. Der Starter teilt 178 Weine auf (zwei Merkmale, Rebsorten 0 bis 2), listet ks auf und beschriftet das Diagramm.

  1. Skaliere beide Datensätze und passe die Skalierung an die Trainingsweine an.
  2. Gib das k mit der besten Testgenauigkeit aus (vorerst: Kapitel 7 hat einen faireren Prüfer).
  3. Fülle mit diesem k die Karte: Raster xx, yy, 100 mal 100, -3 bis 3 in beide Richtungen, Ergebnisse in zz.
  4. Stelle die skalierten Trainingsweine darüber als Streudiagramm dar, beschriftet mit names; füge eine Legende hinzu.

Ausgehend von Alkohol und Flavonoiden:

Best k: 13 (test accuracy 0.956)

Eine Weinkarte aus Alkohol und Flavonoiden, beide skaliert: links ein orangefarbener Bereich, oben rechts ein blauer Bereich und darunter ein grüner Bereich, mit den Trainingsweinen jeder Klasse darüber und einer Legende

Coddy beschreibt deine Karte.

Probier es selbst

import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_wine
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.preprocessing import StandardScaler

# 178 Weine aus drei Rebsorten, Klassen 0, 1, 2
wine = load_wine()
# Spalten 6 und 12: flavanoids und Prolin
X = wine.data[:, [6, 12]]
y = wine.target
names = ["cultivar A", "cultivar B", "cultivar C"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
ks = range(1, 32, 2)  # k = 1, 3, 5, ..., 31

fig, ax = plt.subplots()
ax.set_title("Wine Neighbors")
ax.set_xlabel("flavanoids (scaled)")
ax.set_ylabel("proline (scaled)")

# Schreibe deinen Code unten

Alle Lektionen in Überwachtes Lernen

Übe selbstständig: Online-Python-Compiler