stdlib-js / stdlib-js/stdlib

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

Đang mở
#12,875 1 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
JavaScript
Star
6k
Fork
1.3k
Merge trung bình
1 ngày 3 giờ
Pull request đã merge (30 ngày)
611

Mô tả

### 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

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

This is a broad tracking RFC covering packages under ml/base, ml/strided, ml/kmeans, ml/sgd-classification, and ml/perceptron. Start by selecting one unchecked item that is not marked blocked, then inspect its referenced issue when one exists and compare nearby completed checklist entries. Done means the selected JavaScript or C implementation is completed and the corresponding checklist item can be marked finished.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
c, javascript
Lĩnh vực
machine-learning
Loại issue
Tính năng
Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức độ hoạt động
Ít trao đổi
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
20/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.