我正在使用 h2o 自动编码器异常来查找模型中的异常数据,但问题是自动编码器仅接受数字预测器。我的要求是我已经根据 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')