线性回归实现人脸识别——ORL数据集

本文介绍了使用线性回归算法进行人脸识别的实例,以ORL数据集为实验对象,通过二折交叉验证进行模型训练和测试。在Python 3.6环境下,实验结果显示留出法的识别效果接近100%,而二折验证稍逊一筹。
摘要由CSDN通过智能技术生成

今天写一个比较简单的机器学习例子
使用线性回归实现人脸识别
使用的数据集是ORL数据集

算法描述

输入:图片矩阵img,标签信息label,测试图片test

对每一个类:
第一步:从图片矩阵中读出来一类图片,划分为训练集(X)与测试集(y)
第二步:计算w
计算w

第三步:计算预测图片
计算w

第四步:计算出dis即预测图片与真实图片之间的误差,并将误差存储起来
计算w
对于每一个测试图片test,找到最小dis对应的标签label,label对test的分类

使用二折交叉验证,将原油数据集划分为两部分X1,X2;第一次将X1作为训练集,X2作为测试集;第二次将X2作为训练集,X1作为测试集。

数据集

ORL人脸数据集
使用的是:ORL_32_32.mat
使用scipy直接读取,里面包含两个矩阵,第一个矩阵是人脸的数据,第二个矩阵是标签

实验环境

python 3.6
macOS 10.12

上代码

比较简单就直接放代码了
注释也比较详细

使用二折交叉验证,我直接把二折写死了,如果是n折的话,可以用循环去写。
二折的思路比较简单:第一次选取每一类前五张照片做训练集,后五张照片做测试集,第二次选取每一类前五张照片做测试集,后五张照片做训练集。

import scipy.io as sio
import random
import numpy as np

#使用scipy读取mat文件
mat=sio.loadmat('ORL_32_32.mat')
img=mat[
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值