sklearn调包侠之PCA降维
PCA
PCA(主成分分析),它是一种维度约减算法,即把高维度数据在损失最小的情况下转换为低纬度数据的算法。
实战——人脸识别
数据导入
该数据集可通过sklearn进行下载。数据集总共包含40位人员的照片,每个人10张照片。通过fetch_olivetti_faces方法下载的图片,进行了处理,人脸会居中,并裁剪为64*64大小。
%matplotlib inline import matplotlib.pyplot as plt import numpy as np from sklearn.datasets import fetch_olivetti_faces faces = fetch_olivetti_faces() X = faces.data y = faces.target
pca
由于数据集样本少(400),特征高(64*64),需要对数据进行降维后,再建立模型。
那到底选择多少主成分合适了?我们这里计算多组主成分,获取数据还原率,如图所示,选择140个主成分,可以保证还原率大于0.95。
from sklearn.decomposition import PCA candidate_components = range(10, 300, 30) explained_ratios = [] for c in candidate_components: pca = PCA(n_components=c) X_pca = pca.fit_transform(X) explained_ratios.append(np.sum(pca.explained_variance_ratio_)) plt.figure(figsize=(10, 6), dpi=144) plt.grid() plt.plot(candidate_components, explained_ratios) plt.xlabel('Number of PCA Components') plt.ylabel('Explained Variance Ratio') plt.title('Explained variance ratio for PCA') plt.yticks(np.arange(0.5, 1.05, .05)) plt.xticks(np.arange(0, 300, 20))
切分数据集
from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=33)
训练模型
这里使用svm进行模型训练,并使用网格搜索来获取最优参数。
from sklearn.model_selection import GridSearchCV from sklearn.svm import SVC param_grid = {'C': [1, 5, 10, 50, 100], 'gamma': [0.0001, 0.0005, 0.001, 0.005, 0.01]} clf = GridSearchCV(SVC(kernel='rbf', class_weight='balanced'), param_grid) clf = clf.fit(X_train_pca, y_train) print(clf.best_params_, clf.best_score_) # result # {'C': 5, 'gamma': 0.005} 0.778125
模型评估
最后,对模型进行评估:
clf.best_estimator_.score(X_test_pca, y_test) # result # 0.96250000000000002
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
基于正交拉普拉斯脸的人脸识别算法研究
直觉上,自然存在的人脸数据可以由支持的概率分布采样生成或者近似于环绕空间的子流线型分布。据此,我们提出了一种基于外观的人脸识别算法,称为正交拉普拉斯脸(Orthogonal Laplacianface,简称OLPP)。该算法基于局部保持映射(Locality Preserving Projection,简称LPP)算法,其中LPP算法的目标是找到在面部流形空间中拉普拉斯-贝特拉算子特征函数的一个线性近似。然而,LPP是非正交的,于是就给重建数据带来了困难。OLPP方法是生成正交基函数,相比于LPP将会拥有更好的邻域保护能力。因为邻域保护能力与分辨能力有着潜在的联系,所以OLPP有望比LPP具有更高的分辨能力。基于三个人脸数据库的实验结果表明了我们所提算法的有效性。 关键字: 基于外观的视觉 人脸识别 局部保持投影 正交局部保持投影 1 引言 最近,基于外观的人脸识别受到了很多关注[20][14]。 一般来说,将尺寸为n1×n2的人脸图像表示为图像空间R n1×n2中的矢量。 我们用脸空间来表示所有人脸图像的集合。 虽然图像空间具有很高的维度,但是脸空间通常是嵌入在环绕空间中的维度很...
- 下一篇
阿里推全球首家人工智能服饰店,随时“翻阅”50万淘宝红人穿搭锦囊
直男到底懂不懂美?对于这样的世纪难题,淘宝给出了答案。2018年7月4日,阿里工程师们在香港落地了全世界第一家人工智能服饰店——“FashionAI 概念店”(“时尚之心概念店”)。除了线下,在线上,未来淘宝5亿消费者也将全面感受到人工智能带来的穿搭推荐。事实上,这是中国时尚业首次尝试通过人工智能技术解读人类的“穿搭密码”,比任何一个国家都要超前。 什么是FashionAI 概念店? 从外部看起来,FashionAI 概念店似乎和普通门店没有差异——丰富的货架、宽敞的试衣间,一切井然有序。用户通过扫描淘宝ID,绑定身份信息后进入店铺。在浏览货架期间,随意轻轻拿起任何一件衣服,货架边的“镜屏”就会感应到商品信息,给出若干种搭配选择。 消费者扫描淘宝ID进店 有趣的是,镜屏上的搭配还将高度呈现“个性化”,消费者会惊喜发现,他们曾经购买过的衣服
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS关闭SELinux安全模块
- 2048小游戏-低调大师作品
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Red5直播服务器,属于Java语言的直播服务器
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7