My Machine Learning Notes
最近学了一些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
这三个大头是基础
慢慢看吧