Я написал несколько python кодов для соответствия известному набору данных радужной оболочки с моделью KNN, я попытался с другим значением k, например, k = 2, k = 3, k = 5, насколько я понимаю, с этими различными значениями k, Матрица путаницы, оценка точности и значение отчета о классификации должны быть разными, однако, какое бы значение я не давал, выходные данные статистических метрик одинаковы, также «точность», «отзыв» и «оценка f1» равны 1,00. , как на снимке коды и вывод . Я что-то здесь упустил? Спасибо!
from sklearn.model_selection import train_test_split
# first split the dataset into its attributes and labels
X = data.iloc[:, :-1].values
y = data.iloc[:, 4].values
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.30,
random_state=42)
from sklearn.neighbors import KNeighborsClassifier
# Instantiate learning model (k = 5)
clf = KNeighborsClassifier(n_neighbors=5)
# Fitting the model
clf.fit(X_train, y_train)
# Predicting the Test set results
y_pred = clf.predict(X_test)
print(y_pred)
from sklearn.metrics import classification_report, confusion_matrix, accuracy_score
print(confusion_matrix(y_test, y_pred))
print(accuracy_score(y_test, y_pred))
print("classification report:---------------------------\n")
print(classification_report(y_test, y_pred, labels=iris.target))