ValueError: X имеет 156 функций, но CustomLogisticReгрессия ожидает 157 функций в качестве входных данных
из этого кода:
Код: Выделить всё
top_k_indices, top_k_probs = clf.predict_top_k(test, k=12)
- Проблема, скорее всего, связана с моей единственной горячей кодировкой. Я знаю это, потому что перед применением OHE количество столбцов в обучении и тесте одинаково.
- Я уже добавил параметр handle_unknown = 'ignore' в свой экземпляр OHE, что должно означать что новые невидимые категории в тестовом наборе не должны быть проблемой.
- Я пытался сравнить функции, сгенерированные OHE, при их применении к кадру данных поезда и тестовому набору данных - но это оказалось быть бесполезным методом - поскольку handle_unknown = Параметр «игнорировать» просто устанавливает новые невидимые категории в новый столбец, в котором все нули. (Это может показаться новой функцией, но, поскольку все значения равны 0, это не имеет значения)
- Я не думаю, что проблема связана с удалением столбцов между поездом и тестом, так как я удаляю все одни и те же столбцы.
импортировать панды как pd
импортировать matplotlib.pyplot как plt
от sklearn.impute import SimpleImputer
импортировать numpy как np
customers = pd.read_csv(path)
products = pd.read_csv(path)
Подробнее здесь: https://stackoverflow.com/questions/792 ... atch-issue