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加速 | 可视化 | 同时处理离散和连续值 | 保存和加载权重(experimental) |
---|---|---|---|---|---|
逻辑回归 | ✅ | ✅ | ✅ | ||
线性判别分析 | ✅ | ✅ | ✅ | ||
BP神经网络 | ✅ | ✅ | ✅ | ✅ | ✅ |
径向基函数神经网络 | ✅ | ✅ | ✅ | ||
支持向量分类器 | ✅ | ✅ | ✅ | ||
分类决策树 | ✅ | ✅ | ✅ | ✅ | |
朴素贝叶斯分类器 | ✅ | ✅ | ✅ | ||
平均独依赖估计器 | ✅ | ✅ | |||
超父独依赖估计器 | ✅ | ✅ | ✅ |
- 全部神经网络只能可视化损失和评估函数曲线,暂不能可视化结构信息
- BP神经网络需要手动将离散值转换成dummy编码
- BP神经网络多分类还不能进行加速
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.5.1b1.tar.gz
(47.6 kB
view hashes)
Built Distributions
Close
Hashes for classicML-0.5.1b1-cp38-cp38-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6b14753a4a98141698476bd0e6f82a8566842826a57095f5737a7d5894cbdc2a |
|
MD5 | 95b68b8d1b2f12d25f395810468dda1a |
|
BLAKE2b-256 | 89f9ffc24430b9431abb4083a9b89e246c433d82defada76dfb0654c3b1c0130 |
Close
Hashes for classicML-0.5.1b1-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1836f128e3f119c5e108e994960a03ff035ffb4f9ef1603f18c76873f1947789 |
|
MD5 | 21968a65ca5ff63f824851941ccd76e5 |
|
BLAKE2b-256 | b9c9029afa7ac8d5a401091bb378b1d2adcffbfecd7eea38ad5f77e167d22f95 |
Close
Hashes for classicML-0.5.1b1-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 58b4bd1a6a215abd334eb94c22637174f6837420e8f7536bdad8934324fec2f2 |
|
MD5 | e8b6c7e4dac1f9387ca11c6562e60e6e |
|
BLAKE2b-256 | 7d546a9893fe637abf36806b6c117db7c8bf2a9b5494daa1ee68c796293a3930 |
Close
Hashes for classicML-0.5.1b1-cp37-cp37m-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8fbc97ae305f5f303755b395eb340845bf7a041e30c7b8483da56e7f4104d945 |
|
MD5 | 7da269c0dd24708ca0a61cffc5f740d6 |
|
BLAKE2b-256 | 33c8d24ac75d8f7fa8b63a14ff2072913084751ef4f9fb4eeb30ba9c787529e5 |
Close
Hashes for classicML-0.5.1b1-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 19e1181f12d290a10ad6c6cd09fee2f69b0f3500138fe3a3ced94b449481e265 |
|
MD5 | 9bdec7e844130dbffe863032de35028c |
|
BLAKE2b-256 | 65dd962bf9b77be34d338b1e4ecb451be64f41b3abb7257f1ee7a9cc1c582b4f |
Close
Hashes for classicML-0.5.1b1-cp36-cp36m-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c3e2fcd6a0c8c250f7ebc7778c54115932585444df6e7e651e5fb484c7248b85 |
|
MD5 | 2c9afae959ce62a293ba0cbab21f84ea |
|
BLAKE2b-256 | 20038309b6615e139e4a59c9803b92f39845a3d69e13457bcc03453cfd386ff1 |