ValueError: наименее заполненный класс в y имеет только 1 член, чего слишком мало в PyCaret
У меня проблема при работе с PyCaret. Раньше проблем не было.
Но это началось, когда я увеличил выборку данных и сохранил их, используя pandas
и этот вопрос.
Файл здесь.
Затем я прочитал файл в отдельной записной книжке.
import pycaret
from pycaret.utils import version
from pycaret.regression import *
from pycaret.classification import *
# Read clean data
starbucks_days = pd.read_csv('days_smote.csv')
# Drop a column
starbucks_days = starbucks_days.drop(['Unnamed: 0'], axis = 1)
starbucks_days = starbucks_days.drop(['transaction', 'offer_viewed', 'offer_received', 'offer_completed'], axis = 1)
starbucks_days = starbucks_days.drop(['label'], axis = 1)
Я начинаю использовать PyCaret
# Initialize Setup
starbucks_days1 = setup(starbucks_days, target = 'time_completed_viewed', session_id = 123, log_experiment = True, experiment_name = 'days1')
Но получаю ошибку
ValueError: наименее заполненный класс в y имеет только 1 член, что слишком мало. Минимальное количество групп для любого класса не может быть меньше 2.
Эта проблема GitHub дает некоторые подсказки
Я проверяю некоторые параметры
type(starbucks_days)
pandas.core.frame.DataFrame
starbucks_days['time_completed_viewed'].value_counts()
6.000000 1682
12.000000 1503
18.000000 1318
24.000000 1212
174.000000 1068
...
444.107530 1
226.213225 1
411.947513 1
236.001744 1
394.722944 1
Name: time_completed_viewed, Length: 3572, dtype: int64
Любые советы, что мне не хватает? Как я уже сказал, PyCaret отлично работает с простыми CSV-файлами, которые не подвергались избыточной выборке.
1 ответ
В вашем импорте вы импортировали classification
после импорта regression
который перезаписал модуль в среде.
Это похоже на проблему регрессии (непрерывное значение). Вам не нужно импортироватьclassification
.
Избавьтесь от этой строки из своего кода, и она должна работать нормально:
from pycaret.classification import *