Skip to main content

_ferrolearn_rs/
lib.rs

1mod classifiers;
2mod clusterers;
3mod conversions;
4mod extras;
5mod regressors;
6mod transformers;
7
8use pyo3::prelude::*;
9
10#[pymodule]
11fn _ferrolearn_rs(m: &Bound<'_, PyModule>) -> PyResult<()> {
12    // Original 12
13    m.add_class::<regressors::RsLinearRegression>()?;
14    m.add_class::<regressors::RsRidge>()?;
15    m.add_class::<regressors::RsLasso>()?;
16    m.add_class::<regressors::RsElasticNet>()?;
17    m.add_class::<classifiers::RsLogisticRegression>()?;
18    m.add_class::<classifiers::RsDecisionTreeClassifier>()?;
19    m.add_class::<classifiers::RsRandomForestClassifier>()?;
20    m.add_class::<classifiers::RsKNeighborsClassifier>()?;
21    m.add_class::<classifiers::RsGaussianNB>()?;
22    m.add_class::<transformers::RsStandardScaler>()?;
23    m.add_class::<transformers::RsPCA>()?;
24    m.add_class::<clusterers::RsKMeans>()?;
25
26    // Extras — linear regressors
27    m.add_class::<extras::RsBayesianRidge>()?;
28    m.add_class::<extras::RsARDRegression>()?;
29    m.add_class::<extras::RsHuberRegressor>()?;
30    m.add_class::<extras::RsQuantileRegressor>()?;
31
32    // Extras — tree regressors
33    m.add_class::<extras::RsDecisionTreeRegressor>()?;
34    m.add_class::<extras::RsRandomForestRegressor>()?;
35    m.add_class::<extras::RsExtraTreesRegressor>()?;
36    m.add_class::<extras::RsGradientBoostingRegressor>()?;
37    m.add_class::<extras::RsHistGradientBoostingRegressor>()?;
38
39    // Extras — neighbors regressors / kernel regressors
40    m.add_class::<extras::RsKNeighborsRegressor>()?;
41    m.add_class::<extras::RsKernelRidge>()?;
42
43    // Extras — linear classifiers
44    m.add_class::<extras::RsRidgeClassifier>()?;
45    m.add_class::<extras::RsLinearSVC>()?;
46    m.add_class::<extras::RsQDA>()?;
47
48    // Extras — bayes classifiers
49    m.add_class::<extras::RsMultinomialNB>()?;
50    m.add_class::<extras::RsBernoulliNB>()?;
51    m.add_class::<extras::RsComplementNB>()?;
52
53    // Extras — tree classifiers
54    m.add_class::<extras::RsExtraTreeClassifier>()?;
55    m.add_class::<extras::RsExtraTreesClassifier>()?;
56    m.add_class::<extras::RsAdaBoostClassifier>()?;
57    m.add_class::<extras::RsGradientBoostingClassifier>()?;
58    m.add_class::<extras::RsHistGradientBoostingClassifier>()?;
59    m.add_class::<extras::RsBaggingClassifier>()?;
60
61    // Extras — neighbors
62    m.add_class::<extras::RsNearestCentroid>()?;
63
64    // Extras — clusterers
65    m.add_class::<extras::RsMiniBatchKMeans>()?;
66    m.add_class::<extras::RsDBSCAN>()?;
67    m.add_class::<extras::RsAgglomerativeClustering>()?;
68    m.add_class::<extras::RsBirch>()?;
69    m.add_class::<extras::RsGaussianMixture>()?;
70
71    // Extras — decomp
72    m.add_class::<extras::RsIncrementalPCA>()?;
73    m.add_class::<extras::RsTruncatedSVD>()?;
74    m.add_class::<extras::RsFastICA>()?;
75    m.add_class::<extras::RsNMF>()?;
76    m.add_class::<extras::RsKernelPCA>()?;
77    m.add_class::<extras::RsSparsePCA>()?;
78    m.add_class::<extras::RsFactorAnalysis>()?;
79
80    // Extras — preprocess
81    m.add_class::<extras::RsMinMaxScaler>()?;
82    m.add_class::<extras::RsMaxAbsScaler>()?;
83    m.add_class::<extras::RsRobustScaler>()?;
84    m.add_class::<extras::RsPowerTransformer>()?;
85
86    // Extras — kernel approx
87    m.add_class::<extras::RsNystroem>()?;
88    m.add_class::<extras::RsRBFSampler>()?;
89
90    Ok(())
91}