最近学了一些ML的库

最近准备看下mxnet源码.

觉得比较好用的记录一下,笔记逐渐在里面补充.

老是学了一段时间后就忘记了, 还是要坐下笔记, 以后复习也好看些.

sklearn

包含大部分ML的实现 模型基本有现成的可以直接使用

有用的包括 SVM knn adaboost 等若干

seaborn

相对有其他的包,

SNS基于pyplt 基本上是用来绘图的统计工具

在不要求计算具体参数的时候最好用这个画图

lmplot

包括参数logistic 等 可以调整线性模型的参数

lm就是linear_model 对statistical model 都有比较好的应用

xgboost

eXtreme Gradient Boost

名字就很帅 = =

这个包用来分类效果还不错, 是单独的一个包

在kaggle 的titanic数据中做了示例

效果有77% 非常好

我用knn和SVM直接跑效果都只有60%多

也比较好用

实例下次补充

pybrain

这个可以比较简单的创建

用digit classifier 做了个简单的bp nn

datasets用的是mnist

1. 创建网络

这里用的是784-30-10的网络

因为digit image是28*28的 输出10维数字代表

这里训练和knn不一样 所以直接输出一个的话效果不好


// for digit classifier usage, I take 
from pybrain.tools.shortcuts import buildNetwork

net = buildNewwork(784,30,10, (fast is optional))

2.add sample

这里选用的是supervisedDataSet

from pybrain.datasets import SupervisedDataSet

//  an example showing the processo of adding sample

ds = SupervisedDataSet((0,0,0,0),(0,0,0))

我在这里用的是mnist的数据

这neural networks and deep learning 这本书里面有load_mnist.py
直接调出导入数据

另外sklearn也有这个datasets

数据全部导入后

3. build BPnetwords


from pybrain.supervised.trainers import BackpropTrainer

trainer = BackpropTrainer(net,ds,bias = True, hiddenclass = TanhLayer)


// train one epoch
trainer.train()

// train until convergence 

trainer.trainUntilConvergence()

//there is some parameters that can be set to reduce the epoch times.

之前训练的效果是one epoch 60%

训练了几分钟后达到了90,

这个感觉有点跳大神而且比较靠及其

用SVM 和KNN 在这里分类效果最好 而且速度很快

用KNN K取3 效果直接就有97%

SVM貌似是93%左右 忘记了
效果都还是不错的

pandas 和 numpy 和 sciy, plt

这三个大头是基础

慢慢看吧