rodmarkun/SmolML
A fully functional and simple Machine Learning library made entirely from scratch with Python.
解决的问题
SmolML 旨在揭示机器学习库的内部工作机制。它移除了 PyTorch 或 Scikit-Learn 等生产级工具的复杂性和优化,提供核心机器学习概念的透明化、教育性实现。
工作原理
该库完全使用纯 Python 构建,仅依赖标准库模块(collections、random、math),有意避免使用 NumPy 或 C++ 扩展。它从零开始实现了机器学习的核心构建模块,包括:
- 核心引擎:自定义的 N 维数组实现(
MLArray)和用于计算梯度的自动微分引擎(Value)。 - 预处理:数据缩放工具(Standard 和 MinMax 缩放器)。
- 神经网络组件:激活函数(ReLU、Sigmoid、Softmax)、权重初始化器(Xavier、He)、损失函数(MSE、交叉熵)和优化器(SGD、Adam、AdaGrad)的实现。
- 模型架构:线性与多项式回归、前馈神经网络、树形模型(决策树、随机森林)以及 K-Means 聚类的实现。
适用人群
适合希望学习机器学习算法和数据处理工具在代码中如何实现的学生和开发者,而非仅仅将其作为黑箱使用。
主要亮点
- 零外部依赖:完全使用纯 Python 构建,实现最大可访问性。
- 自定义自动微分:内置自动微分引擎。
- 全面覆盖:涵盖从基础回归与聚类到复杂神经网络和随机森林的完整范围。
- 教育导向:优先考虑代码可读性和理解性,而非计算性能。
相关
- 项目
- 项目
- 项目
- 项目
- 项目