Sklearn -PCA 人脸识别 百度网盘sklearn学习API

PCA脸部识别
现在让我们用PCA来解决一个脸部识别问题。脸部识别是一个监督分类任务,用于从照片中认出某个
人。本例中,我们用剑桥大学AT&T实验室的Our Database of Faces数据集
(http://www.cl.cam.ac.uk/research/dtg/attarchive/facedatabase.html),这个数据集包含40个人每个
人10张照片。这些照片是在不同的光照条件下拍摄的,每张照片的表情也不同。照片都是黑白的,尺
寸为92 x 112像素。虽然这些图片都不大,但是每张图片的按像素强度排列的特征向量也有10304
维。这些高维数据的训练可能需要很多样本才能避免拟合过度。而我们样本量并不大,所有我们用
PCA计算一些主成分来表示这些照片。
我们可以把照片的像素强度矩阵转换成向量,然后用所有的训练照片的向量建一个矩阵。每个照片都
是数据集主成分的线性组合。在脸部识别理论中,这些主成分称为特征脸(eigenfaces)。特征脸可
以看成是脸部的标准化组成部分。数据集中的每张脸都可以通过一些标准脸的组合生成出来,或者说
是最重要的特征脸线性组合的近似值。

数据已下载在 E:\sklearn 学习\att_faces_pca

from os import walk, path
import numpy as np
import PIL from Image
from sklearn.cross_validation import train_test_split
from sklearn.cross_validation import cross_val_score
from sklearn.preprocessing import scale
from sklearn.decomposition import PCA
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import classification_report

下面我们把照片导入Numpy数组,然后把它们的像素矩阵转换成向量:

X=[]
y=[]
path=‘E:\sklearn 学习\att_faces_pca‘
for dir_path, dir_names, file_names in walk(path):
    for fn in file_names:
        if fn[-3:] == ‘pgm‘:
            image_filename = dir_path+(‘\\‘)+fn
            img=Image.open(image_filename)
            img=np.array(img)
            img=img.reshape(10304)
            img=img.astype(‘float32‘)
            scale(img)
            X.append(img)
            y.append(dir_path)

得到X和y

将X和y转为array

X=np.array(X)
y=np.array(y)
X_train, X_test, y_train, y_test = train_test_split(X, y) #将X和y分成训练集和验证集,默认比例 75%
X_train_reduced = pca.fit_transform(X_train)
X_test_reduced = pca.transform(X_test)

print(‘训练集数据的原始维度是:{}‘.format(X_train.shape))
print(‘PCA降维后训练集数据是:{}‘.format(X_train_reduced.shape))

训练集数据的原始维度是:(300, 10304)
PCA降维后训练集数据是:(300, 150)

classirfier=LogisticRegression()

accuracies=cross_val_score(classirfier,X_train_reduced,y_train)

accuracies
Out[90]: array([ 0.77477477,  0.8019802 ,  0.63636364])

accuracies_mean=accuracies.mean()

accuracies_mean
Out[92]: 0.7377062030527376

原文地址:https://www.cnblogs.com/vivianzy1985/p/9208933.html

时间: 2024-08-29 08:11:15

Sklearn -PCA 人脸识别 百度网盘sklearn学习API的相关文章

百度云 百度网盘超级会员账号SVIP账号 永久免费分享 附常见的不限速网盘工具

加入组织 说实在的,免费更新了将近一年了,起初是因为自己经常要下东西,所以顺便更新一下,没想到这么多人关注. 现在自己也有半年没用过网盘了,更新的也慢了,账号失效的也快了. 那么我本身也有弄淘宝京东优惠这方面的,大家可以进这个群,以后账号在群里更新.这样呢,更新起来也有动力. 说实话这种吃力不讨好还免费的东西确实挺难坚持的. 同样也不强迫大家必须加,情况就是这么个情况,群里会分享一些淘宝京东的bug,主要还是买东西比较优惠. 账号呢每天在群里5点半更新(也会更新其他各大平台账号 包括: 迅雷 腾

自定义百度网盘分享密码 提取码

经过分析代码发现,百度网盘的自定义密码是在本地生成的,本地生成?那么我们就可以修改了. 请按照以下步骤进行操作: 在浏览器中打开百度云盘,选中需要分享的文件,然后点击分享按钮: 点击分享按钮后会弹出一个模态框,先不管它,按 F12 打开开发者工具,切换至控制台(Console),将以下代码复制粘贴到控制台,然后回车: 1 javascript:require(["function-widget-1:share/util/service/createLinkShare.js"]).pro

如何邀请好友注册您的网站(模拟百度网盘)

花了一年时间做了个网盘下载站点,有兴趣的朋友可以看看站名:去转盘网 其中有个需求是想模拟百度网盘的邀请好友注册功能,想了很久果然 "皇天不负有心人" ,终于整理出个思路,并且附上代码,希望各位网友多多吐槽.我的思路大体是用网络范围内唯一的字符串uuid为标识去邀请好友,邀请者给个状态位 1 代表邀请者,并给他绑定个唯一uuid.被邀请者给个标识位0 代表被邀请者,如果他注册成功,则可以根据邀请链接获得uuid去查询数据库找到邀请者,找到后给予相应积分即可,代码如下: public St

2本Hadoop技术内幕电子书百度网盘下载:深入理解MapReduce架构设计与实现原理、深入解析Hadoop Common和HDFS架构设计与实现原理

这是我收集的两本关于Hadoop的书,高清PDF版,在此和大家分享: 1.<Hadoop技术内幕:深入理解MapReduce架构设计与实现原理>董西成 著  机械工业出版社2013年5月出版 2.<Hadoop技术内幕:深入解析Hadoop Common和HDFS架构设计与实现原理>蔡斌.陈湘萍 著  机械工业出版社2013年4月出版 百度网盘下载地址: http://pan.baidu.com/s/1sjNmkFj

百度网盘没有跟进,用户也没有因为360云盘容量大而选择放弃百度网盘

作者:何小锋链接:http://www.zhihu.com/question/51800743/answer/127548706来源:知乎著作权归作者所有,转载请联系作者获得授权. 不请自来的.那些说分享功能.政策原因而关闭的网盘,大部分都是为了让政府来背黑锅找的措词!不明真相的群众也乐意相信. 商业的本质是利益,云盘的成本才是绝大部分网盘关闭或者调整的原因!云盘的成本才是绝大部分网盘关闭或者调整的原因!云盘的成本才是绝大部分网盘关闭或者调整的原因! 虽然早在今年9月份就感觉到360云盘快撑不住

怎么判断百度网盘分享连接已经失效?有那么简单吗?java+python

我不知道现在有多少人在用网盘搜索引擎,但就去转盘网来说本人倾注了很多的心血,现在使用的人数也还可以,网盘资源都有个通病,那就是资源可能失效,但很多引擎都没有做失效判断,尤其是一些google自定义的引擎,技术含量不高,站长也就花心思赚钱,很少考虑用户体验.这篇文章是文人又一篇技术公开博客,之前本人已经公开了去转盘 网的几乎所有的技术细节,这一篇继续补充: 首先做个回顾:百度网盘爬虫 java分词算法 数据库自动备份 代理服务器爬取 邀请好友注册 ing:utf-8 """ @

Linux自制离线源,利用百度网盘等下载离线资源

CentOS安装Axel: 目前yum源上没有Axel,我们可以到http://pkgs.repoforge.org/axel/下载rpm包安装. 32位CentOS执行下面命令: wget -c http://pkgs.repoforge.org/axel/axel-2.4-1.el5.rf.i386.rpmrpm -ivh axel-2.4-1.el5.rf.i386.rpm 64位CentOS执行下面命令: wget -c http://pkgs.repoforge.org/axel/ax

Android 开发环境下载地址 -- 百度网盘 adt-bundle android-studio sdk adt 下载

原文:http://blog.csdn.net/shulianghan/article/details/38023959 最近 Google 被墙了, 上传一下自己收集的 Android 开发环境, 下面给出的官网链接也可以下载; 1. 百度网盘下载地址 Android集成环境 NDK JDK 总链接 : http://pan.baidu.com/s/1bnjaDKb; Android Studio Linux版 : http://pan.baidu.com/s/1eQjA6MA ; Adt B

Aria2 百度网盘下载教程

感谢: https://www.chiphell.com/thread-1228502-1-1.html 迅雷离线下载需要迅雷会员功能 转战百度云 打开如下连接 https://github.com/acgotaku/BaiduExporter(在此感谢作者提供脚本) 下载相关Zip文件(该打包文件包含chrome和firefox之脚本,本文引用chrome为例) 解压Zip中chrome整个文件夹出来  打开chrome浏览器 选中右上角选项-工具-扩展程序 勾上 "开发者模式" 再