How medansoftware/c45-algorithm-php works
This PHP library turns tabular data into a C4.5 decision tree, then supports prediction, evaluation, and tree export. The main workflow is data ingestion and indexing, gain-based split selection, recursive tree construction, and classification. The README documents Excel, CSV, and array inputs plus multiple exports; those capabilities are represented, though their runtime wiring is inferred only where the sampled source supports it.
Main entry points: C45.php C4.5 coordinator · DataInput.php DataInput · AbstractCalculator.php Calculator base · TreeNode.php TreeNode
Components 13
Data input
- DataInput
src/C45/DataInput.php - Value index
src/C45/DataInput.php - Input interface
src/C45/DataInput/DataInputInterface.php
Tree learning
- C4.5 coordinator
src/C45.php - Gain calculator
src/C45/Calculator/GainCalculator.php - Split-info calculator
src/C45/Calculator/SplitInfoCalculator.php - Gain-ratio calculator
src/C45/Calculator/GainRatioCalculator.php - Calculator base
src/C45/Calculator/AbstractCalculator.php
Prediction and output
- TreeNode
src/C45/TreeNode.php
Other components
- PHP client
- Tabular data
- Spreadsheet reader
- Predictions and exports
Connections 17
- PHP client → C4.5 coordinator: configures and builds
- PHP client → DataInput: supplies array data
- Tabular data → DataInput: loads file data
- DataInput → Spreadsheet reader: reads Excel/CSV
- DataInput → Value index: builds value index
- C4.5 coordinator → DataInput: queries rows and classes
- C4.5 coordinator → Gain calculator: requests gains
- C4.5 coordinator → Split-info calculator: requests split info
- C4.5 coordinator → Gain-ratio calculator: requests gain ratios
- Gain calculator → Calculator base: uses shared setup
- Split-info calculator → Calculator base: uses shared setup
- Gain-ratio calculator → Calculator base: uses shared setup
- Calculator base → DataInput: queries data
- C4.5 coordinator → TreeNode: constructs tree
- PHP client → TreeNode: classifies records
- C4.5 coordinator → TreeNode: evaluates predictions
- TreeNode → Predictions and exports: returns prediction or export