sklearn 自带手写字体数据集(二)
来源:互联网 发布:cs1.6弹道优化脚本 编辑:程序博客网 时间:2024/05/24 06:33
本篇博客是使用机器学习自带的手写字体数据集来学习监督式机器学习
import matplotlib.pyplot as pltimport pylabimport numpy as npfrom sklearn import datasets,svm,metricsdigits = datasets.load_digits()#digits: bunch类型print(type(digits))#digits 包含的数据结构,字典类型数据key,valueprint('digits.keys() = ',digits.keys())#imgaes 是一个三维矩阵1797 张 8 * 8的图片print('digits.images.shape = ',digits.images.shape)print('digits.images = ',digits.images)#plt.gray()#plt.matshow(digits.images[0])#plt.show()#data中包含1797个样本,每个样本包括8*8像素的图像,其实就是将8*8 的images按行展开成一行print('digits.data.shape = ',digits.data.shape)print('digits.data = ',digits.data)#target 是一个1797维度的Vector,指明每张图片的标签,也就是每张图片代表的数字print('digits.target.shape = ',digits.target.shape)print('digits.target = ',digits.target)#数据集中所有标签值,[0,1,2,3,4,5,6,7,8,9]print('digits.target_names.shape = ',digits.target_names.shape)print('digits.target_names = ',digits.target_names)#print('digits.DESCR = ',digits.DESCR)#zip是组合称为一个tuple,然后变成一个列表,即建立training和label的对应关系images_and_labels = list(zip(digits.images,digits.target))for index, (image, label) in enumerate(images_and_labels[:4]): #subplot的含义是将图分成一个2行4列的区域,然后随着index变化来显示图片 plt.subplot(2, 4, index + 1) #关掉图像的坐标 plt.axis('off') #image是要绘制的图像或者数组,cmp是颜色图谱, plt.imshow(image, cmap=plt.cm.gray_r, interpolation='nearest') #标题 plt.title('Training: %i' % label)plt.show()n_samples = len(digits.images)print('number of sample:%s'% n_samples)data = digits.images.reshape((n_samples,-1))# Create a classifier: a support vector classifierclassifier = svm.SVC(gamma = 0.001)classifier.fit(data[:int(n_samples/2)],digits.target[:int(n_samples/2)])expected = digits.target[int(n_samples/2):]predicted = classifier.predict(data[int(n_samples/2):])print("Classification report for classifier %s:\n%s\n" % (classifier, metrics.classification_report(expected, predicted)))print("Confusion matrix:\n%s" % metrics.confusion_matrix(expected, predicted))images_and_predictions = list(zip(digits.images[int(n_samples / 2):], predicted))for index, (image, prediction) in enumerate(images_and_predictions[:4]): plt.subplot(2, 4, index + 5) plt.axis('off') plt.imshow(image, cmap=plt.cm.gray_r, interpolation='nearest') plt.title('Prediction: %i' % prediction)plt.show()
有关基本的数据结构在上篇博客已经介绍,这里直接给出结果。
阅读全文
0 0
- sklearn 自带手写字体数据集(二)
- sklearn 自带手写字体数据集
- SVM对sklearn自带手写数字数据集进行分类
- sklearn中digits手写字体数据集介绍
- sklearn 数据集(二)
- 机器学习应用——sklearn自带数据集训练(支持向量机分类)
- 机器学习应用——sklearn自带数据集训练(线性判别分析)
- 手写字体识别 --MNIST数据集
- 使用OpenCV自带的神经网络对MNIST手写字体进行识别
- android 自带字体
- IOS自带字体
- windows 下caffe 配置手写字体mnist数据集
- Android apk自带字体
- iOS自带的字体
- iOS9系统自带字体
- Sklearn学习(二)——数据预处理(Normalization)
- sklearn数据集随机切分(train_test_split)
- sklearn数据集随机切分(train_test_split)
- jquery导入Excel文件
- Android读取sql文件并导入数据库
- ultraedit 如何添加Verilog语法高亮显示功能
- 15算法课程 189. Rotate Array
- marquee 标签 实现循环滚动 公告滚动
- sklearn 自带手写字体数据集(二)
- >问题:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.
- 第二章(2.1线性表的类型定义)
- tensorflow编译及安装【tensorflow实战--笔记】
- div等元素height:100%高度为什么不生效
- maven 可选依赖和排除依赖
- 机器学习
- DIY 滤波器
- [emerg] open() "/var/run/nginx/nginx.pid" failed (21: Is a directory)