Tabnet 分类器预测返回 0 和 1 值
Posted
技术标签:
【中文标题】Tabnet 分类器预测返回 0 和 1 值【英文标题】:Tabnet Classifier predictions returning 0 and 1 values 【发布时间】:2022-01-16 22:19:47 【问题描述】:我正在尝试使用 tabnet 构建分类模型。我想输出 0 和 1 的概率(即 0 和 1 之间的值)。我成功地训练了模型,但预测函数只返回 0 和 1,我不知道如何检查概率。你能帮我吗?这是我正在使用的代码:
clf = TabNetClassifier(
optimizer_fn=torch.optim.Adam,
optimizer_params=dict(lr=0.001),
scheduler_params="step_size":50,
"gamma":0.9,
scheduler_fn=torch.optim.lr_scheduler.StepLR,
mask_type='sparsemax',
seed = 7
)
MAX_EPOCHS = 1000
BATCH_SIZE = int(4096*4)
VIRTUAL_BATCH_SIZE = int(256*4)
hist = clf.fit(
X_train=X_train.values, y_train=y_train.values,
eval_set=[
# (X_train.values, y_train.values),
(X_valid.values, y_valid.values)
],
eval_name=[
'valid'
],
eval_metric=['accuracy','auc'],
max_epochs=MAX_EPOCHS,
patience=15,
batch_size=BATCH_SIZE,
virtual_batch_size=VIRTUAL_BATCH_SIZE,
num_workers=0,
weights=1,
drop_last=False,
)
predictions = clf.predict(X_test)
【问题讨论】:
【参考方案1】:不是 100% 肯定,但如果类似于 sklearn 应该只是:
predictions = clf.predict_proba(X_test)
【讨论】:
这确实奏效了山姆。非常感谢!因缺少 TabNet 文档而苦苦挣扎。 没问题,我自己快速查看了文档,我觉得奇怪的是它没有显示可用的方法,所以只是一个幸运的猜测!我认为关键是“TabNet 现在与 scikit 兼容,训练 TabNetClassifier 或 TabNetRegressor 真的很容易。”这意味着它应该继承自 scikit 分类器并使用与这些分类器相同的语法。以上是关于Tabnet 分类器预测返回 0 和 1 值的主要内容,如果未能解决你的问题,请参考以下文章