day 8.1 PCA人脸识别 重要属性components_

from sklearn.datasets import fetch_lfw_people
from sklearn.decomposition import PCA
import matplotlib.pyplot as plt
import numpy as np

faces = fetch_lfw_people(min_faces_per_person=60)  # 每个人取出60张图
x = faces.data  # 特征矩阵
# print(faces.data.shape)  # (1348,2914)
# print(faces.images.shape)  # (1348, 62, 47) 矩阵中图像的个数,每个图像行,列
# todo:          将数据可视化
# 建画布
# fig, axis = plt.subplots(3, 8,  # 专门创建子图画布的,四行五列共20个图
#                          figsize=(8, 4)
#                          , subplot_kw={"xticks": [], "yticks": []}  # 不显示坐标轴
#                          )
# axis[0][0].imshow(faces.images[0, :, :])
# # print([*enumerate(axis.flat)])
# #  画图像
# for i, ax in enumerate(axis.flat):
#     # print(ax)
#     ax.imshow(faces.images[i, :, :], cmap="gray")  # 显示灰色
# plt.show()

# todo:         模型降维
pca = PCA(150).fit(x)
v = pca.components_  # 结构应该是vkn,代表新特征向量空间

# 要用来映射的新特征向量空间,决定新特征的含义
# print(v.shape)  # (150, 2914)  # k:150, n:2914
# 做一波可视化
fig, axis = plt.subplots(3, 8,  # 专门创建子图画布的,四行五列共20个图
                         figsize=(8, 4)
                         , subplot_kw={"xticks": [], "yticks": []}  # 不显示坐标轴
                         )
for i, ax in enumerate(axis.flat):
    # print(ax)
    ax.imshow(v[i, :].reshape(62, 47), cmap="gray")  # 显示灰色
plt.show()
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值