[RFC]: Add batch machine learning algorithms in Javascript and C (tracking issue)
- 主要语言
- JavaScript
- 星标
- 6k
- 派生
- 1.3k
- 平均合并
- 1 天 3 小时
- 30 天内合并 PR
- 611
描述
### Description
This RFC proposes adding Javascript and C implementation for some batch machine learning algorithms. The purpose of this issue is to serve as a tracking issue for adding Javascript and C implementations.
### Packages
#### Loss functions
- [ ] `ml/base/loss/float64/hinge`: #11953
- [x] `ml/base/loss/float64/hinge-gradient`: #12216
- [ ] `ml/base/loss/float64/log`
- [x] `ml/base/loss/float64/log-gradient`: #12241
- [ ] `ml/base/loss/float64/modified-huber`
- [x] `ml/base/loss/float64/modified-huber-gradient` #13139
- [ ] `ml/base/loss/float64/squared-hinge`
- [x] `ml/base/loss/float64/squared-hinge-gradient` #13192
- [ ] `ml/base/loss/float64/squared-error`
- [x] `ml/base/loss/float64/squared-error-gradient` #13363
- [ ] `ml/base/loss/float64/huber`
- [x] `ml/base/loss/float64/huber-gradient` #13521
- [ ] `ml/base/loss/float64/epsilon-insensitive`
- [x] `ml/base/loss/float64/epsilon-insensitive-gradient` #13249
- [ ] `ml/base/loss/float64/squared-epsilon-insensitive`
- [x] `ml/base/loss/float64/squared-epsilon-insensitive-gradient` #13498
#### KMeans
- [x] Metrics enum
- [x] `ml/base/kmeans/metrics`: #10714
- [x] `ml/base/kmeans/metric-str2enum`: #10842
- [x] `ml/base/kmeans/metric-enum2str`: #10841
- [x] `ml/base/kmeans/metric-resolve-enum`: #12321
- [x] `ml/base/kmeans/metric-resolve-str`: #12322
- [x] Algorithms enum
- [x] `ml/base/kmeans/algorithms`: #10796
- [x] `ml/base/kmeans/algorithm-str2enum`: #12119
- [x] `ml/base/kmeans/algorithm-enum2str`: #12119
- [x] `ml/base/kmeans/algorithm-resolve-enum`: #12129
- [x] `ml/base/kmeans/algorithm-resolve-str`: #12128
- [ ] `ml/base/kmeans/results/*`
- [ ] `ml/base/kmeans/results/factory`: #12429
- [ ] `ml/base/kmeans/results/float32`: #12429
- [ ] `ml/base/kmeans/results/float64`: #12429
- [x] `ml/base/kmeans/results/struct-factory`: #12356
- [ ] `ml/base/kmeans/results/to-json`: #12429
- [ ] `ml/base/kmeans/results/to-string`: #12429
- [ ] `ml/base/kmeans/stats/*`
- [ ] `ml/base/kmeans/stats/factory`
- [ ] `ml/base/kmeans/stats/float32`
- [ ] `ml/base/kmeans/stats/float64`
- [ ] `ml/base/kmeans/stats/struct-factory`: #12856
- [ ] `ml/base/kmeans/stats/to-json`
- [ ] `ml/base/kmeans/stats/to-string`
- [ ] `ml/strided/dkmeans-init-plus-plus`
- [ ] Javscript: #12312
- [ ] C : (Blocked by node-addons)
- [ ] `ml/strided/dkmeans-init-forgy`
- [ ] Javscript (Blocked by `random/strided/sample`)
- [ ] C : (Blocked by node-addons)
- [ ] `ml/strided/dkmeans-init-random-partition`
- [ ] Javscript: #12819
- [ ] C : (Blocked by node-addons)
- [ ] `ml/strided/dkmeans-compute-centroids`
- [ ] Javscript
- [ ] C
- [ ] `ml/strided/dkmeans-inertia`
- [ ] Javscript
- [ ] C
- [ ] `ml/strided/dkmeansld`
- [ ] Javscript: #9703
- [ ] C
- [ ] `ml/strided/dkmeanselk`
- [ ] Javscript
- [ ] C
- [ ] `ml/kmeans/ctor`
- [ ] Javscript
- [ ] C
#### SGD Classification
- [x] Loss enum
- `ml/base/sgd-classification/loss-functions` #13333
- `ml/base/sgd-classification/loss-function-str2enum` #13430
- `ml/base/sgd-classification/loss-function-enum2str` #13430
- `ml/base/sgd-classification/loss-function-resolve-enum` #13473
- `ml/base/sgd-classification/loss-function-resolve-str` #13471
- [x] Learning Rate enum
- `ml/base/sgd-classification/learning-rates` #13377
- `ml/base/sgd-classification/learning-rate-str2enum` #13429
- `ml/base/sgd-classification/learning-rate-enum2str` #13429
- `ml/base/sgd-classification/learning-rate-resolve-enum` #13474
- `ml/base/sgd-classification/learning-rate-resolve-str` #13475
- [ ] `ml/base/sgd-classification/results/*`
- `ml/base/sgd-classification/results/factory`
- `ml/base/sgd-classification/results/float32`
- `ml/base/sgd-classification/results/float64`
- `ml/base/sgd-classification/results/struct-factory`
- `ml/base/sgd-classification/results/to-json`
- `ml/base/sgd-classification/results/to-string`
- [ ] `ml/strided/dsgd-trainer`
- [ ] Javscript
- [ ] C
- [ ] `ml/strided/dsgd-classification-binary`
- [ ] Javscript
- [ ] C
- [ ] `ml/strided/dsgd-classification-multiclass`
- [ ] Javscript
- [ ] C
- [ ] `ml/sgd-classification/ctor`
- [ ] Javscript
- [ ] C
- [ ] `ml/perceptron/ctor`
- [ ] Javscript
- [ ] C
贡献指南
调研方向
这是一个涵盖 ml/base、ml/strided、ml/kmeans、ml/sgd-classification 和 ml/perceptron 下各 package 的广泛跟踪 RFC。首先选择一个未勾选且未标记为 blocked 的项目,然后在存在引用 issue 时检查该 issue,并与附近已完成的 checklist 条目进行比较。完成意味着所选的 JavaScript 或 C 实现已经完成,并且相应的 checklist 条目可以标记为已完成。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- c, javascript
- 领域
- machine-learning
- Issue 类型
- 功能
- 难度
- 5/5
- 预计耗时
- 一周以上
- 活跃度
- 冷清
- 描述清晰度
- 基本清楚
- 新手友好度
- 20/100