sklears_tree/
lib.rs

1#![allow(dead_code)]
2#![allow(non_snake_case)]
3#![allow(missing_docs)]
4#![allow(deprecated)]
5#![allow(clippy::all)]
6#![allow(clippy::pedantic)]
7#![allow(clippy::nursery)]
8//! Tree-based algorithms for sklears
9//!
10//! This crate provides implementations of tree-based machine learning algorithms including:
11//! - Decision Trees (CART algorithm)
12//! - Random Forest
13//! - Extra Trees
14//!
15//! This is a simplified version focusing on core functionality.
16
17// Core modules
18pub mod builder;
19pub mod config;
20pub mod criteria;
21pub mod decision_tree;
22pub mod node;
23pub mod splits;
24
25// Extended modules
26pub mod extra_trees_enhanced;
27// pub mod incremental; // Temporarily disabled due to advanced features
28pub mod isolation_forest;
29pub mod model_tree;
30pub mod parallel;
31pub mod random_forest;
32// pub mod shap; // Temporarily disabled
33
34// Essential re-exports for the main API
35pub use config::{ndarray_to_dense_matrix, DecisionTreeConfig, MaxFeatures, MissingValueStrategy};
36pub use criteria::{ConditionalTestType, FeatureType, MonotonicConstraint, SplitCriterion};
37pub use decision_tree::{
38    DecisionTree, DecisionTreeBuilder, DecisionTreeClassifier, DecisionTreeRegressor, TreeValidator,
39};
40pub use extra_trees_enhanced::{
41    BinningStrategy, FeatureBinning, RandomizationStrategy, SparseCompression, SparseConfig,
42    SparseFeature,
43};
44pub use isolation_forest::{
45    IsolationForest, IsolationForestConfig, MaxSamples, StreamingIsolationForest,
46};
47pub use model_tree::{LeafModelType, ModelTree, ModelTreeConfig, ModelTreeNode};
48pub use node::{CompactTreeNode, CustomSplit, SurrogateSplit, TreeNode};
49pub use random_forest::RandomForestClassifier;
50pub use sklears_core::traits::{Trained, Untrained};
51pub use splits::HyperplaneSplit;
52
53/// Prelude module for convenient imports
54pub mod prelude {
55    pub use crate::config::DecisionTreeConfig;
56    pub use crate::criteria::SplitCriterion;
57    pub use crate::decision_tree::{DecisionTree, DecisionTreeClassifier, DecisionTreeRegressor};
58    pub use crate::extra_trees_enhanced::{BinningStrategy, FeatureBinning, RandomizationStrategy};
59    pub use crate::isolation_forest::{
60        IsolationForest, IsolationForestConfig, StreamingIsolationForest,
61    };
62    pub use crate::model_tree::{LeafModelType, ModelTree, ModelTreeConfig};
63}