《Web安全之机器学习入门》笔记:第八章 8.4 逻辑回归算法识别mnist验证码
2022/1/31 14:04:44
本文主要是介绍《Web安全之机器学习入门》笔记:第八章 8.4 逻辑回归算法识别mnist验证码,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
本小节是通过使用逻辑回归算法对mnist数据集的数字识别,效果只能说勉强凑合,不过比7.8节的nb算法好一些。
1.源码修改
作者的代码会报错以及报警
(1)报错
Traceback (most recent call last): File "C:/Users/liujiannan/PycharmProjects/pythonProject/Web安全之机器学习入门/code/8-3.py", line 15, in <module> training_data, valid_data, test_data=load_data() File "C:/Users/liujiannan/PycharmProjects/pythonProject/Web安全之机器学习入门/code/8-3.py", line 10, in load_data training_data, valid_data, test_data = pickle.load(fp) UnicodeDecodeError: 'ascii' codec can't decode byte 0x90 in position 614: ordinal not in range(128)
修改方法
def load_data(): with gzip.open('../data/MNIST/mnist.pkl.gz') as fp: training_data, valid_data, test_data = pickle.load(fp, encoding="bytes") return training_data, valid_data, test_data
(2)报警
C:\ProgramData\Anaconda3\lib\site-packages\sklearn\linear_model\logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning. FutureWarning) C:\ProgramData\Anaconda3\lib\site-packages\sklearn\linear_model\logistic.py:469: FutureWarning: Default multi_class will be changed to 'auto' in 0.22. Specify the multi_class option to silence this warning. "this warning.", FutureWarning)
源码修改
logreg = linear_model.LogisticRegression(C=1e5, solver='liblinear', multi_class='ovr')
2.完整代码
基于原作者代码修改可运行在python3环境的源码:
# -*- coding:utf-8 -*- from sklearn import model_selection from sklearn.naive_bayes import GaussianNB import pickle import gzip def load_data(): with gzip.open('../data/MNIST/mnist.pkl.gz') as fp: training_data, valid_data, test_data = pickle.load(fp, encoding="bytes") return training_data, valid_data, test_data if __name__ == '__main__': training_data, valid_data, test_data=load_data() x1,y1=training_data x2,y2=test_data clf = GaussianNB() clf.fit(x1, y1) score = model_selection.cross_val_score(clf, x2, y2, scoring="accuracy") print(score) print(score.mean())
不过,我们看一下,交叉验证使用的是x2和y2,相当于用x2和y2既训练又测试得到的结果。
3.运行结果
[0.76482924 0.8529853 0.8639231 ] 0.8272458792084002
本例虽然作者示例有点问题,但是实际上逻辑回归测试mnist图片效果有很多,很容易做到90%以上,这里只是展示一种用法,不要太较真。
这篇关于《Web安全之机器学习入门》笔记:第八章 8.4 逻辑回归算法识别mnist验证码的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-17机器学习资料入门指南
- 2024-12-06如何用OpenShift流水线打造高效的机器学习运营体系(MLOps)
- 2024-12-06基于无监督机器学习算法的预测性维护讲解
- 2024-12-03【机器学习(六)】分类和回归任务-LightGBM算法-Sentosa_DSML社区版
- 2024-12-0210个必须使用的机器学习API,为高级分析助力
- 2024-12-01【机器学习(五)】分类和回归任务-AdaBoost算法-Sentosa_DSML社区版
- 2024-11-28【机器学习(四)】分类和回归任务-梯度提升决策树(GBDT)算法-Sentosa_DSML社区版
- 2024-11-26【机器学习(三)】分类和回归任务-随机森林(Random Forest,RF)算法-Sentosa_DSML社区版
- 2024-11-18机器学习与数据分析的区别
- 2024-10-28机器学习资料入门指南