我使用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')发布于 2019-03-15 10:04:41
你不能把一个几乎唯一的分类功能放在一个预测器(自动编码器或其他任何东西)中,并期望它能够工作。
相反,您需要从其中提取有意义的特性,这取决于您想要解决的问题。例如,如果是信用卡号码,您可以添加一个编码卡电路的功能(VISA、Mastercard、American Express、.)。
极限只是你的想象力和领域的知识。
https://stackoverflow.com/questions/55177163
复制相似问题