1#[allow(unused_imports)]
32use pyo3::prelude::*;
33
34mod clustering;
36mod datasets;
37mod ensemble;
38mod linear;
39mod metrics;
40mod model_selection;
41mod naive_bayes;
42mod neural_network;
43mod tree;
45mod utils;
46
47pub use clustering::*;
49pub use ensemble::*;
50pub use linear::*;
51pub use metrics::*;
52pub use model_selection::*;
53pub use naive_bayes::*;
54pub use neural_network::*;
55pub use tree::*;
57pub use utils::*;
58
59#[pymodule]
61fn _sklears(m: &Bound<'_, PyModule>) -> PyResult<()> {
62 m.add("__version__", "0.1.0")?;
64 m.add(
65 "__doc__",
66 "High-performance machine learning library with scikit-learn compatibility",
67 )?;
68
69 m.add_class::<linear::PyLinearRegression>()?;
71 m.add_class::<linear::PyRidge>()?;
72 m.add_class::<linear::PyLasso>()?;
73 m.add_class::<linear::PyElasticNet>()?;
74 m.add_class::<linear::PyBayesianRidge>()?;
75 m.add_class::<linear::PyARDRegression>()?;
76 m.add_class::<linear::PyLogisticRegression>()?;
77
78 m.add_class::<ensemble::PyGradientBoostingClassifier>()?;
80 m.add_class::<ensemble::PyGradientBoostingRegressor>()?;
81 m.add_class::<ensemble::PyAdaBoostClassifier>()?;
82 m.add_class::<ensemble::PyVotingClassifier>()?;
83 m.add_class::<ensemble::PyBaggingClassifier>()?;
84
85 m.add_class::<neural_network::PyMLPClassifier>()?;
87 m.add_class::<neural_network::PyMLPRegressor>()?;
88
89 m.add_class::<naive_bayes::PyGaussianNB>()?;
97 m.add_class::<naive_bayes::PyMultinomialNB>()?;
98 m.add_class::<naive_bayes::PyBernoulliNB>()?;
99 m.add_class::<naive_bayes::PyComplementNB>()?;
100
101 m.add_class::<clustering::PyKMeans>()?;
103 m.add_class::<clustering::PyDBSCAN>()?;
104
105 m.add_function(wrap_pyfunction!(metrics::mean_squared_error, m)?)?;
112 m.add_function(wrap_pyfunction!(metrics::mean_absolute_error, m)?)?;
113 m.add_function(wrap_pyfunction!(metrics::r2_score, m)?)?;
114 m.add_function(wrap_pyfunction!(metrics::mean_squared_log_error, m)?)?;
115 m.add_function(wrap_pyfunction!(metrics::median_absolute_error, m)?)?;
116
117 m.add_function(wrap_pyfunction!(metrics::accuracy_score, m)?)?;
119 m.add_function(wrap_pyfunction!(metrics::precision_score, m)?)?;
120 m.add_function(wrap_pyfunction!(metrics::recall_score, m)?)?;
121 m.add_function(wrap_pyfunction!(metrics::f1_score, m)?)?;
122 m.add_function(wrap_pyfunction!(metrics::confusion_matrix, m)?)?;
123 m.add_function(wrap_pyfunction!(metrics::classification_report, m)?)?;
124
125 m.add_function(wrap_pyfunction!(model_selection::train_test_split, m)?)?;
127 m.add_class::<model_selection::PyKFold>()?;
128
129 datasets::register_dataset_functions(m)?;
131
132 m.add_function(wrap_pyfunction!(utils::get_version, m)?)?;
134 m.add_function(wrap_pyfunction!(utils::get_build_info, m)?)?;
135
136 Ok(())
137}