显示手写体数字图片经PCA压缩后的二维空间分布
2017-09-14 08:39
232 查看
import pandas as pd import numpy as np digits_train = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/optdigits/optdigits.tra', header=None) digits_test = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/optdigits/optdigits.tes', header=None) x_digits = digits_train[np.arange(64)] y_digits = digits_train[64] print(x_digits) print(y_digits) from sklearn.decomposition import PCA estimator = PCA(n_components=2) x_pca = estimator.fit_transform(x_digits) print(x_pca) from matplotlib import pyplot as plt def plot_pca_scatter(): colors = ['black', 'blue', 'purple','yellow', 'white', 'red', 'lime', 'cyan', 'orange', 'gray']#总共有0-9,10种手写数字,要把每一个手写数字都用二维图展现出来,为了便于区分,使用10颜色 for i in range(len(colors)): px = x_pca[:, 0][y_digits.as_matrix() == i]#这里的[y_digits.as_matrix]主要对x_pca第一列的所有行起到选择作用,也就是说假设i=0时, py = x_pca[:, 1][y_digits.as_matrix() == i]#选择出所有训练样本的标签为0的x_pca,并将其用二维图展现出来,不同的数字用不同的颜色画出来 plt.scatter(px, py, c=colors[i]) #最后,通过最终效果图可以发现,同一类型的digits基本上分布在同一块区域 plt.legend(np.arange(0, 10).astype(str)) plt.xlabel('First Principal Component') plt.ylabel('Sencond Principal Component') plt.show() plot_pca_scatter()
最终运行效果图如下:
相关文章推荐
- python显示手写数字图片经pca压缩后的二维空间分布 程序错误分析
- (二)用 svm 识别手写体数字图片
- ajax上传图片到PHP并压缩图片显示的方法
- 用图片数字显示对应的数目
- 最新javascript自动按比例显示图片,按比例压缩图片显示
- android 拍照并将图片剪裁、压缩并显示
- 防止图片重复下载方案,图像压缩保存与压缩显示
- 最新javascript自动按比例显示图片,按比例压缩图片显示
- Android关于ListView显示SD卡上的Bitmap的图片(图片压缩之后)
- 手写体数字识别(二) 训练图片提取 文档
- 调用系统摄像头拍照,对拍照后的图片进行裁剪和压缩处理,并显示在imageview上面
- html5 图片上传,支持图片预览、压缩、及进度显示,兼容IE6+及标准浏览器
- Android相机、相册获取图片显示(压缩)并保存到SD卡
- 利用JSP在Web页面中显示随机数字验证码图片
- 【数字图像处理】一.MFC详解显示BMP格式图片
- 利用JSP在Web页面中显示随机数字验证码图片
- 对大图片的等比例压缩显示,避免内存溢出
- 使用canvas 的api 实现 图片的显示 及 压缩
- 又一个jquery轮播效果,焦点图,带数字显示序号,这个可以添加对应标题在图片上,支持主流浏览器