Repository navigation
[RFC]: Add batch machine learning algorithms in Javascript and C (tracking issue) #12875
Copy link
Copy link
Open
Description
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: feat: addml/base/loss/float64/hinge#11953 -
ml/base/loss/float64/hinge-gradient: feat: addml/base/loss/float64/hinge-gradient#12216 -
ml/base/loss/float64/log -
ml/base/loss/float64/log-gradient: feat: addml/base/loss/float64/log-gradient#12241 -
ml/base/loss/float64/modified-huber -
ml/base/loss/float64/modified-huber-gradientfeat: addml/base/loss/float64/modified-huber-gradient#13139 -
ml/base/loss/float64/squared-hinge -
ml/base/loss/float64/squared-hinge-gradientfeat: addml/base/loss/float64/squared-hinge-gradient#13192 -
ml/base/loss/float64/squared-error -
ml/base/loss/float64/squared-error-gradientfeat: addml/base/loss/float64/squared-error-gradient#13363 -
ml/base/loss/float64/huber -
ml/base/loss/float64/huber-gradientfeat: addml/base/loss/float64/huber-gradient#13521 -
ml/base/loss/float64/epsilon-insensitive -
ml/base/loss/float64/epsilon-insensitive-gradientfeat: addml/base/loss/float64/epsilon-insensitive-gradient#13249 -
ml/base/loss/float64/squared-epsilon-insensitive -
ml/base/loss/float64/squared-epsilon-insensitive-gradientfeat: addml/base/loss/float64/squared-epsilon-insensitive-gradient#13498
KMeans
-
Metrics enum
-
ml/base/kmeans/metrics: feat: addml/base/kmeans/metrics#10714 -
ml/base/kmeans/metric-str2enum: feat: addml/base/kmeans/metric-str2enum#10842 -
ml/base/kmeans/metric-enum2str: feat: addml/base/kmeans/metric-enum2str#10841 -
ml/base/kmeans/metric-resolve-enum: feat: addml/base/kmeans/metric-resolve-enum#12321 -
ml/base/kmeans/metric-resolve-str: feat: addml/base/kmeans/metric-resolve-str#12322
-
-
Algorithms enum
-
ml/base/kmeans/algorithms: feat: addml/base/kmeans/algorithms#10796 -
ml/base/kmeans/algorithm-str2enum: feat: addml/base/kmeans/algorithm-str2enumandml/base/kmeans/algorithm-enum2str#12119 -
ml/base/kmeans/algorithm-enum2str: feat: addml/base/kmeans/algorithm-str2enumandml/base/kmeans/algorithm-enum2str#12119 -
ml/base/kmeans/algorithm-resolve-enum: feat: addml/base/kmeans/algorithm-resolve-enum#12129 -
ml/base/kmeans/algorithm-resolve-str: feat: addml/base/kmeans/algorithm-resolve-str#12128
-
-
ml/base/kmeans/results/*-
ml/base/kmeans/results/factory: feat: addml/base/kmeans/results/*#12429 -
ml/base/kmeans/results/float32: feat: addml/base/kmeans/results/*#12429 -
ml/base/kmeans/results/float64: feat: addml/base/kmeans/results/*#12429 -
ml/base/kmeans/results/struct-factory: feat: addml/base/kmeans/results/struct-factory#12356 -
ml/base/kmeans/results/to-json: feat: addml/base/kmeans/results/*#12429 -
ml/base/kmeans/results/to-string: feat: addml/base/kmeans/results/*#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: feat: addml/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: feat: add
ml/strided/dkmeans-init-plus-plus#12312 - C : (Blocked by node-addons)
- Javscript: feat: add
-
ml/strided/dkmeans-init-forgy- Javscript (Blocked by
random/strided/sample) - C : (Blocked by node-addons)
- Javscript (Blocked by
-
ml/strided/dkmeans-init-random-partition- Javscript: feat: add
ml/strided/dkmeans-init-random-partition#12819 - C : (Blocked by node-addons)
- Javscript: feat: add
-
ml/strided/dkmeans-compute-centroids- Javscript
- C
-
ml/strided/dkmeans-inertia- Javscript
- C
-
ml/strided/dkmeansld- Javscript: feat: add
ml/cluster/strided/dkmeansld#9703 - C
- Javscript: feat: add
-
ml/strided/dkmeanselk- Javscript
- C
-
ml/kmeans/ctor- Javscript
- C
SGD Classification
-
Loss enum
ml/base/sgd-classification/loss-functionsfeat: addml/base/sgd-classification/loss-functions#13333ml/base/sgd-classification/loss-function-str2enumfeat: add utilities for resolving loss function enumeration constants #13430ml/base/sgd-classification/loss-function-enum2strfeat: add utilities for resolving loss function enumeration constants #13430ml/base/sgd-classification/loss-function-resolve-enumfeat: addml/base/sgd-classification/loss-function-resolve-enum#13473ml/base/sgd-classification/loss-function-resolve-strfeat: addml/base/sgd-classification/loss-function-resolve-str#13471
-
Learning Rate enum
ml/base/sgd-classification/learning-ratesfeat: addml/base/sgd-classification/learning-rates#13377ml/base/sgd-classification/learning-rate-str2enumfeat: add utilities for resolving learning rate enumeration constants #13429ml/base/sgd-classification/learning-rate-enum2strfeat: add utilities for resolving learning rate enumeration constants #13429ml/base/sgd-classification/learning-rate-resolve-enumfeat: addml/base/sgd-classification/learning-rate-resolve-enum#13474ml/base/sgd-classification/learning-rate-resolve-strfeat: addml/base/sgd-classification/learning-rate-resolve-str#13475
-
ml/base/sgd-classification/results/*ml/base/sgd-classification/results/factoryml/base/sgd-classification/results/float32ml/base/sgd-classification/results/float64ml/base/sgd-classification/results/struct-factoryml/base/sgd-classification/results/to-jsonml/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
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Activity
stdlib-bot commentedon Jun 14, 2026
👋 Hi there! 👋
And thank you for opening your first issue! We will get back to you shortly. 🏃 💨
If you have any further questions while waiting for a response, please join our Zulip community to chat with project maintainers and other community members.
feat: add `ml/strided/dkmeans-distance`
feat: add `ml/base/sgd-classification/loss-functions`
feat: add `ml/base/sgd-classification/learning-rates`
feat: add utilities for resolving loss function enumeration constants
feat: add utilities for resolving learning rate enumeration constants
feat: add `ml/base/sgd-classification/learning-rate-resolve-str`
feat: add `ml/base/sgd-classification/loss-function-resolve-str`
feat: add `ml/base/sgd-classification/loss-function-resolve-enum`
feat: add `ml/base/sgd-classification/learning-rate-resolve-enum`
feat: add `ml/base/loss/float64/squared-epsilon-insensitive-gradient`
feat: add `ml/base/loss/float64/squared-error-gradient`
feat: add `ml/base/loss/float64/epsilon-insensitive-gradient`
feat: add `ml/base/sgd-classification/penalties`
feat: add `ml/base/loss/float64/modified-huber-gradient`
feat: add utilities for resolving penalty enumeration constants
feat: add support for `none` to indicate no regularization
feat: add `ml/base/sgd-classification/penalty-resolve-str`
feat: add `ml/base/sgd-classification/penalty-resolve-enum`
feat: add `ml/base/loss/float64/squared-hinge-gradient`
feat: add `ml/base/loss/float64/huber-gradient`
feat: add `ml/base/loss/float64/log-gradient`
feat: add `ml/base/sgd/params/struct-factory`
feat: add `ml/base/sgd/params/*`
AryanSharma48 commentedon Oct 14, 2026
@kgryte I've completed the PRs for the non-gradient
float32loss functions. Since these are the exact canonical counterparts to the gradient versions that were already merged, the logic maps directly and they shouldn't be much of a hassle to review.Feel free to take a look whenever you have the bandwidth!