ML PascalABC.NET is a production-level machine learning and AI platform for PascalABC.NET.
The platform is included in the PascalABC.NET distribution and is available to users as part of the language ecosystem. It provides a complete dependency-free ML stack: from tabular data storage and feature preprocessing to classical machine learning models, metrics, validation, pipelines, and the numerical linear algebra core.
The goal of the project is to make machine learning available in PascalABC.NET while preserving clear architecture, type safety, predictable behavior, and educational transparency.
This repository contains the official website for the ML PascalABC.NET project:
https://pascalabcnet.github.io/ai/
The site serves as the public entry point for the project: documentation, examples, architectural notes, educational materials, and project overview.
ML PascalABC.NET is a layered machine learning platform built specifically for PascalABC.NET.
It is designed around several core principles:
-
No external dependencies The platform is implemented entirely in PascalABC.NET and does not require third-party ML, DataFrame, numerical, or visualization libraries.
-
Production-level architecture The system is structured into clear layers with strict separation of responsibilities.
-
Educational clarity Algorithms and data structures are implemented in a way that can be studied, explained, and used in teaching.
-
Predictable behavior The platform avoids hidden magic. Operations are explicit, type-aware, and designed to fail fast when the input is invalid.
-
Type safety Data columns, schemas, model interfaces, labels, and transformations are handled through explicit contracts.
-
DataFrame-first workflow The platform supports tabular data processing, preprocessing, model training, prediction, validation, and metrics in a unified workflow.
The platform follows a layered architecture:
DataFrameABC
↓
DataAdapters
↓
MLABC
↓
MLModelsABC / ValidationML / MetricsABC
↓
LinearAlgebraML
DataFrameABC is the tabular data layer.
It provides a column-store DataFrame implementation with typed columns:
Int / Float / Str / Bool / DateTime
Key features include:
- typed column storage;
- explicit schema;
- missing-value support through validity masks;
- cursor-based row access;
- filtering;
- selecting and dropping columns;
- renaming columns;
- grouping;
- joins;
- schema propagation;
- categorical metadata;
- predictable tabular transformations.
DataAdapters connects tabular data with the numerical ML layer.
It converts DataFrame columns into matrix and vector representations suitable for machine learning algorithms.
LinearAlgebraML is the numerical foundation of the platform.
It provides dense matrix and vector operations required by ML algorithms, including decomposition methods and transformations such as PCA.
MLCoreABC defines the core model interfaces:
IModel
ISupervisedModel
IClassifier
IRegressor
IProbabilisticClassifier
ITransformer
IPreprocessor
These interfaces define a consistent contract for models, preprocessors, transformers, pipelines, and validation tools.
MLModelsABC contains classical machine learning models, including:
- linear regression;
- logistic regression;
- k-nearest neighbors;
- decision trees;
- random forests;
- gradient boosting;
- classification models;
- regression models.
The models are implemented without external ML libraries and are integrated with the common platform interfaces.
PreprocessorABC provides preprocessing and feature engineering tools:
- imputers;
- standard scaling;
- min-max scaling;
- label encoding;
- one-hot encoding.
Preprocessors follow the usual Fit / Transform logic and are designed to work as part of larger ML pipelines.
ValidationML provides model validation tools:
- K-fold cross-validation;
- stratified K-fold cross-validation;
- cross-validation helpers.
The validation layer works through model cloning and common model interfaces.
MetricsABC provides regression and classification metrics, including tools based on confusion matrices and encoded labels.
The platform includes pipeline abstractions for building complete ML workflows.
Pipeline layers support:
- preprocessing;
- fitting;
- prediction;
- probability prediction for classifiers;
- label encoding;
- DataFrame-based workflows;
- matrix-based workflows.
Specialized pipelines are used for classification, regression, and clustering scenarios.
PascalABC.NET is a modern Pascal-based programming language and environment designed for education and practical programming.
ML PascalABC.NET extends this ecosystem with a complete machine learning stack that can be used:
- in university courses;
- in school-level advanced programming courses;
- for teaching data science and AI concepts;
- for demonstrating ML algorithms from the inside;
- for practical tabular ML tasks;
- as a production-oriented educational library.
The project aims to show that a modern, type-safe, dependency-free ML platform can be built in PascalABC.NET without sacrificing clarity or architectural discipline.
The platform does not rely on external numerical, ML, DataFrame, or preprocessing libraries.
This makes the system:
- easy to distribute as part of PascalABC.NET;
- easy to install and use without additional setup;
- easy to study and explain;
- suitable for educational and practical scenarios;
- transparent for teaching machine learning, data analysis, and numerical algorithms.
Each module has a clear role.
Data storage, preprocessing, numerical computation, model interfaces, models, validation, metrics, and pipelines are separated into different layers.
No hidden magic
The platform favors explicit behavior over implicit convenience.
Invalid inputs should be detected early. Type mismatches, schema inconsistencies, unsupported key types, and invalid model states are treated as errors rather than silently corrected.
The implementation is intended to be understandable enough for teaching, but serious enough to support real use.
The project avoids both extremes:
- it is not a toy implementation;
- it is not an opaque black-box framework.
This repository contains the website and documentation source for the ML PascalABC.NET project.
The website is the main public location for describing:
- the purpose of the project;
- platform architecture;
- supported modules;
- examples;
- tutorials;
- documentation;
- educational materials;
- development notes.
Install dependencies:
npm installStart the local development server:
npm run devBuild the website:
npm run buildPreview the production build:
npm run previewThe website is deployed to GitHub Pages:
https://pascalabcnet.github.io/ai/
The site is published as a GitHub Pages project site under the /ai/ base path.
ML PascalABC.NET is part of PascalABC.NET.
PascalABC.NET is distributed under the GNU Lesser General Public License version 3, with the clarifications and exceptions described in the PascalABC.NET license agreement.
The materials and source files in this repository are distributed under the same terms, unless explicitly stated otherwise.