-
Notifications
You must be signed in to change notification settings - Fork 105
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
在 SML 中实现预处理算法 #382
Comments
winnylyc Give it to me |
先尝试实现labelBinarizer,Binarizer和Normalizer |
感谢您的认领~辛苦先完成活动报名呀~ https://www.wjx.top/vm/QKio0dq.aspx# |
抱歉,我应该是在12月31号已经完成报名了,请问我的报名是有问题吗 |
sorry~报名时候填写的 GitHub id 跟目前的不一致 所以我们没有识别出来呢 sorry~ 小助手来联系你跟你确认哈~ |
hello,感谢认领,您可以直接实现,完成后发起PR哈~ |
BTW,可以在SML目录下新建一个preprocessing目录,然后将代码放进去即可,可以参考其他目录的组织方式,同时实现对应功能的test和emulation,并以bazel进行编排哈~ |
好的,感谢指导 |
目前在实现labelBinarizer的过程中,发现难点在于生成dynamic shape的矩阵,具体来说要生成一个shape为(n_samples, n_classes)的矩阵,而这个n_classes是一个根据输入矩阵中元素的值计算出的变量。 |
Hi,确实,dynamic shape无法实现。 最后您在代码的注释里讲清楚这些信息即可。 |
好的,感谢您的回复。 |
[UPDATE]: 想认领的同学需一次性实现上述3个功能~ |
winnylyc Give it to me |
实现MinMaxScaler,MaxAbsScaler,KBinsDiscretizer |
hello,,感谢认领,,代码也放在之前的位置即可~ |
好的 |
不好意思,打扰一下。我在实现KBinsDiscretizer的uniform模式的时候implement了一个能够大大减少开销的方法,但是因为精度问题无法得出预期的结果。 我优化后的算法为使用MinMaxScale将X中的值映射到[0, n_bins]的范围中,然后floor,当然这里会有最大值被映射为n_bins的问题(应该最终取值为n_bins-1),所以这里还需要一个clip操作(比用where的开销小)。 我想请教的有几个问题:
|
关于您尝试的优化:我理解误差的主要原因是因为涉及到了定点数的乘除法,至于结果小于预期,可能是因为truncation。至于缓解,我理解除非计算精度极高,否则不可避免有误差问题。 关于3. 误差产生的原因是在bin的边界可能随机误差不稳定,,我个人感觉这不是一个很好的算法,因为不能对数据分布做太严格的假设。 最后,其实方法1性能较差主要是因为binary search,我理解可以通过简单的比较每个端点然后累加的方式,e.g. 这个的性能应该会好一些,你可以尝试一下~ |
感谢您的思路,给了我非常大的启发。目前已经将binary search优化,并且已经比我之前提出的算法开销更小。 您的使用右移和Xor的思路似乎比较难在SPU中实现(主要是左边补0的右移似乎没有很好的原生操作支持)
这种实现的开销还是比较大 我就基于您的思路再做了一下优化,现在的算法是在element-wise comparison得到[0,1,1]后, 对这个矩阵做sum得到2, 再用n_bins(这里是3)- 2得到index。下面是实现
|
hello,我原本想的是 index = dot([0,1,0], [1,2,3]),这个cost应该比argmax小;不过直接sum确实更好,连内积都省了。 |
任务介绍
详细要求
a. labelBinarizer
b. Binarizer
c. Normalizer
d. MinMaxScaler
e. MaxAbsScaler
f. KBinsDiscretizer
具体功能可参考sklearn中同名class
若有其他建议实现的算法,也可在本 ISSUE 下回复
能力要求
操作说明
认领说明
The text was updated successfully, but these errors were encountered: