ValueError: pos_label=1 не является допустимой меткой: она должна быть одной из [0]Python

Программы на Python
Ответить
Anonymous
 ValueError: pos_label=1 не является допустимой меткой: она должна быть одной из [0]

Сообщение Anonymous »

При выполнении этого кода:

Код: Выделить всё

import matplotlib.pyplot as plt
import numpy as np

from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import LearningCurveDisplay, train_test_split

from imblearn.datasets import fetch_datasets

def load_dataset(dataset):
data = fetch_datasets()[dataset]
data.target = np.where(data.target < 0, 0, 1)
return data.data, data.target

X, y = load_dataset("webpage")

X_train, X_test, y_train, y_test = train_test_split(
X,
y,
test_size=0.3,
random_state=0,
)

model = RandomForestClassifier(max_depth=3, random_state=0)

train_sizes = [0.55, 0.78, 1.0]

LearningCurveDisplay.from_estimator(
model,
X, y,
train_sizes=train_sizes,
cv=10,
scoring='average_precision',
line_kw = {"marker": "o"},
)

Я получаю следующую ошибку:

Код: Выделить всё

ValueError: pos_label=1 is not a valid label: It should be one of [0]
Я понимаю, что это потому, что набор данных несбалансирован, и тогда, может быть, ему не хватает значений класса меньшинства в оценочной таблице? Но затем я попробовал стратифицированную перекрестную проверку с cv=5 или 10 и получил ту же ошибку, поэтому я немного запутался.
Откуда она берется и как ее предотвратить?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»