SVM实现人脸识别(超详细易懂)(一)

本文介绍了SVM(支持向量机)的基本原理,它是一种用于分类和回归的机器学习算法。在解决线性不可分问题时,SVM通过核函数将数据映射到高维空间。在人脸识别的应用中,文章使用PCA进行特征提取,通过GridSearchCV找到最优参数,训练SVM模型并评估预测准确率。
摘要由CSDN通过智能技术生成

机器学习的本质:从大量数据里提取出特征与相应的类别产生联系,该类别称之为标签,也就是说使得特征与对应的标签产生对应关系,从而具有识别的能力。
分类和聚类分类是已知物体的类别的标签,聚类则是数据处于无标签状态,我们把具有相似特征的物体归为同一类。分类是有监督的学习,有标签(预设标准答案);聚类是无监督的学习,无标签。
在这里插入图片描述
SVM(Support Vector Machine)支持向量机:是机器学习里非常常见的算法,其本质是把两个不同类别的数据样本,通过找到一条理想中的最优超平面,(一个面是一条线,三维是一个面,如果是高维的则需要找到一个最优的超平面)使得后续的数据添加进来后仍然可以划分数据。理想中是找到两类数据中最中间的分界线,以上图为例,找到最接近的红点和蓝点,然后从他们中间找到最优的平面,这样的两个点称为支持向量。在这里插入图片描述
但如果是这种情况则很难找到一条线对红点蓝点进行划分。则我们需要把这样的二维问题映射到高维的空间中。比如可以想象:这里有一张桌子,红点和蓝点都可以从桌子上跳起来,蓝点比较沉,则跳的就很低,红点很轻,跳的比较高,通过这种方式,我们就可以很轻松的找到一条线,再次把红蓝点区分开来。遇到线性不可分的问题时,我们通常把这样的问题通过核函数映射到高维空间,只要维度够高,所有的问题都可以进行线性划分。在这里插入图片描述
二维映射到三维的例子
在这里插入图片描述
那么此时如果数据中再加入两个未知颜色的点,则位于线的上方我们就把其归于蓝色,位于线的下方则把其归于红色。
计算超平面的方法如下,其具体的数学分析我们会在下一章节描述。在这里插入图片描述在这里插入图片描述在这里插入图片描述
大体思路是先根据支持向量找到两个超平面,然后寻找中间的目标超平面,根据拉格朗日的对偶问题求解超平面的参数值。具体推导过程下一章节中讲。


warnings.filterwarnings("ignore")
PICTURE_PATH="C:\"
def get_Image():
	for i in range(1,41):
		for j in range(1,11):
			path=PICTURE_PATH+"\\s"+str(i)+"\\"+str(j)+".pgm"
			img=mpimg.imread(path)
			h,w=img.shape
			img_col=img.reshape(h*w)
			all_data_set.append(img_col)
			all_data_label.append(i)
	return h,w
all_data_set=[]
all_data_label=[]
h,w=get_image()
x=array
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值