当前位置:   article > 正文

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

线性回归人脸识别

今天写一个比较简单的机器学习例子
使用线性回归实现人脸识别
使用的数据集是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[
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/373353
推荐阅读
相关标签
  

闽ICP备14008679号