三分钟上手scikit-learn机器学习算法库

2019/7/13 posted in  机器学习 三分钟系列 python

公司在使用这个库做某个项目的机器学习子项目,用于商品补货预测的机器学习应用,了解了下,发现这个库虽然不支持分布式并行运行,但是有spotify、evernote等公司在背书使用,应该还是可以,可以了解下

完整代码已上传github:https://github.com/neatlife/mypiclabel

安装依赖库

requirements.txt如下

scikit-learn==0.21.2

然后执行pip install -r requirements.txt

导入依赖库

vim mypiclabel.py

from matplotlib import pyplot as plt
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn import svm

获取输入数据

sk提供了快速上手的数据,可以直接使用,这个数据效果如下


就是识别图片里的数字,然后和正确的数字的对应关系

digits = datasets.load_digits()

Xtrain, Xtest, Ytrain, Ytest = train_test_split(digits.data, digits.target, test_size=0.20, random_state=2)

0.20表示使用80%的数据作为训练的数据,20%的数据作为验证正确性的数据,俗称交叉验证

训练模型

clf = svm.SVC(gamma=0.001, C=100.)
clf.fit(Xtrain, Ytrain)

clf就是训练的结果了

获取预测准确性

使用那20%的数据验证训练结果

score = clf.score(Xtest, Ytest)

print("准确率是 {0}".format(score))

然后执行这个python脚本:python mypiclabel.py

操作效果如下


可以看到正确率是0.977777...就是97%了

保存/加载模型

这个clf训练结果模型如果每次都计算将浪费大量的算力,如果输入数据没变,没必要每次都计算,可以使用dump方法保存这个训练的结果,下次再使用直接加载训练结果,无需重复计算

保存模型

from sklearn.externals import joblib
joblib.dump(clf, "myresult.pkl")

加载模型

from sklearn.externals import joblib
clf = joblib.load("myresult.pkl")

一些注意的点

这个只是快速上手,想要在生产使用,必须进行参数调优,了解numpy, pandas, matplotlib, ipython等库

参考资料

  1. https://github.com/github/gitignore/blob/master/Global/VirtualEnv.gitignore
  2. https://scikit-learn.org/stable/