spu icon indicating copy to clipboard operation
spu copied to clipboard

使用 SPU 计算 ANOVA F 统计量

Open Candicepan opened this issue 11 months ago • 5 comments

此 ISSUE 为 隐语开源共建计划(SecretFlow Open Source Contribution Plan,简称 SF OSCP)任务 ISSUE,欢迎社区开发者参与共建~ 若有感兴趣想要认领的任务,但还未报名,辛苦先完成报名进行哈~

任务介绍

  • 任务名称:使用SPU计算ANOVA F统计量
  • 技术方向:SPU/SML
  • 任务难度:进阶🌟🌟
  • 任务完成时间:4周

详细要求

  • 安全性(尽量少 reveal)
  • 功能性:同时返回F统计量和对应的p value
  • 正确性:与sklearn的结果数值上基本一致(在可接受误差范围内)
  • 代码规范:Python 代码需要使用 black+isort 进行格式化(流水线包含代码规范检查卡点)
  • 提交说明:关联该 isuue 并提交代码至 https://github.com/secretflow/spu/tree/main/sml(具体提交文件夹可与reviewer讨论)
  • 特殊说明:若某个特性有特殊的限制,如需要 FM128,需要更多 fxp 等需要在注释文档中明确说明

能力要求

  • 熟悉经典的统计学理论
  • 熟悉 JAX 或 NumPy,可以使用 NumPy 实现算法

操作说明

  • 可参考sklearn中的说明: https://scikit-learn.org/stable/modules/classes.html#module-sklearn.feature_selection
  • 操作指引:https://www.secretflow.org.cn/docs/spu/latest/en-US/getting_started/tutorials/develop_your_first_mpc_application
  • 范例:https://github.com/secretflow/spu/blob/main/sml/linear_model/simple_sgd.py
  • 可参考隐语mooc2期视频:
    • https://www.bilibili.com/video/BV1ba4y1S73z/?spm_id_from=333.788
    • https://www.bilibili.com/video/BV1Qe411D7MG/?spm_id_from=333.788
  • 贡献指引文档: https://github.com/secretflow/spu/blob/main/sml/development.md

Candicepan avatar Mar 08 '24 06:03 Candicepan

Give it to me.

lizzy-0323 avatar May 08 '24 04:05 lizzy-0323

Give it to me.

感谢认领呀,任务完成过程中是有遇到问题可以在 issue 上直接反馈,也可以添加小助手微信:SecretFlow04 进行沟通 加入 OSCP 专属群聊,期待您的PR~

Yeekin-GYJ avatar May 08 '24 04:05 Yeekin-GYJ

我想问一下,这里f统计量的计算,应该是首先对数据按照特征划分,然后每个特征再按照label分成多个class进行anova统计量的计算,这样的理解对吗?

lizzy-0323 avatar May 17 '24 09:05 lizzy-0323

我想问一下,这里f统计量的计算,应该是首先对数据按照特征划分,然后每个特征再按照label分成多个class进行anova统计量的计算,这样的理解对吗?

hi,anova的计算基本是先根据class划分group,然后计算统计量即可,至于你说的按照特征划分我觉得是没必要手动操作的,因为整个计算过程显然都是可以向量化的。

deadlywing avatar May 20 '24 03:05 deadlywing

经沟通该任务回收,欢迎其他小伙伴认领~

Yeekin-GYJ avatar Jun 27 '24 08:06 Yeekin-GYJ