Я хочу оценивать категориальные данные в Python с помощью дерева решений. Я хочу использовать категориальные данные и использовать binning для создания категориальных меток. Должен ли я?
Проблема в том, что get_dummies
возвращает кадр данных, длина которого отличается от заданных значений. Это на две строки короче исходных данных.
Ранее я пытался использовать labelencode, но не сделал этого. Я попробовал форму панд get_dummies, которая стала мне проще.
Я проверил ссылку для функции get_dummies
и искал проблему, но не смог найти, почему длина короче.
Делаем биннинг:
est = bine(n_bins=50, encode='ordinal', strategy='kmeans')
cat_labels = est.fit_transform(np.array(quant_labels).reshape(-1, 1))
Извлечь катерические данные (нужно?):
category = rd.select_dtypes(exclude=['number']).astype("category")
category = category.replace(math.nan, "None")
category = category.replace(0, "None")
Подготовить разделение:
one_hot_features = pd.get_dummies(category[1:-1])
X_train, X_test, y_train, y_test = train_test_split(one_hot_features, cat_labels, test_size = 0.6, random_state = None)
Ошибка:
ValueError: Found input variables with inconsistent number of samples: [1458, 1460]
Правильный размер выборок - 1460. Кодированный one_hot
- это две короткие выборки. Почему так?