Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

您好,请教关于实验复现的问题 #5

Closed
uestcljx opened this issue Nov 20, 2021 · 4 comments
Closed

您好,请教关于实验复现的问题 #5

uestcljx opened this issue Nov 20, 2021 · 4 comments

Comments

@uestcljx
Copy link

您好,我对您这篇工作很感兴趣,最近在复现实验部分,有些问题想请教下:

1)您论文的Appendix CParameter Settings一节中写道:

The number of nodes in logical layers ranges from 16 to 4096 depending on the number of binary features of the data set and the model complexity we need.
请问您是如何根据binary features的数量来确定logical layers的节点数量呢?换句话说,我在调这个参数的时候比较纠结,因为感觉它范围有些大,能请您给点经验吗?

2) 您论文的4.3节展示了模型复杂度和表现的关系。其中模型复杂度是用log(#edges)来表示的,我在代码中似乎没有找到统计边数的对应实现?也可能是我看漏了,恳请您能指出,感谢!

3)另外,可否请问下您在 chessbank-marketing 两个数据集上的参数设置?我在训练chess数据集上的模型时尝试了多种参数组合却依然无法收敛; bank-marketing虽然结果与您论文展示的接近,但是学出的规则却与您在**Figure4(b)**呈现的大相径庭(我学习出的规则完全没有balance这一项)

感谢您的时间 :)

@12wang3
Copy link
Owner

12wang3 commented Nov 21, 2021

您好,感谢对我们工作的关注,以下是解答,希望对你有帮助:
1)因为需要观察不同模型复杂度下RRL的分类效果,因此{16, 32, 64, 128, 256, 512, 1024, 2048, 4096}这些值我都尝试了。如果你现实中调参的话,可以先用128或者256这样的值看下收敛情况,然后决定加宽网络或者收窄网络。
2)统计模型复杂度最简单的方式就是统计rrl.txt中规则里的"&", "|", ")"以及"规则条数",这些加起来就是edge的个数了。
3)不知道你chess的参数设置是什么,你可以试试下面这个,如果这个还不收敛,可能是数据的info文件有问题?chess_e401_bs32_lr0.0005_lrdr0.75_lrde200_wd0.0_ki0_rc1001_useNOTFalse_saveBestTrue_estimatedGradFalse_L10@4096 如果你把epoch设置成1201,loss能最终接近于0。bank-marketing的学得的规则有差异很正常,因为不同的fold划分以及参数设置学得的规则会有差异,并且论文中我只展示了前几条规则,而非全部规则,所以也会产生差异。

@uestcljx
Copy link
Author

uestcljx commented Nov 21, 2021

您好,十分感谢您的回复,您的1)2)很好地解决了我的疑惑!

对于3)我还有一点疑惑想再向您请教一下:您设置binarization层的上下界数量为10,这里我没太明白,因为chess只有离散值特征,而我理解的是binarization层只对连续值特征起作用,所以我这里设置的1,不知是不是我理解有误?另外round_count这个参数在您代码的其他地方似乎没有出现,请问是有什么特别的作用吗?

再次感谢您的回复!

@uestcljx
Copy link
Author

您好,十分感谢您的回复,您的1)2)很好地解决了我的疑惑!

对于3)我还有一点疑惑想再向您请教一下:您设置binarization层的上下界数量为10,这里我没太明白,因为chess只有离散值特征,而我理解的是binarization层只对连续值特征起作用,所以我这里设置的1,不知是不是我理解有误?另外round_count这个参数在您代码的其他地方似乎没有出现,请问是有什么特别的作用吗?

再次感谢您的回复!

我验证发现binarization层用1和10的结果是一样的,然后我猜测round_count这个参数只是简单记录了是第几次实验,方便查找?

@12wang3
Copy link
Owner

12wang3 commented Nov 22, 2021

您好,十分感谢您的回复,您的1)2)很好地解决了我的疑惑!
对于3)我还有一点疑惑想再向您请教一下:您设置binarization层的上下界数量为10,这里我没太明白,因为chess只有离散值特征,而我理解的是binarization层只对连续值特征起作用,所以我这里设置的1,不知是不是我理解有误?另外round_count这个参数在您代码的其他地方似乎没有出现,请问是有什么特别的作用吗?
再次感谢您的回复!

我验证发现binarization层用1和10的结果是一样的,然后我猜测round_count这个参数只是简单记录了是第几次实验,方便查找?

是的,Binarization Layer不会对离散值特征进行划分,因此对于全都是离散值特征的数据集,1和10效果是一样的。round_count这个参数是我调试代码的时候使用的,你可以忽略。

@12wang3 12wang3 closed this as completed Nov 24, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants