特征提取从初始的一组测量数据开始,并建立旨在提供信息和非冗余的派生值(特征),从而促进后续的学习和泛化步骤,并且在某些情况下带来更好的可解释性。本节主要讲述2种特征提取方法:PCA主成分分析法用于特征提取、非负矩阵分解用于特征提取。

对人脸数据集进行特征提取

PCA主成分分析法用于特征提取

基本思想从一组特征中计算出一组按照重要性的大小从大到小依次排列的新特征,它们是原有特征的线性组合,并且新特征之间不相关, 我们计算出原有特征在新特征上的映射值即为新的降维后的样本。
Python代码实现:

mlp=MLPClassifier(hidden_layer_sizes=[100,100], random_state=62,max_iter=400)
mlp.fit(X_train, y_train)
print('模型识别准确率:{:.2f}'.format(mlp.score(X_test, y_test)))
pca = PCA(whiten=True, n_components=0.9, random_state=62).fit(X_train)
X_train_whiten = pca.transform(X_train)
X_test_whiten = pca.transform(X_test)
print('白化后数据形态:{}'.format(X_train_whiten.shape))
mlp.fit(X_train_whiten, y_train)
print('数据白化后模型识别准确率:{:.2f}'.format(mlp.score(X_test_whiten, y_test)))

模型识别准确率:0.55
数据白化后模型识别准确率:0.58
结果分析:模型的准确率轻微的提高了,PCA的数据白化功能对于提高神经网络模型的准确率是有一定帮助的。

非负矩阵分解用于特征提取

非负矩阵分解是指矩阵中所有元素均为非负数约束条件之下的矩阵分解方法。
Python代码实现:

from sklearn.decomposition import NMF
nmf = NMF(n_components=105,random_state=62).fit(X_train)
X_train_nmf = nmf.transform(X_train)
X_test_nmf = nmf.transform(X_test)
print('NMF处理后数据形态:{}'.format(X_train_nmf.shape))
mlp.fit(X_train_nmf, y_train)
print('nmf处理后模型准确率:{:.2f}'.format(mlp.score(X_test_nmf,y_test)))

nmf处理后模型准确率:0.54
结果分析:NMF处理后的数据训练的神经网络模型准确率和PCA处理后的模型准确率基本持平,略微低一点点。
与PCA不同:
(1)降低NMF的成分数量,会重新生成新的成分,而新的成分和原来的成分是完全不一样的;
(2)NMF中的成分是没有顺序的。

算法笔记(15)特征提取及Python代码实现相关推荐

  1. 【负荷预测】基于灰色预测算法的负荷预测(Python代码实现)

    目录 1 概述 2 流程图 3 入门算例  4 基于灰色预测算法的负荷预测(Python代码实现) 1 概述 "由于数据列的离散性,信息时区内将出现空集(不包含信息的定时区),因此只能按近似 ...

  2. 联邦学习算法介绍-FedAvg详细案例-Python代码获取

    联邦学习算法介绍-FedAvg详细案例-Python代码获取 一.联邦学习系统框架 二.联邦平均算法(FedAvg) 三.联邦随梯度下降算法 (FedSGD) 四.差分隐私随联邦梯度下降算法 (DP- ...

  3. 【强化学习】Sarsa算法求解悬崖行走问题 + Python代码实战

    文章目录 一.Sarsa算法简介 1.1 更新公式 1.2 预测策略 1.3 详细资料 二.Python代码实战 2.1 运行前配置 2.2 主要代码 2.3 运行结果展示 2.4 关于可视化寻路过程 ...

  4. 【强化学习】Q-Learning算法求解悬崖行走问题 + Python代码实战

    文章目录 一.Q-Learning算法简介 1.1 更新公式 1.2 预测策略 1.3 详细资料 二.Python代码实战 2.1 运行前配置 2.2 主要代码 2.3 运行结果展示 2.4 关于可视 ...

  5. pythonsort函数时间复杂度_合并排序算法——时间复杂度详解和python代码实现

    递归形式 递归形式是算法中常用到的一种构造思路.递归允许函数或过程对自身进行调用,是对算法中重复过程的高度概括,从本质层面进行刻画,避免算法书写中过多的嵌套循环和分支语法.因此,是对算法结构很大的简化 ...

  6. 麻雀优化算法 优化XGBoost的参数 python代码

    文章目录 麻雀优化算法 麻雀优化算法的改进 加入Ten混沌序列 XGBoost原理 麻雀优化算法优化XGBoost 参数范围 部分代码 画图 优化结果 评价结果和运行时间 适应度曲线 训练集结果 测试 ...

  7. Dijkstra 路径规划算法原理详解及 Python 代码实现

    荷兰数学家 E.W.Dijkstra 于 1959 年提出了 Dijkstra 算法,它是一种适用于 非负权值 网络的 单源最短路径算法,同时也是目前求解最短路径问题的理论上最完备.应用最广的经典算法 ...

  8. 基于遗传算法GA算法优化BP神经网络(Python代码实现)

    一. 概述 BP-GA算法的设计︰基于遗传算法的BP神经网络算法(以下简称BP-GA)就是在BP神经网络的学习过程中,将权重和阀值描述为染色体,并选取适宜的适应函数,然后进行GA迭代,直到某种意义上的 ...

  9. 多标签算法:MASP 的理论与Python代码分析

    本篇文章是基于导师与师姐发布的论文: Xue-Yang Min, Kun Qian, Ben-Wen Zhang, Guojie Song, and Fan Min, Multi-label acti ...

最新文章

  1. Codeforces 854 C Planning 贪心 最大堆
  2. 【 C 】结构的自引用
  3. ggtree实现系统发育树可视化
  4. 函数调用oracle,oracle 函数调用
  5. Makefile_04:Makefile变量初了解
  6. Customize a Scheduling Policy
  7. jq选择器||基本选择器 层级选择器 属性选择器 过滤选择器 表单过滤选择器
  8. matlab 两幅图不同,如何把两个不同M文件的图放在一起
  9. 互联网项目管理流程(SOP)总结
  10. 7、Ktor学习-配置服务器;
  11. mongodb 非 admin 库 认证登陆失败 原因(百度好多都 是渣)db.addUser() 请走开。
  12. webservice视频教程-基于SOA 思想下的WebService实战
  13. python 爬虫基础——淘宝评论
  14. 火绒盾广告拦截提取 内置WINCC PCS7硬狗弹框提示拦截
  15. 中职计算机组装与维护实训教案,《计算机组装与维护》——计算机组装与维修的基础知识教学教案(中职教育)...
  16. echarts Map(地图) 波纹数据点
  17. 108. 将有序数组转换为二叉搜索树
  18. 如何学计算机打字,电脑如何快速学会打字
  19. linux添加mx记录,在C linux中查询MX记录
  20. Linux笔记------关闭系统漏洞补丁(spectre meltdown补丁)

热门文章

  1. MATLAB仿真方波:周期,频谱,脉宽对信号影响(时频分析)
  2. 计算机毕业设计Java医院分诊管理系统(系统+源码+mysql数据库+Lw文档)
  3. tplinkac2600评测_千兆双频家庭路由器测评之:华为、小米、小k云管家、TP-LINK
  4. Python + Neo4j(安装)可视化分析漫威十年人物关系图谱
  5. C++生产流水线的自动设计器(编译原理NFA-DFA)
  6. php获取ip 然后返回地址,PHP调用纯真IP数据库返回具体地址的方法
  7. 如何用python解方程?
  8. CSS3 3D动画(一)
  9. python 暂停后等待按任意键继续,实现python版本的按任意键继续/退出
  10. 第4讲 项目1----点阵图