python|基于sklearn+pca+svm的笑脸检测

【Python那些事儿】准备数据——训练集和测试集 准备工作在把数据用于机器学习的算法之前,必须认真准备数据。提供类别分布一致的训练集和测试集对于成功的分类模型是十分重要的。继续使用iris数据集,把80%的记录归入训练集,剩下的20%作为测试集。操作方法#导入必要的库 from sklearn.datasets import load_iris import numpy as np from sklearn.cross_validation imp 阅读详情

本文通过在Python3.7下,利用sklearn+pca+svm对笑脸和不笑脸进行分类,图片的大小为55×55。
注:本文使用的数据集一共有42张图片,其中36张作为训练集,剩下6张作为测试集。其中笑的和不笑的都为21张。
此代码经过测试,是可以运行的,如果连百度网盘链接过期了,在评论区留下你的邮箱,我给你发过去。

链接:https://pan.baidu.com/s/1K3U8er-C8ThUBkuP2_ac5w
提取码:1iy3
复制这段内容后打开百度网盘手机App,操作更方便哦
在这里插入图片描述

代码如下:

import numpy as np
import pandas as pd
from sklearn.preprocessing import StandardScaler # 标准化处理
from sklearn.decomposition import PCA # PCA
from sklearn.svm import SVC # SVM
from PIL import Image

'''
@author:xiao黄
time:2020-11-16
'''

Image_size = 55
 
'''
注意:自己测试的时候需要修改两个文件路径,就是你存放数据的路径
'''

def load_data():
    '''
    加载数据集
    :return 训练数据和对应的标签 0 为笑脸,1为不笑
    '''
    train_data = []
    train_label = []
    file_path = 'C:\\Users\\HKZ\\Desktop\\2020\\faceImages\\train\\' # 训练集 
    for i in range(1,37):
        path = file_path + str(i) + '.png'
        image = Image.open(path).convert('L') # 读取图片
        # if i == 1:
        #     print(image.shape())
        img = np.reshape(image,(1,Image_size*Image_size)) # 转换成一维
        train_data.extend(img)
        if i <= 16:
            train_label.append(0)
        else:
            train_label.append(1)
    train_data = np.reshape(train_data,(36,Image_size*Image_size))
    train_label = np.matrix(train_label).T

    test_data = []
    test_label = []
    file_path_test = 'C:\\Users\\HKZ\\Desktop\\2020\\faceImages\\test\\' # 测试集
    for i in range(1,7):
        path = file_path_test + str(i) + '.png'
        image = Image.open(path).convert('L') # 读取图片
        img = np.reshape(image,(1,Image_size*Image_size)) # 转换成一维
        test_data.extend(img)
        if i <= 3:
            test_label.append(0)
        else:
            test_label.append(1)
    test_data = np.reshape(test_data,(6,Image_size*Image_size)) 

    return np.matrix(train_data), train_label, np.matrix(test_data), test_label

def svm(trainDataSimplified, trainLabel, testDataSimplified):
    clf2 = SVC(C=2.0) # C为分类数目
    clf2.fit(trainDataSimplified, trainLabel) # 训练模型
    return clf2.predict(testDataSimplified)

if __name__ == "__main__":
    train_data,train_label,test_data,test_label = load_data()
    pca = PCA(0.9, True, True) # 建立pca类,设置参数,保留90%的数据方差
    # pca = PCA(n_components=15) # 降到15维
    trainData = pca.fit_transform(train_data) # 拟合并降维训练数据
    testData = pca.transform(test_data) # 降维测试数据
    result = svm(trainData,train_label,testData)
    print('预测结果',result)
    print('测试集标签',test_label)

此代码经过测试,是可以运行的,如果连百度网盘链接过期了,在评论区留下你的邮箱,我给你发过去。

sklearn学习之:(4)PCA降维算法 + SVM 的分类算法(SVC) 文章目录简介1. 原数据直接做人脸分类2. PCA降维后(feature_ration是留下来的特征比例)3. 进一步缩小范围,确定 PCA 保存特征的精确数值4. 降维后的数据保留了原数据的多少信息? 简介 使用 sklearn 机器学习库中的 SVM (支持向量机)算法中的 SVC (支持向量机分类算法)来实现人脸多分类 人脸数据集是 sklearn 内置的人脸数据库 首先使用原数据库直接建立模型进行分类测试 使用 PCA 降维算法进行降维,测试保留多少比例的信息可以有较高的分类结果 精确确定 PCA 阅读详情

相关推荐

基于python的svm算法测试集建立

基于python的svm算法测试集建立基于python的svm算法测试集建立

Python实现PCA降维和KNN人脸识别模型(PCA和KNeighborsClassifier算法)项目实战

Python实现PCA降维和KNN人脸识别模型(PCA和KNeighborsClassifier算法)项目实战

张陈亚的博客 7044

基于pca特征提取的笑脸表情识别代码(语言工具为matlab)

基于pca特征提取的笑脸表情识别代码,语言工具为matlab

机器学习:scikit-learn 做笑脸识别 (SVM, KNN, Logisitc regression)

scikit-learn 是 Python 非常强大的一个做机器学习的包,今天介绍scikit-learn 里几个常用的分类器 SVM, KNN 和 logistic regression,用来做笑脸识别。这里用到的是GENKI4K 这个数据库,每张图像先做一个人脸检测与剪切,然后提取HOG特征。这个数据库有 4000 张图,分成4组,做一个 cross validation,取平均值作为最终的识

Matrix-11 5452

ESP32S3编译micropython固件

编译ESP32芯片的micropython固件

m0_73253860的博客 2554

COMSOL新手必看:手把手教你搭建锂电池P2D模型(附完整参数设置)

本文为COMSOL新手提供了搭建锂电池P2D仿真模型的详细指南。文章从模型原理入手,逐步讲解软件设置、几何构建、关键参数配置及后处理分析,并探讨了如何将仿真结果与智能电池管理中的SOC、SOH估算相结合,为电池性能分析和BMS算法开发提供实用洞见。

transformer2023的博客 234

python支持向量机实验_Python SVM(支持向量机)实现方法完整示例

本文实例讲述了python SVM(支持向量机)实现方法。分享给大家供大家参考,具体如下:运行环境 Pyhton3 numpy(科学计算包) matplotlib(画图所需,不画图可不必)计算过程st=>start: 开始e=>end: 结束op1=>operation: 读入数据op2=>operation: 格式化数据cond=>condition: 是否达到迭代...

weixin_29796905的博客 1511

STM32以太网通信-STM32以太网外设(ETH)

通过 DMA 控制器进行介质访问控制 (MAC) STM32F4xx系列控制器内部集成了一个以太网外设,它实际上是一个通过DMA控制器进行介质访问控制(MAC),它的功能就是实现MAC 层的任务。 借助以太网外设,STM32F4xx 控制器可以通过ETH 外设按照IEEE 802.3-2002 标准发送和接收MAC 数据包。 ETH 内部自带专用的DMA 控制器用于MAC,ETH 支持两个工业标准接口介质独立接口(MII)和简化介质独立接口(RMII)用于与外部PHY 芯片连接。MII 和RMII 接口用于

暖暖_的_纠结的博客 2万+

python作业——SVM预测交通流量

深度学习—利用SVM预测交通流量,并实现可视化,主要用到sklearn、numpy、matplotlib库。

Pan_77777的博客 2887

数据分析学习总结笔记02:聚类分析及其R语言实现

** 数据分析学习总结笔记02:聚类分析Cluster Analysis ** 1. 聚类分析概述 1.1 聚类分析的直观理解 在科学研究、社会调查或日常生活中,通过观察个体的特征,将群体中的个体归为不同的族群/簇(Cluster)。 2. 聚类分析的方法 3. 聚类分析的应用 3.1 市场营销——精准营销 在市场营销中,基于消费者的历史交易信息、消费者背景等对消费者进行划分,从而对不同类型的消费...

weixin_41961559的博客 4420

可编程逻辑控制器(PLC)系列:Mitsubishi MELSEC-Q_(8).MELSEC-Q系列PLC故障诊断与维护

MELSEC-Q系列PLC的故障诊断与维护是一个系统性的过程,需要工程师具备扎实的理论基础和丰富的实践经验。通过了解故障类型、使用诊断工具、遵循诊断步骤,可以有效地定位和解决故障问题。同时,定期的检查与保养、备份与恢复、优化程序和配置,以及提供良好的运行环境,可以减少故障的发生,提高系统的可靠性。希望本文能够帮助工程师在故障诊断与维护过程中更加得心应手,确保MELSEC-Q系列PLC的稳定运行。

2401_87715305的博客 1247

分类问题(一):SVM(Python——基于skearn实现鸢尾花数据集分类)

第一步: # -*- coding: utf-8 -*- """ Created on Fri Sep 21 14:26:25 2018 @author: bd04 """ # !/usr/bin/env python # encoding: utf-8 __author__ = 'Xiaolin Shen' from sklearn import svm import numpy a...

潇湘雨 2万+

基于 FPGA Vivado 信号发生器设计(附源工程)

今天给大侠带来基于 FPGA Vivado 信号发生器设计,开发板实现使用的是Digilent basys 3,如有想要入手basys3开发板的,可以联系牛总:18511371833。话不多说,上货。 本篇掌握基于 FPGA Vivado 信号发生器设计(附源工程),掌握基于添加文件和IP的Vivado工程设计流程,掌握基于Tcl的Vivado工程设计流程,学习信号发生器的基本组成结构。获取本篇相关源工程代码,可在公众号内回复“信号发生器设计源工程”。 设计原理 信号发生器...

7990

python鸢尾花分类svm测试集_15 SVM - 代码案例二 - 鸢尾花数据不同分类器效果比较...

SVM的章节已经讲完,具体内容请参考:《01 SVM - 大纲》回顾案例一中的头文件:import numpy as npimport pandas as pdimport matplotlib as mplimport matplotlib.pyplot as pltimport warningsfrom sklearn import svm#svm导入from sklearn.svm impo...

weixin_39959236的博客 704

ASPICE标准快速掌握「总目录」

欢迎大家来到雪云飞星的《ASPICE标准快速掌握》,开始前博主先列出本专栏学习的大纲,同时这也可以作为大家学习ASPICE协议知识点的参考。本专栏可以帮助大家快速掌握如何在项目中使用ASPICE,ASPICE的学习通常仅需要半天时间左右,掌握方法后完全就可以结合快查表来指导具体项目的质量提升了。

雪云飞星的博客 3012

基于Java+SpringBoot+微信小程序实现奶茶点单系统

再不用担心逢年过节的第一杯奶茶有没有人送了,制作一个奶茶点单系统自己当店主,开怀畅饮,一劳永逸。

商务合作 / 项目定制 / 学习交流。个人vx:lovely_wml 1万+

python鸢尾花分类svm测试集_使用SVM对鸢尾花数据集进行分类

通过使用GridSearchCV来选取最优的参数 调参后代码:from sklearn.svm import SVCfrom sklearn.datasets import load_irisimport matplotlib.pyplot as pltimport numpy as npfrom sklearn.model_selection import train_test_splitfro...

weixin_39999532的博客 1248

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

【机器学习】python使用支持向量机SVM

【机器学习】python使用支持向量机SVM准备:        数据集    导入SVM模块步骤:    1.读取数据集    2.划分训练样本与测试样本    3.训练SVM分类器    4.计算分类准确率    5.绘制图像        关于SVM的原理知识,在【机器学习】支持向量机中讲过,欲知详情,可戳:    https://blog.youkuaiyun.com/u012679707/artic...

gogo小Sa的专栏 8万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

python使用自带SVM,数据集iris

转至:https://www.cnblogs.com/luyaoblog/p/6775342.html 和Python3不是很兼容,改了一部分 import numpy as np from sklearn import svm import matplotlib as mpl import matplotlib.pyplot as plt from sklearn.model_selecti

风一样的自由,色彩斑斓的雨季 4194

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

python svm pca实践二

继上一片的内容,这片来·讲一下sklearn来进行简单的人脸识别,这里用的方法是pca和svm 先导入必要的包和数据集 import numpy as np import matplotlib.pyplot as plt from scipy import stats from sklearn.decomposition import PCA from sklearn.svm impor...

night李的博客 1213

python svm pca实践(一)

好久没写博客了 这里主要用python的sklearn包,来进行简单的svm的分类和pca的降维 svm是常用的分类器,其核心是在分类的时候找到一个最优的超平面,使得所有的样本与超平面之间的距离达到最小。 pca是常用的一种降维的方法,其核心是对去中心化后的数据,求得协方差矩阵,再对协方差矩阵进行特征分解,将最大的几个特征值作为这个样本的的新特征,达到降低数据特征维度的效果 这里用...

night李的博客 5937

机器学习实践笔记(一)KNN

主要是参考机器学习实践(作者peter harrington) 优点:精度高,对异常值不敏感,无数据输入假定。 缺点:计算复杂度、空间复杂度高 适用数据:数值型和标称型 个人理解:数据型是连续数据,标称型离散数据。 KNN基本原理 写了一段时间了,没人看就没更新以后的。有兴趣或者没基础可以看看。 KNN的步骤 1、导入数据 import numpy as np import operator data =np.array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]]) labels

weixin_45743162的博客 554

sklearn学习——SVM例程总结(PCA+Pipline+cv+GridSearch)

Introduction 其实对于SVM调节超参数不需要这么复杂,因为gamma可能更重要一点,固定C=1,手动调节gamma即可。此外,sklearn的网格搜索极其的慢,下面的代码出来结果至少要半个多小时,如果有经验根本不需要。对于有经验的人来说或许看学习曲线就能知道调什么参数。但是为什么还要这么做呢?可能是为了装吧,或许更直观一点,不需要老中医式的随便开点良药,看看效果再换药了! PCA:

sqiu_11的博客 3739

cpp-BP神经网络与特征脸实现人脸表情识别(二)-实现人脸识别

我使用的是 yale 大学的人脸库 解压后将文件夹放入项目文件的文件夹中 链接:http://download.youkuaiyun.com/detail/mr_w1997/9752209 以下为笑脸的训练与测试 需要 了解PCA原理,opencv简单的使用以及opencv的pca类 楼主使用 VS2015 加 opencv 基本思路就是 将图片通过PCA降维,将降维后的数据输入网络,并指定输出值

Mr_W1997的博客 4724

Python 之 sklearn 实现 PCA 降维

关于 PCA 算法的讲解文章不胜枚举,这里主要谈一谈 基于 Python 中 sklearn 模块的 PCA 算法实现。Explained Variance 累计贡献率 又名 累计方差贡献率 不要简单理解为 解释方差,它是 PCA 降维维度的重要指标,一般选取累计贡献率在90%左右的维度作为PCA 降维的参考维度。在识别算法的实现过程中,当我们求得某一数据库各类别特征参考维度时,取最大维度作为每一

稚枭天卓 2万+

python实现一个简单的猜数游戏

要求:预设一个0-9之间的整数,让用户猜一猜并输入所猜的数,如果大于预设的数,显示“太大”;小于预设的数,显示“太小”;如此循环,直至猜中该数,显示“恭喜!你猜中了!” 代码: def guessNum(guess): ''' guess: 要猜的数 num: 输入的数 ''' num = int(input()) if guess == num: print('恭喜!你猜中了!') else: if num &g

小黄的博客 5007
上一篇: python|字典反映射
下一篇: Python|解决导入数据的时候memory error问题
xiao黄
xiao黄 优质创作者: 人工智能技术领域 优质创作者: 人工智能技术领域 领域专家: 数据科学与机器学习技术领域 领域专家: 数据科学与机器学习技术领域
博客等级 码龄8年 1万+粉丝 250原创
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiao黄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值