#machine-learning #h2o #sklearn-pandas #predictive #h2o4gpu
#машинное обучение #h2o #sklearn-pandas #прогностический #h2o4gpu
Вопрос:
Я использую аномалию автоэнкодера h2o для поиска дополнительных данных в моей модели, но проблема в том, что автоэнкодер принимает только числовые предикторы. Мое требование заключается в том, что я должен определять выбросы на основе номера карты или номера продавца. и номер карты состоит из 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:
Вы не можете поместить почти уникальную категориальную функцию в предиктор (автоэнкодер или что-либо еще) и ожидать, что это сработает.
Вместо этого вам нужно извлечь из него значимые функции, которые зависят от проблемы, которую вы хотите решить. Например, если это номер кредитной карты, вы могли бы добавить функцию, кодирующую схему карты (VISA, Mastercard, American Express, …).
Пределом является только ваше воображение и знание предметной области.
Комментарии:
1. Большое спасибо, Марко 🙂
2. Пожалуйста. Пожалуйста, рассмотрите возможность одобрения моего ответа, если он был полезен 🙂