Untitled
unknown
plain_text
a year ago
1.9 kB
5
Indexable
import numpy as np import matplotlib.pyplot as plt from matplotlib.colors import ListedColormap from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.neighbors import KNeighborsClassifier from sklearn.metrics import accuracy_score # Load the Iris dataset iris = load_iris() X = iris.data[:, :2] # Using only the first two features for visualization y = iris.target # Split the dataset into training and test sets X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42) # Initialize the KNN classifier knn = KNeighborsClassifier(n_neighbors=3) # Fit the classifier to the training data knn.fit(X_train, y_train) # Predict the classes for the test set y_pred = knn.predict(X_test) # Calculate the accuracy of the classifier accuracy = accuracy_score(y_test, y_pred) print(f"Accuracy: {accuracy}") # Plot the decision boundaries cmap_light = ListedColormap(['#FFAAAA', '#AAFFAA', '#AAAAFF']) cmap_bold = ListedColormap(['#FF0000', '#00FF00', '#0000FF']) x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1 y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1 xx, yy = np.meshgrid(np.arange(x_min, x_max, 0.01), np.arange(y_min, y_max, 0.01)) Z = knn.predict(np.c_[xx.ravel(), yy.ravel()]) Z = Z.reshape(xx.shape) plt.figure(figsize=(8, 6)) plt.pcolormesh(xx, yy, Z, cmap=cmap_light) # Plot the training points plt.scatter(X_train[:, 0], X_train[:, 1], c=y_train, cmap=cmap_bold, edgecolor='k', s=20, label='Training data') # Plot the test points plt.scatter(X_test[:, 0], X_test[:, 1], c=y_test, cmap=cmap_bold, edgecolor='k', s=30, marker='s', label='Test data') plt.xlim(xx.min(), xx.max()) plt.ylim(yy.min(), yy.max()) plt.xlabel('Sepal length') plt.ylabel('Sepal width') plt.title('KNN classification (k=3)') plt.legend() plt.show()
Editor is loading...
Leave a Comment