基于支持向量机(svm)的人脸识别

注意:本文引用自专业人工智能社区Venus AI

更多AI知识请参考原站 ([www.aideeplearning.cn])

数据集加载与可视化

from sklearn.datasets import fetch_lfw_people
faces = fetch_lfw_people(min_faces_per_person=60) 
# Check out sample images
import matplotlib.pyplot as plt
fig, ax = plt.subplots(3, 5)
for i, axi in enumerate(ax.flat):axi.imshow(faces.images[i], cmap='bone')axi.set(xticks=[], yticks=[], xlabel=faces.target_names[faces.target[i]])

使用 PCA 和 SVC 构建模型

from sklearn.svm import SVC
from sklearn.decomposition import PCA
from sklearn.pipeline import make_pipeline
pca = PCA(n_components=150, whiten=True, random_state=42)
svc = SVC(kernel='rbf', class_weight='balanced')model = make_pipeline(pca, svc)
# train, test
from sklearn.model_selection import train_test_splitX_train, X_test, y_train, y_test = train_test_split(faces['data'], faces['target'], test_size=0.2, random_state=42)

使用网格搜索 CV 查找最佳模型

from sklearn.model_selection import GridSearchCVparam_grid ={'svc__C': [1, 5, 10, 15],'svc__gamma': [0.0001, 0.0005, 0.001, 0.005],
}
grid = GridSearchCV(model, param_grid=param_grid, cv=5)
%time grid.fit(X_train, y_train)

 

{'svc__C': 1, 'svc__gamma': 0.005}
grid.best_params_
grid.best_estimator_

使用最佳模型进行预测 

final_model = grid.best_estimator_
y_pred = final_model.predict(X_test)

 可视化数据

fig, ax = plt.subplots(4, 6)
for i, axi in enumerate(ax.flat):axi.imshow(X_test[i].reshape(62, 47), cmap='bone')axi.set(xticks=[], yticks=[])axi.set_ylabel(faces.target_names[y_pred[i]].split()[-1], color='black' if y_pred[i] == y_test[i] # correct labelelse 'red') # incorrect labelfig.suptitle('Predicted Names; Incorrected Labels in Red', size=14);

模型评估指标

from sklearn.metrics import classification_report
print(classification_report(y_test, y_pred, target_names=faces.target_names))
                   precision    recall  f1-score   supportAriel Sharon       0.90      0.75      0.82        12Colin Powell       0.72      0.94      0.81        51Donald Rumsfeld       0.88      0.88      0.88        25George W Bush       0.97      0.88      0.92        98
Gerhard Schroeder       0.88      0.71      0.79        21Hugo Chavez       0.85      0.73      0.79        15
Junichiro Koizumi       1.00      1.00      1.00        10Tony Blair       0.90      0.92      0.91        38accuracy                           0.87       270macro avg       0.89      0.85      0.86       270weighted avg       0.89      0.87      0.88       270
from sklearn.metrics import confusion_matrixcm = confusion_matrix(y_test, y_pred)
cm = cm.Tprint(cm)
import seaborn as sns
sns.heatmap(data=cm, square=True, annot=True, cbar=False,xticklabels=faces.target_names,yticklabels=faces.target_names);plt.xlabel('True Labels')
plt.ylabel('Predicted Labels');

项目资源下载

详情请见基于支持向量机(SVM)的人脸识别-VenusAI (aideeplearning.cn) 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/754278.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

REDHAWK——连接(续)

文章目录 前言一、突发 IO1、数据传输①、输入②、输出 2、突发信号相关信息 (SRI)3、多输出端口4、使用复数数据①、在 C 中转换复数数据 5、时间戳6、端口统计①、C 二、消息传递1、消息生产者①、创建一个消息生产者②、发送消息 2、消息消费者①、创建消息消费者②、注册接…

线性代数笔记21--对角化、A的幂

1.对角化 对于矩阵 A A A,我们假设有 n n n个向量。 将他们放置在一起组成矩阵 S S S。 A S A [ X 1 X 2 . . . X n ] [ λ 1 X 1 λ 2 X 2 . . . λ n X n ] [ X 1 X 2 . . . X n ] [ λ 1 λ 2 λ 3 ⋱ λ n ] ASA[X_1X_2...X_n][\lambda_1X_1\ \lambda_2X_2...\lambda_n…

优化选址问题 | 基于节约算法求解考虑碳排放及带时间窗的物流选址问题附matlab代码

目录 问题代码问题 节约算法(Savings Algorithm)通常用于解决车辆路径问题(Vehicle Routing Problem, VRP),特别是当需要考虑如何有效地组织车辆的路线以最小化总行驶距离时。然而,当问题扩展到包括碳排放和带时间窗的物流选址问题时,算法需要相应的调整。 在这个扩展…

VSCode创建用户代码片段-案例demo

示例 - 在线生成代码片段 Vue3代码片段 {"vue3": {scope": "javascript,typescript,html,vue","prefix": "vue3","body": ["<template>","$1","</template>",""…

webpack5零基础入门-11处理html资源

1.目的 主要是为了自动引入打包后的js与css资源&#xff0c;避免手动引入 2.安装相关包 npm install --save-dev html-webpack-plugin 3.引入插件 const HtmlWebpackPlugin require(html-webpack-plugin); 4.添加插件&#xff08;通过new方法调用&#xff09; /**插件 *…

axios的安装和引用

Axios是一个基于Promise的HTTP库&#xff0c;可以在浏览器和node.js中使用。下面我将简述Axios的安装和引入过程&#xff1a; 安装Axios 首先&#xff0c;你需要使用npm&#xff08;Node Package Manager&#xff09;来安装Axios。打开你的命令行工具&#xff08;在Windows中…

理想汽车面试

今日分享理想汽车&#xff0c;希望大家一起加油 全程55分钟&#xff0c;面试官人挺和气&#xff0c;场景题问题引导的比较多 【八股】 1. 用过哪些Java集合类 2. HashSet 和 HashMap 在使用场景上有什么区别&#xff1f; 3. 任何对象都可以作为 HashMap 的 key 吗&#xff1f;…

Coursera上Golang专项课程3:Concurrency in Go 学习笔记(完结)

Concurrency in Go 本文是 Concurrency in Go 这门课的学习笔记&#xff0c;如有侵权&#xff0c;请联系删除。 文章目录 Concurrency in GoMODULE 1: Why Use Concurrency?Learning Objectives M1.1.1 - Parallel ExecutionM1.1.2 - Von Neumann BottleneckM1.1.3 - Power W…

K8S POD 启动探针 startupProbe 的使用

当我们启动一个POD 时&#xff0c; 当k8s detect 里面的容器启动成功时&#xff0c; 就会认为这个POD 启动完成了&#xff0c; 通常就会在状态里表示 ready 1/1 … 例如 rootk8s-master:~# kubectl get pods NAME READY STATUS RESTARTS AGE bq-api-demo 1…

数字创新的引擎:探索Web3的前沿科技和商业模式

随着数字化时代的不断发展&#xff0c;Web3作为下一代互联网的重要组成部分&#xff0c;正逐渐成为数字创新的引擎。本文将深入探讨Web3的前沿科技和商业模式&#xff0c;揭示其在数字创新领域的重要作用和潜力。 1. 区块链技术的革命性 Web3的核心是区块链技术&#xff0c;它…

Memcached-分布式内存对象缓存系统

目录 一、NoSQL 介绍 二、Memcached 1、Memcached 介绍 1.1 Memcached 概念 1.2 Memcached 特性 1.3 Memcached 和 Redis 区别 1.4 Memcached 工作机制 1.4.1 内存分配机制 1.4.2 懒惰期 Lazy Expiration 1.4.3 LRU&#xff08;最近最少使用算法&#xff09; 1.4.4…

mlflow ui --backend-store-uri 参数详解

在 MLflow 中&#xff0c;--backend-store-uri 参数用于指定 MLflow 后端存储的 URI。这个 URI 定义了 MLflow 如何连接到后端存储&#xff0c;包括数据库类型、主机名、端口号、用户名、密码和数据库名等信息。 在 MLflow 中&#xff0c;--backend-store-uri 参数用于指定 MLf…

Apache Doris 如何基于自增列满足高效字典编码等典型场景需求

自增列&#xff08;auto_increment&#xff09;是数据库中常见的一项功能&#xff0c;它提供一种方便高效的方式为行分配唯一标识符&#xff0c;极大简化数据管理的复杂性。当新行插入到表中时&#xff0c;数据库系统会自动选取自增序列中的下一个可用值&#xff0c;并将其分配…

Qt与MFC:跨平台现代化与传统Windows框架的对比

Qt与MFC&#xff1a;跨平台现代化与传统Windows框架的对比 目录&#xff1a; 引言Qt框架 2.1 跨平台性2.2 现代化设计2.3 信号与槽机制2.4 自动内存管理2.5 开发效率高 MFC框架 3.1 Windows专属3.2 传统的设计3.3 消息映射3.4 手动内存管理3.5 历史悠久 对比分析 4.1 跨平台性…

以太坊开发学习-solidity(二)值类型

文章目录 第一个Solidity程序编译并部署代码变量值类型1. 布尔型2. 整型3. 地址类型4. 定长字节数组 第一个Solidity程序 开发工具&#xff1a;remix 本教程中&#xff0c;我会用remix来跑solidity合约。remix是以太坊官方推荐的智能合约开发IDE&#xff08;集成开发环境&#…

SpringBoot如何优雅实现远程调用

微服务之间的通信方式 常见的方式有两种&#xff1a; RPC——代表-dubbo HTTP——代表-SpringCloud 在SpringCloud中&#xff0c;默认是使用http来进行微服务的通信&#xff0c;最常用的实现形式有两种&#xff1a; RestTemplate Feign

【Spring 篇】走进Java NIO的奇妙世界:解锁高效IO操作的魔法

欢迎来到Java NIO的神奇之旅&#xff01;在这个充满活力的世界里&#xff0c;我们将一起揭示Java NIO&#xff08;New I/O&#xff09;的奥秘&#xff0c;探索其在高效IO操作中的神奇魔法。无需担心&#xff0c;即使你是Java的小白&#xff0c;也能轻松领略这个强大而灵活的IO框…

el-upload的多个文件与单个文件上传

样式图&#xff1a; 场景多个&#xff1a; 使用el-upload上传多个文件 <el-upload class"upload-demo" :action"uploadUrl" :on-remove"handleRemove1":on-success"handleAvatarSuccess1" multiple :limit"5" :on-exc…

高通 8255 基本通信(QUP)Android侧控制方法说明

一&#xff1a;整体说明 高通8255芯片中&#xff0c;SPI IIC UART核心统一由QUP V3 进行控制 QUP V3为可编程模块&#xff0c;可以将不同通道配置为SPI IIC UART通路&#xff0c;此部分配置在QNX侧 QUP 资源可以直接被QNX使用&#xff0c;Android侧可以通过两种方法使用QUP资源…

uniapp+vue3+setup语法糖开发微信小程序时不能定义globalData的解决方法

在使用 uniapp 开发小程序的时候&#xff0c; 发现使用了setup 语法糖 &#xff0c;定义 globalData 时&#xff0c;要不是定义不了&#xff0c; 要不就是使用 getApp()取不到&#xff0c;后来想到一个不伦不类的方法解决了&#xff0c; 这个方法有点难看&#xff0c; 但是解决…