Überwachtes Lernen mit scikit-learn
George Boorman
Core Curriculum Manager, DataCamp
Genauigkeit ist eine häufig verwendete Kennzahl bei der Klassifikation
Genauigkeit:
Wie lässt sich die Genauigkeit messen?
Nutzung der Daten, die zur Anpassung des Klassifikators verwendet wurden
NOT: erlaubt keine Rückschlüsse auf Fähigkeit zur Verallgemeinerung
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=21, stratify=y)
knn = KNeighborsClassifier(n_neighbors=6)
knn.fit(X_train, y_train)
print(knn.score(X_test, y_test))
0.8800599700149925
Größeres k = einfacheres Modell = mögliche Unteranpassung
Kleineres k = komplexeres Modell = mögliche Überanpassung
train_accuracies = {} test_accuracies = {} neighbors = np.arange(1, 26)
for neighbor in neighbors:
knn = KNeighborsClassifier(n_neighbors=neighbor)
knn.fit(X_train, y_train)
train_accuracies[neighbor] = knn.score(X_train, y_train) test_accuracies[neighbor] = knn.score(X_test, y_test)
plt.figure(figsize=(8, 6))
plt.title("KNN: Varying Number of Neighbors")
plt.plot(neighbors, train_accuracies.values(), label="Training Accuracy")
plt.plot(neighbors, test_accuracies.values(), label="Testing Accuracy")
plt.legend()
plt.xlabel("Number of Neighbors")
plt.ylabel("Accuracy")
plt.show()
Überwachtes Lernen mit scikit-learn