H20自动编码器异常仅接受数字预测器

时间:2019-03-15 06:56:13

标签: machine-learning h2o sklearn-pandas predictive h2o4gpu

我正在使用h2o自动编码器异常来查找模型中的异常数据,但问题是自动编码器仅接受数字预测变量。     我的要求是我已经根据CardNumber或商家编号找到了异常值。     并且Cardnumber是12位数字(342178901244),并且大多数情况下都是唯一的,因此其名义数据以及我们无法进行热编码,因为它会创建许多与唯一的card no.s一样多的新字段。     因此,请提出任何可以包括分类数据的方式,并且仍然可以运行自动编码器

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 :(得分:0)

您不能在预测变量(自动编码器或其他任何事物)中放置几乎唯一的分类功能,而不能期望它起作用。

相反,您需要从中提取有意义的功能,具体取决于您要解决的问题。例如,如果它是信用卡号,则可以添加对卡电路进行编码的功能(VISA,万事达卡,美国运通卡...)。
限制仅仅是您对域的想象力和知识。