An easy-to-use ML framework
Project description
classicML: 简单易用的经典机器学习框架
classicML 是一个用Python和CPP混编的机器学习项目,它既实现了Python的简单易用快速上手,又实现了CPP的高效性能。classicML的设计目标是简单易用,快速入门,编程风格简洁。
多后端支持
classicML 本身是一个Python项目,但是机器学习中涉及到的复杂的矩阵运算对于Python有点儿捉襟见肘,因此我们提供了使用CPP后端的函数的加速版本。为了保证兼容性,classicML默认使用Python后端,部分算法支持了使用CPP作为后端进行加速,你需要安装标准版的classicML,然后在开头使用这条语句切换后端。
import os
os.environ['CLASSICML_ENGINE'] = 'CC'
第一个机器学习程序
使用线性判别分析进行二分类
- 下载示例数据集
wget https://github.com/sun1638650145/classicML/blob/master/datasets/西瓜数据集alpha.csv
- 运行下面的代码
import pandas as pd
import classicML as cml
DATASET_PATH = '/path/to/西瓜数据集alpha.csv'
# 读取数据
dataframe = pd.read_csv(DATASET_PATH, index_col=0, header=0)
x = dataframe.iloc[:, :2].values
y = dataframe.iloc[:, 2].values
y[y == '是'] = 1
y[y == '否'] = 0
# 生成模型
model = cml.models.LDA()
# 训练模型
model.fit(x, y)
# 可视化模型
cml.plots.plot_lda(model, x, y, '密度', '含糖率')
目前的已支持的算法
classicML 目前支持数种机器学习算法,但是每种算法实现的情况有所不同和差异。
算法名称 | 支持多分类 | 使用CC加速 | 可视化 | 同时处理离散和连续值 | 保存和加载权重 |
---|---|---|---|---|---|
逻辑回归 | ✅ | ✅ | ✅ | ||
线性判别分析 | ✅ | ✅ | ✅ | ||
BP神经网络 | ✅ | ✅ | ✅ | ✅ | ✅ |
径向基函数神经网络 | ✅ | ✅ | ✅ | ||
支持向量分类器 | ✅ | ✅ | ✅ | ||
分类决策树 | ✅ | ✅ | ✅ | ✅ | ✅ |
朴素贝叶斯分类器 | ✅ | ✅ | ✅ | ✅ | |
平均独依赖估计器 | ✅ | ✅ | ✅ | ||
超父独依赖估计器 | ✅ | ✅ | ✅ | ✅ |
- 全部神经网络只能可视化损失和评估函数曲线,暂不能可视化结构信息
- BP神经网络需要手动将离散值转换成dummy编码
classicML 0.6 预览
这个发行版将以性能优化和原生支持Apple Silicon为更新目标
- 原生支持(native support) Apple M1
- 增加大量
CC
后端函数,将主要的操作全部用CC
重写,大幅提高性能- 修复BUG,提高稳定性
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
classicML-0.6b1.tar.gz
(54.2 kB
view hashes)
Built Distributions
Close
Hashes for classicML-0.6b1-cp38-cp38-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 51745bac6b85c4cf5f4e9c43c4a998c54b4226392c74d3329f8fbf4ab9c1fbfe |
|
MD5 | d641128f504bf442331487381f82392a |
|
BLAKE2b-256 | ae3f62dacc75cdd7c9f0654f4ad6c1cce3860490834b04880e71cd8acb781008 |
Close
Hashes for classicML-0.6b1-cp38-cp38-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 51545c78115aefc5eff5c6c143c7f6d5c399ec1debfefc52f2835aa127a50c52 |
|
MD5 | 5f1226f35126c816880dafba04b10450 |
|
BLAKE2b-256 | 24ab1665c8258582f0b6fa6a6fb5315adf9889a23b5186ae80b75d7f90536960 |
Close
Hashes for classicML-0.6b1-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 264fcdaa79803c330697ebd8cbb024dda4b9b4444b1f5e416941aaad81b2b833 |
|
MD5 | 97be0e30a336e7d9e397d076f941b7cf |
|
BLAKE2b-256 | ffa9ae1871d73f34b89b951040445add3611cd831a091cd690ffde530e905848 |
Close
Hashes for classicML-0.6b1-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d77be687b2c5043ea3f5fd5f08bffd26a20c45cef142aaff55a550ef179c34f2 |
|
MD5 | 6ac127f7f7d425a062b7c88ddd3306ad |
|
BLAKE2b-256 | 0f6d35ac04129bd31122dc882f84a5f0866fd3f8d86a74130dab14e6d2e7b363 |
Close
Hashes for classicML-0.6b1-cp37-cp37m-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6a69862eede9594952d65788b672ff515756504711587f24599b9786c87621a3 |
|
MD5 | 9dfd3da44dae939f54e509d6377818d3 |
|
BLAKE2b-256 | 61921be673facafc387c7ca546dd015c30452e79f4f771cfe4d9f2269c383917 |
Close
Hashes for classicML-0.6b1-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9f10ca1bea162d8d68f0367008171da52d739fe858ccedb10a6761560a325750 |
|
MD5 | dc55a326cdfefabd0ef5ec6b71106f2d |
|
BLAKE2b-256 | 4bf41f65670c59b1f232984b844e4f65d72ddf4d7a52cf5fbee6cf27333fb475 |
Close
Hashes for classicML-0.6b1-cp36-cp36m-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 82fc8f191f778a7e951ec3fd19cf250b609d1c1029071a6fcc8a52926501bcde |
|
MD5 | 87c635aa804b8a46f6dcce0a0c0de878 |
|
BLAKE2b-256 | 57cb61f2b55fce9978ce42cc8d213521799b63b32119dca492e07267dec013b3 |