svm rbf人脸识别 yale_利用PCA和SVM算法建立人脸识别模型

84b0c7bec24647da8ee61700c0e958ce.png

在本文中,我们将学习使用主成分分析(PCA)和支持向量机(SVM)来建立人脸识别模型。

首先,我们来看看PCA和SVM的介绍:

主成分分析:

主成分分析(PCA)是一种机器学习算法,广泛应用于探索性数据分析和建立预测模型。它通常用于降维,方法是将每个数据点投影到前几个主成分上,以获得低维数据,同时尽可能保留数据的变化。

d194470df9414f737d8c2ff311de152b.png

Matt Brems的文章(https://medium.com/u/55680478461) 全面深入地介绍了该算法。现在,让我们用更简单的术语来解释:

假设我们手头有一个问题,我们正在收集数据,而我们的数据集产生了多个变量、多个特征,它们会在不同方面影响结果。如果选择删除某些特征,又会丢失信息,而我们不希望这样,对吗?

因此,另一种减少特征数量(减少数据维数)的方法是通过提取重要信息并删除最不重要的信息来创建新的特征。这样,我们的信息就不会丢失,而特征也会减少,过拟合模型的几率也会减少。


支持向量机

支持向量机(SVM)是一种用于两组分类问题的有监督机器学习模型。在为每个类别提供一组带标签的训练数据后,它能够对新的测试数据进行分类。

e6af309b18ae95befad7df16494b362a.png

支持向量机基于最大化间隔的平面对数据进行分类,它的决策边界是直的,是一种很好的图像分类算法。实验结果表明,支持向量机在经过3-4轮相关反馈后,其搜索精度明显高于传统的查询优化方案,对于图像分割系统也是如此,包括那些使用改进的支持向量机的系统。

Marco Peixeiro的文章(https://towardsdatascience.com/the-complete-guide-to-support-vector-machine-svm-f1a820d8af0b) 说明了需要一个最大间隔超平面来分类数据。读后你会更好地理解SVM!


人脸识别

人脸是由许多像素组成的高维数据。高维数据很难处理,也不能用二维数据的散点图等简单技术可视化。

我们要做的是利用PCA对数据的高维进行降维处理,然后将其输入到SVM分类器中对图像进行分类。

接下来进入编码部分!

下面的代码示例取自关于eigenfaces的sklearn文档。我们将一步一步地检查代码,以了解其复杂性和结果。

导入相关库和模块

首先导入所需的库和模块。后文将深入讨论为什么要导入它们。

import pylab as plimport numpy as npfrom matplotlib import pyplot as pltfrom sklearn.model_selection import train_test_splitfrom sklearn.datasets import fetch_lfw_peoplefrom sklearn.model_selection import GridSearchCVfrom sklearn.metrics import classification_reportfrom sklearn.metrics import confusion_matrixfrom sklearn.decomposition import PCA as RandomizedPCAfrom sklearn.svm import SVC
将数据加载到Numpy数组中

接下

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值