Skip to main content

dataset_ml/
lib.rs

1//! Built-in dataset implementations for machine learning.
2//!
3//! `dataset-ml` provides ready-to-use loaders for classic ML datasets built on top
4//! of [`dataset_core::Dataset`]. Each module is a worked example showing how to wrap
5//! `Dataset<T, E>` for a concrete data source: downloading from a URL, verifying a
6//! SHA-256 hash, parsing CSV records, and exposing typed accessors backed by
7//! [`ndarray`].
8//!
9//! # Datasets
10//!
11//! | Module                                                | Samples | Features | Task Type      |
12//! |-------------------------------------------------------|---------|----------|----------------|
13//! | [`iris`]                                              | 150     | 4        | Classification |
14//! | [`breast_cancer`]                                     | 569     | 30       | Classification |
15//! | [`boston_housing`]                                    | 506     | 13       | Regression     |
16//! | [`california_housing`]                                | 20,640  | 8        | Regression     |
17//! | [`diabetes`]                                          | 768     | 8        | Classification |
18//! | [`titanic`]                                           | 891     | 11       | Classification |
19//! | [`palmer_penguins`]                                   | 344     | 7        | Classification |
20//! | [`wine_recognition`]                                  | 178     | 13       | Classification |
21//! | [`wine_quality::red_wine_quality`]                    | 1,599   | 11       | Regression     |
22//! | [`wine_quality::white_wine_quality`]                  | 4,898   | 11       | Regression     |
23//!
24//! # Example
25//!
26//! ```no_run
27//! use dataset_ml::iris::Iris;
28//!
29//! let iris = Iris::new("./data");
30//! let (features, labels) = iris.data().unwrap();
31//! assert_eq!(features.shape(), &[150, 4]);
32//! ```
33//!
34//! All loaders are lazy: the first call downloads and parses the file, every
35//! subsequent call returns a cached reference. See the individual module docs
36//! for features, target, sample count, and source.
37
38/// Boston Housing dataset module.
39///
40/// Contains the Boston Housing dataset for predicting median house values
41/// in Boston suburbs based on various features like crime rate, room count,
42/// and accessibility to highways.
43pub mod boston_housing;
44
45/// Breast Cancer Wisconsin (Diagnostic) dataset module.
46///
47/// Contains the Breast Cancer Wisconsin dataset for binary classification of
48/// tumors as malignant or benign based on 30 features computed from digitized
49/// images of cell nuclei.
50pub mod breast_cancer;
51
52/// California Housing dataset module.
53///
54/// Contains the California Housing dataset for predicting median house values
55/// in California districts. Reproduces scikit-learn's `fetch_california_housing`
56/// eight derived features. A modern replacement for Boston Housing.
57pub mod california_housing;
58
59/// Diabetes dataset module.
60///
61/// Contains the Pima Indians Diabetes dataset for binary classification
62/// based on 8 diagnostic measurements.
63pub mod diabetes;
64
65/// Iris flower dataset module.
66///
67/// Contains the classic Iris dataset for classifying iris flowers into
68/// three species (setosa, versicolor, virginica) based on sepal and petal
69/// measurements.
70pub mod iris;
71
72/// Palmer Penguins dataset module.
73///
74/// Contains the Palmer Penguins dataset for classifying penguins into three
75/// species (Adelie, Chinstrap, Gentoo) based on bill and flipper measurements,
76/// body mass, and categorical island/sex features. A modern alternative to Iris.
77pub mod palmer_penguins;
78
79/// Titanic dataset module.
80///
81/// Contains data about Titanic passengers for predicting survival based
82/// on features like passenger class, sex, age, and fare.
83pub mod titanic;
84
85/// Wine Quality dataset module.
86///
87/// Contains wine quality assessment data for predicting quality scores
88/// based on physicochemical properties like acidity, sugar content, and
89/// alcohol percentage.
90pub mod wine_quality;
91
92/// Wine Recognition dataset module.
93///
94/// Contains the scikit-learn Wine recognition dataset for classifying wines
95/// into three cultivars based on 13 chemical constituents. Distinct from
96/// [`wine_quality`], which is a regression task on quality scores.
97pub mod wine_recognition;
98
99pub use boston_housing::BostonHousing;
100pub use breast_cancer::BreastCancer;
101pub use california_housing::CaliforniaHousing;
102pub use diabetes::Diabetes;
103pub use iris::Iris;
104pub use palmer_penguins::PalmerPenguins;
105pub use titanic::Titanic;
106pub use wine_quality::{red_wine_quality::RedWineQuality, white_wine_quality::WhiteWineQuality};
107pub use wine_recognition::WineRecognition;