Последние пару недель я практиковал некоторые алгоритмы машинного обучения и методы обработки данных, и я столкнулся с проблемой, с которой не могу разобраться.Я уже искал другие подобные вопросы SO, но не нашел.
У меня есть следующее ядро с Аутентификацией банкнот из набора данных UCI, и я не понимаю, почему я получаю одинаковое количество баллов за точность, отзыв и F1.Я делаю что-то, что не должно быть сделано?
import os
import numpy as np
import pandas as pd
bank_df = pd.read_csv("../input/bank-note-authentication-uci-data/BankNote_Authentication.csv")
bank_df.head()
bank_df.info() # No null values.
bank_df.describe() # Already scaled because the dataset was built
# using Wavelets.
# Splitting 'bank_df' in attributes and label.
y_train = bank_df["class"]
X_train = bank_df.drop("class", axis=1)
from sklearn.linear_model import SGDClassifier
sgd_clf = SGDClassifier(random_state=42)
sgd_clf.fit(X_train, y_train)
from sklearn.model_selection import cross_val_predict
from sklearn.metrics import precision_score, recall_score, f1_score
y_train_predictions = cross_val_predict(sgd_clf, X_train, y_train, cv=3)
print("Precision: {}".format(precision_score(y_train, y_train_predictions)))
print("Recall: {}".format(recall_score(y_train, y_train_predictions)))
print("F1 Score: {}".format(f1_score(y_train, y_train_predictions)))
// Result for all three: 0.9836065573770492