stdlib-js / stdlib-js/stdlib

[RFC]: Add batch machine learning algorithms in Javascript and C (tracking issue)

未关闭
#12,875 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
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

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。