公司在使用这个库做某个项目的机器学习子项目,用于商品补货预测的机器学习应用,了解了下,发现这个库虽然不支持分布式并行运行,但是有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等库