sklearn机器学习之降维(人脸图片数据集)
1.导入相应包
from sklearn.datasets import fetch_lfw_people
from sklearn.decomposition import PCA
from matplotlib import pyplot as plt
import pandas as pd
import numpy as np
2.准备数据集
本次我们使用的数据集是sklearn库中自带的人脸图片数据集,包括1348张长宽分别为62、 47的人脸图片,该数据集有data和image两种属性,image按照图片取出,为三维(1348, 62, 47),data属性为将长宽展平为一维(1348, 2914),2914 = 62×47。
faces = fetch_lfw_people(min_faces_per_person=60)
#取出我们需要用到的数据
X = faces.data
faces.images.shape
faces.data.shape
3.绘制原图像(这里只画出20张,想画更多改参数即可)
#创建画布和子图对象
#横纵长度为4和5的画布
fig, axes = plt.subplots(4, 5, figsize=(8, 4), subplot_kw = {"xticks":[],"yticks":[]} #不要显示坐标轴)
#这里采用enumerate函数对axes进行变化绘制(这里是将二位数据拉成一维)
for i, ax in enumerate(axes.flat):#显示图片ax.imshow(faces.images[i, :, :], cmap='gray')
plt.savefig(r"C:\Users\86377\Desktop\2.png")
绘制出20张原图片如图所示:
4.将数据从2914降至150维
#原本有2900维,我们现在来降到150维
pca = PCA(150).fit(X)
V = pca.components_
这里我讲一下我的理解:原始数据为1348张长宽为62×47=2914,特征为2914,我们使用pca将特征降至2914维,所以V’为150×2914维,这样矩阵所做的线性空间变换才会将特征维数降至150维,绘制特征空间,150个特征就有150种特征空间,所以我们可以将这150种特征空间绘制出来。
5.绘制150个特征空间
fig, axes = plt.subplots(10, 15, figsize=(20, 8), subplot_kw={"xticks": [], "yticks": []})
for i, ax in enumerate(axes.flat):ax.imshow(V[i, :].reshape(62, 47), cmap="gray")
绘制出的图片如下:
只显示20个我们仔细看:
这里我们可以看到后面越来越不显示出人脸特征,这也验证了保留有效信息的可行性。
6.利用接口将降维后的信息还原
#降维后的数据
X_dr = pca.transform(X)
#还原的数据
X_inverse = pca.inverse_transform(X_dr)
#可视化
fig, axes = plt.subplots(2, 10, subplot_kw={'xticks': [], 'yticks': []})
for i in range(10):axes[0, i].imshow(X[i, :].reshape(62, 47), cmap='binary_r')axes[1, i].imshow(X_inverse[i, :].reshape(62, 47), cmap='binary_r')
plt.savefig(r"C:\Users\86377\Desktop\4.png")
原始和还原的图像对比如下:
虽然两者差别不大,但是原始图像还是更加清晰,这说明还原并不是100%。
sklearn机器学习之降维(人脸图片数据集)相关推荐
- 人脸图片数据集:Olivetti Faces、LFW、YouTube Faces、IMDB WIKI、FDDB
日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) # https://cs.nyu.edu/~roweis/da ...
- svd降维 python案例_菜菜的机器学习sklearn实战-----sklearn中的降维算法PCA和SVD
菜菜的机器学习sklearn实战-----sklearn中的降维算法PCA和SVD 概述 从什么叫维度说开来 简单讲,shape中返回了几个数字就是几维. 一张表最多就是一维 当一个数组中存在2张3行 ...
- 《菜菜的机器学习sklearn课堂》降维算法PCA和SVD
降维算法PCA和SVD 什么是维度? sklearn中的降维算法 PCA 与 SVD 降维究竟是怎样实现的? PCA重要参数 n_components 迷你案例:高维数据的可视化 附录 PCA参数列表 ...
- ML之分类预测:基于sklearn库的七八种机器学习算法利用糖尿病(diabetes)数据集(8→1)实现二分类预测
ML之分类预测:基于sklearn库的七八种机器学习算法利用糖尿病(diabetes)数据集(8→1)实现二分类预测 目录 输出结果 数据集展示 输出结果 1.k-NN 2.LoR 4.DT 5.RF ...
- 【机器学习】 - 各种人脸数据集下载地址及说明汇总
1. Olivetti Faces人脸数据集 由40个人组成,共计400张人脸: 每人的人脸图片为10张,包含正脸.侧脸以及不同的表情: 整个数据集就是一张大的人脸组合图片,下载地址:https:// ...
- 机器学习实验:使用sklearn的决策树算法对葡萄酒数据集进行分类
机器学习实验:使用sklearn的决策树算法对葡萄酒数据集进行分类 问题如下: 使用sklearn的决策树算法对葡萄酒数据集进行分类,要求: ①划分训练集和测试集(测试集占20%) ②对测试集的预测类 ...
- CV之FR:基于DIY人脸图像数据集(每人仅需几张人脸图片训练)利用Hog方法提取特征和改进的kNN算法实现人脸识别并标注姓名(标注文本标签)—(准确度高达100%)
CV之FR:基于DIY人脸图像数据集(每人仅需几张人脸图片训练)利用Hog方法提取特征和改进的kNN算法实现人脸识别并标注姓名(标注文本标签)-(准确度高达100%) 目录 基于DIY人脸图像数据集( ...
- 机器学习sklearn-PCA降维算法
1 概述 1.1 什么叫"维度" 对于数组和Series来说,维度就是功能shape返回的结果,shape中返回了几个数字,就是几维. 针对每一张表,维度指的是样本的数量或特征的数 ...
- yolo人脸检测数据集_自定义数据集上的Yolo-V5对象检测
yolo人脸检测数据集 计算机视觉 (Computer Vision) Step by step instructions to train Yolo-v5 & do Inference(fr ...
- sklearn+机器学习
文章目录 一.KNN 1.1 KNN实现分类 1.1.1 二分类 1.1.2 多分类 1.2 回归 二.线性回归 4.1 正则化 4.1.1 岭回归 4.1.2 Lasso回归 五.随机森林 5.1参 ...
最新文章
- ESP32,ESP8266之间WiFi互联实验
- g++ 安装python_mac编译安装faiss
- ACM题解系列之一:刘汝佳:《算法竞赛入门经典》(第2版)
- Sharepoin学习笔记—架构系列—07nSharepoint服务(Services)与服务应用程序框架(Service Application Framework) 2
- 第十届 蓝桥杯大赛 青少年创意编程 C++组
- java 变量名 字符串_如何使字符串值在java中调用特定的现有JButton变量名?
- html浮动跟随鼠标,jQuery 图片跟随鼠标浮动
- dart 获取手机信息_flutter+dart仿微信App界面聊天实例
- mysql wait_timeout=_Mysql的wait_timeout解决_MySQL
- 你不知道的Retrofit缓存库RxCache
- javascript作用域链详解
- 菜鸟译文(二)——使用Java泛型构造模板方法模式
- win7下配置IIS(ASP.net)
- 高仿小米盒子UI桌面
- Android仿人人客户端(v5.7.1)——有关滑动式左侧菜单实现过程中网友的疑问解答
- javaScript常用案例
- element-ui vue-quill-editor 富文本编辑器 解决插入图片不采用base64 从服务器传图片在显示返回url
- BGP路由反射器RR
- 【深度学习/机器学习】为什么要归一化?归一化方法详解
- java心跳监控服务_JavaHeartBeat-应用服务器心跳检测
热门文章
- 聚类分析软件操作流程
- 彩影ARP防火墙 v6.0.2(x64)的问题 错误代码1/0 解决方案
- oa办公系统服务器网址是什么,OA办公系统登陆地址是多少呢?
- 安装“万能解码器”还原真实“解码”(纯以个人兴趣分析)
- android 7.1 默认壁纸拉伸问题
- 麦咖啡的设置,很长,如果你想百毒不侵的话。。
- airtest基本介绍
- 给大家推荐一款冰点文档下载器(免登陆,免积分)下载百度,豆丁,畅享网,mbalib,hp009,mab.book118文库文档
- 整站下载工具 webzip
- WinXP下搭建适合Nokia开发的J2ME环境