H20 Автоэнкодер Аномалия принимает только числовые предикторы - PullRequest
0 голосов
/ 15 марта 2019

Я использую аномалию автоматического кодера воды для нахождения выбросов в моей модели, но проблема заключается в том, что автоматический кодер принимает только числовые предикторы. Мое требование заключается в том, что я должен найти выбросы на основе номера CardNumber или продавца. и Cardnumber 12 цифр (342178901244) и в основном уникален. Так что его номинальные данные, и мы не можем делать горячее кодирование, а также он будет создавать много новых полей, так как уникальной карты нет. Поэтому, пожалуйста, предложите, каким образом мы можем включить категориальные данные, и все же мы можем запустить автоэнкодер

model=H2OAutoEncoderEstimator(activation="Tanh",
                              hidden=[70],
                              ignore_const_cols=False,
                              epochs=40)

model.train(x=predictors,training_frame=train.hex)

#Get anomalous values
test_rec_error=model.anomaly(test.hex,per_feature=True)
train_rec_error=model.anomaly(train.hex,per_feature=True)
recon_error_df['outlier'] = np.where(recon_error_df['Reconstruction.MSE'] > top_whisker, 'outlier', 'no_outlier')

1 Ответ

0 голосов
/ 15 марта 2019

Вы не можете поместить почти уникальную категориальную функцию в предиктор (авто-кодер или что-то еще) и ожидать, что он будет работать.

Вместо этого вам нужно извлечь из него значимые функции, которые зависят от проблемы.Вы хотите решить.Например, если это номер кредитной карты, вы можете добавить функцию, кодирующую схему карты (VISA, Mastercard, American Express, ...).
Ограничение - только ваше воображение и знание домена.

...