H20 Autoencoder Anomaly 只接受数值预测变量
H20 Autoencoder Anomaly only accepting numerical predictors
我正在使用 h2o 自动编码器异常来查找模型中的离群数据,但问题是自动编码器只接受数值预测变量。
我的要求是我已经根据 CardNumber 或商家编号找到异常值。
卡号是 12 位数字(342178901244)并且大部分是唯一的所以它的标称数据我们不能进行热编码以及它会创建许多与唯一卡号一样多的新字段。
所以请提出任何我们可以包含分类数据的方法,我们仍然可以 运行 autoencoder
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')
您不能将几乎唯一的分类特征放入预测器(自动编码器或其他任何东西)中并期望它起作用。
相反,您需要从中提取有意义的特征,这取决于您要解决的问题。例如,如果它是信用卡号,您可以添加对卡电路(VISA、Mastercard、American Express 等)进行编码的功能。
限制只是您对该领域的想象力和知识。
我正在使用 h2o 自动编码器异常来查找模型中的离群数据,但问题是自动编码器只接受数值预测变量。 我的要求是我已经根据 CardNumber 或商家编号找到异常值。 卡号是 12 位数字(342178901244)并且大部分是唯一的所以它的标称数据我们不能进行热编码以及它会创建许多与唯一卡号一样多的新字段。 所以请提出任何我们可以包含分类数据的方法,我们仍然可以 运行 autoencoder
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')
您不能将几乎唯一的分类特征放入预测器(自动编码器或其他任何东西)中并期望它起作用。
相反,您需要从中提取有意义的特征,这取决于您要解决的问题。例如,如果它是信用卡号,您可以添加对卡电路(VISA、Mastercard、American Express 等)进行编码的功能。
限制只是您对该领域的想象力和知识。