我正在使用H2O自动编码器异常来查找模型中的离群数据,但问题是自动编码器仅接受数值预测指标。 我的要求是,我发现基于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')
您不能将几乎唯一的分类功能放入预测器(自动编码器或其他任何东西)中,并期望它可以正常工作。
相反,您需要从中提取有意义的功能,这取决于要解决的问题。例如,如果是信用卡号极限只是您对域的想象力和知识。