Я пытаюсь решить проблему машинного обучения при сердечных заболеваниях, набор данных из kaggle. Затем я попытался разделить данные на набор поездов и тестовый набор, и после этого объединил модели в одну функцию и предсказал, что эта ошибка появляется в блокноте jupyter.
Вот мой код:
# Split data into X and y
X = df.drop("target", axis=1)
y = df["target"]
Разделение
# Split data into train and test sets
np.random.seed(42)
# Split into train & test set
X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.2)
Функция прогнозирования
# Put models in a dictionary
models = {"Logistic Regression": LogisticRegression(),
"KNN": KNeighborsClassifier(),
"Random Forest": RandomForestClassifier()}
# Create a function to fit and score models
def fit_and_score(models, X_train, X_test, y_train, y_test):
"""
Fits and evaluates given machine learning models.
models : a dict of differetn Scikit-Learn machine learning models
X_train : training data (no labels)
X_test : testing data (no labels)
y_train : training labels
y_test : test labels
"""
# Set random seed
np.random.seed(42)
# Make a dictionary to keep model scores
model_scores = {}
# Loop through models
for name, model in models.items():
# Fit the model to the data
model.fit(X_train, y_train)
# Evaluate the model and append its score to model_scores
model_scores[name] = model.score(X_test, y_test)
return model_scores
И когда я запускаю этот код, появляется эта ошибка
model_scores = fit_and_score(models=models,
X_train=X_train,
X_test=X_test,
y_train=y_train,
y_test=y_test)
model_scores
это ошибка
После моего последнего кода
Пожалуйста, перечитайте Как спрашивать, так как казалось бы, что вы упустили некоторые важные моменты при первом прочтении, а именно: «НЕ размещайте изображения кода, данных, сообщений об ошибках и т. д. - скопируйте или напечатайте текст в вопрос» (курсив в оригинале).






Ваши X_train, y_train или оба, похоже, содержат записи, которые не являются числами с плавающей запятой.
В какой-то момент кода попробуйте использовать
X_train = X_train.astype(float)
y_train = y_train.astype(float)
X_test = X_test.astype(float)
y_test = y_test.astype(float)
Либо это сработает, и ошибка исчезнет, либо одно из преобразований завершится ошибкой, и в этот момент вам нужно будет решить, как (и если) вы хотите кодировать данные как числа с плавающей запятой.
Где происходит ошибка?