Simple Machine Learning

一个简单的机器学习算法实现

Build Status Codacy Badge Join the chat at https://gitter.im/simple_ml/Lobby


快速开始

安装

环境和依赖库

强烈推荐Anaconda环境

pip安装

pip install simple_male

对,是simple_ma(chine)le(arning),因为simple_ml已经在pypi上被人注册了喵

git安装

git clone https://github.com/Yangruipis/simple_ml.git
cd ./simple_ml
python setup.py install

使用

# 一个简单的例子,用CART树进行二分类
from simple_ml.tree import CART
import numpy as np

X = np.array([[1,1.1],
              [1,2.0],
              [0,3.0],
              [0,2.2]])
y = np.array([1,1,0,0])
cart = CART(min_samples_leaf=1)
cart.fit(X, y)
x_test = np.array([[1,2],[3,4]])
print(cart.predict(x_test))
Out[1]: np.array([1,1])

它能做什么

最最最最主要的任务

如果你同时满足:

  1. 机器学习入门阶段
  2. python 进阶阶段

那么恭喜你,这个项目可以给你提供如下帮助:

作为一个机器学习项目的任务

1. 数据和特征

1.1 数据集获取

simple_ml提供了大量经典的机器学习数据集的获取接口DataCollector,数据集来自UCI

1.2 数据预处理

simple_ml 提供了常用的数据预处理方法,包括了编码、独热编码、缺失值处理、异常值处理以及随机数据集划分等。

同时,simple_ml 提供了PCA降维方法以及针对高维数据的SuperPCA降维方法。

1.3 特征选择

simple_ml提供了Filter和Embedded两种特征选择方法,包括了:

  1. 方差法
  2. 相关系数法
  3. 卡方检验法
  4. L1正则
  5. GBDT特征选择

2. 模型

2.1 二分类

simple_ml提供了非常多的二分类方法,以wine数据集为例(见./simple_ml/examples),分类效果和方法名称见图1。

图 1. 二分类效果图

2.2 多分类

simple_ml暂时只提供了一些多分类算法,见下图,同样是wine数据集,后面作者将会进行补充。

图 2. 多分类效果图

2.3 回归

simple_ml提供了CARTGBDT这两种回归方法,后面将加入SVR

2.4 聚类

simple_ml提供了K-means聚类层次聚类两种聚类方法

注:以上所有图均为simple_ml直出(需要matplotlib)

3. 效果评价

为什么会有这个项目 & 致谢

作者就读于上海某商科院校经济学,从大二开始接触数据挖掘,以及编程相关知识(stata->R->C#->python),对数据和编程非常感兴趣,基本上一路走过来全靠自学。作者希望可以用心做好一个项目,记录自己学习的轨迹,尤其是即将毕业之际。

在接下来的一年找工作的同时,作者将尽全力维护该项目,不断更新和修改,热烈欢迎任何贡献和讨论。

致谢:

返回主页