【Python机器学习】NMF——将NMF应用于模拟信号数据

假设我们对一个信号感兴趣,它是由三个不同信号源合成的:


import matplotlib.pyplot as plt
import mglearnS=mglearn.datasets.make_signals()
plt.figure(figsize=(6,1))
plt.plot(S,'-')
plt.xlabel('Time')
plt.ylabel('Signal')
plt.show()

不幸的是,我们无法观测到原始数据,只能观测到三个信号的叠加混合。我们想要将混合信号分解为原始分量。

假设我们有许多不同的方法来观测混合信号,每种方法都为我们提供了一系列的测量结果:


A=np.random.RandomState(0).uniform(size=(100,3))
X=np.dot(S,A.T)
print('shape of measurements:{}'.format(X.shape))

我们可以用NMF来还原这三个信号:


nmf=NMF(n_components=3,random_state=42)
S_=nmf.fit_transform(X)
print('Recoveres signal shape:{}'.format(S_.shape))

为了对比,应用PCA,并对比NMF和PCA的信号活动:


pca=PCA(n_components=3)
H=pca.fit_transform(X)models=[X,S,S_,H]
names=['Observations (first three measurements)','True sourse','NMF ','PCA ']
fig,axes=plt.subplots(4,figsize=(8,4),gridspec_kw={'hspace':.5},subplot_kw={'xticks':(),'yticks':()})for model,name,ax in zip(models,names,axes):ax.set_title(name)ax.plot(model[:,:3],'-')
plt.show()

途中包含来自X 的100次测量里的3次用于参考。可以看到,NMF在发现原始信号源时得到了不错的结果,而PCA则失败了。要记住,NMF生成的分量是没有顺序的。

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

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

相关文章

大厂面试官问我:布隆过滤器有不能扩容和删除的缺陷,有没有可以替代的数据结构呢?【后端八股文二:布隆过滤器八股文合集】

往期内容: 面试官问我:Redis处理点赞,如果瞬时涌入大量用户点赞(千万级),应当如何进行处理?【后端八股文(1)】-CSDN博客 本文为【布隆过滤器八股文合集】初版&#xff0c…

数据结构:冒泡排序,选择排序,插入排序,希尔排序的实现分析

✨✨小新课堂开课了,欢迎欢迎~✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:数据结构与算法 小新的主页:编程版小新-CSDN博客 1.冒泡排序 1.1算法思想 冒泡排序的基本思想就是&a…

由浅入深,走进深度学习(4)

各位小伙伴大家好,这期内容是深度学习基础的一个进阶,也可以说是夯实一下很多细节内容 个人感受:动手敲一遍,带着思考,会有不一样的感受!!! 代码是比较多的,有很多内容…

全局变量和局部变量

全局变量未初始化,则它的值为0; 局部变量未初始化,则它的值为随机值; 局部变量的作用域是变量所在的局部范围; 全局变量的作用域是整个工程; 生命周期: 变量的生命周期指的是变量从创建到销毁的整个阶段。 局部变量的生…

react实现路由拦截器

1. 路由拦截的概念 路由拦截&#xff1a;在用户导航到某个路由之前&#xff0c;通过某种逻辑来拦截、检查或修改导航行为。它可以用于实现权限控制、身份验证、页面加载前的准备工作等场景。 2. React Router中的路由拦截实现 2.1 使用<Route>组件的render属性 在Rea…

每天一个项目管理概念之关键路径

在项目管理中&#xff0c;关键路径分析&#xff08;Critical Path Method, CPM&#xff09;是计划和控制项目时间表的重要工具。关键路径是项目网络图中从开始到结束的最长路径&#xff0c;它确定了完成整个项目所需的最短时间。任何关键路径上的任务延误都将直接导致整个项目延…

mysql插入blob或longblob的字符串

mysql字段格式是blob的时候&#xff0c;直接插入字符串会异常 insert table (str),values (aaaa)会异常 需要将字符串转为0x格式的16进制字符串才行 aaaa转换之后为61616161 insert table (str),values (0x61616161)java将字符串转16进制字符串 "0x"DatatypeConver…

使用zdppy结合onlyoffice开发第一个网页文档应用

docserver环境搭建 禁用JWT 加载镜像&#xff1a; docker load -i docserver:7运行容器&#xff1a; docker run -itd -p 8080:80 --name docserver -e JWT_ENABLEDfalse --restartalways onlyoffice/documentserver:7.3.2docker run -itd -p 8080:80 --name docserver -…

字节跳动:从梦想之芽到参天大树

字节跳动掌舵人&#xff1a;张一鸣 2012年&#xff1a;梦想的起点&#xff1a;在一个阳光明媚的早晨&#xff0c;北京的一座普通公寓里&#xff0c;一位名叫张一鸣的年轻人坐在电脑前&#xff0c;眼中闪烁着坚定的光芒。他的心中有一个梦想——通过技术改变世界&#xff0c;让…

如何使用Java实现高效的多线程编程

如何使用Java实现高效的多线程编程 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 引言 在当今软件开发领域中&#xff0c;多线程编程是一项关键技能。它能够…

嵌入式实验---实验六 I2C传输实验

一、实验目的 1、掌握STM32F103I2C传输程序设计流程&#xff1b; 2、熟悉STM32固件库的基本使用。 二、实验原理 1、本案例利用I/O端口通过KEY01按键来控制STM32F103R6向24C02写入“hello”&#xff0c;通过另外一个按键KEY02来控制STM32F103R6从24C02读取“hello”&#x…

又一个前后端分离的整合了OpenAI大模型的高并发、高性能和可扩展的项目完结了,写到简历上,嘎嘎强!

大家好&#xff0c;我是冰河~~ 经过四个多月的坚持&#xff0c;《分布式IM即时通讯系统》终于完结了&#xff0c;也感谢大家这四个多月以来的坚持和陪伴&#xff0c;也相信大家在《分布式IM即时通讯系统》专栏中&#xff0c;学到了不少知识和技术。接下来&#xff0c;我们就一…

[C++][设计模式]介绍

目录 1.设计模式1.何为设计模式&#xff1f;2.深入理解面向对象3.软件设计的目标4.三大模式及其特点5.设计模式分类 2.面向对象设计原则1.为什么要面向对象2.重新认识面向对象3.面向对象设计原则4.C对象模型 3.重构1. 重构获得模式(Refactoring to Patterns)2.重构关键技法 4.代…

代码随想录leetcode200题之图论

目录 1 介绍2 训练3 参考 1 介绍 本博客用来记录代码随想录leetcode200题之图论相关题目。 2 训练 题目1&#xff1a;98. 所有可达路径 解题思路&#xff1a;有向图&#xff0c;dfs(fa, node)。 C代码如下&#xff0c; #include <bits/stdc.h>using namespace std;…

归并排序代码

主程序 int main(int argc, char const *argv[]) {int arr[] {9,5,2,7};int n sizeof(arr)/siezof(arr[0]);print_arr(arr,n);//打印数组merge_sort(arr, n);//分类数组print_arr(arr,n);//打印数组return 0; } 归并排序入口 //归并排序入口 void merge_sort(int arr[], in…

一文带你了解集装箱箱号识别原理,OCR识别及深度学习

如果要想知道集装箱箱号识别原理&#xff0c;首先需要知道什么是集装箱号&#xff08;装运出口货物的集装箱箱号&#xff09;标准集装箱箱号由11位编码组成包括三个部分&#xff1a; 第一部分由4位英文字母组成。前三位代码主要说明箱主、经营人&#xff0c;第四位代码说明集装…

【Oracle】实验二 体系结构、存储结构与各类参数

【实验目的】 理解Oracle体系结构了解初始化参数文件以及初始化参数的含义掌握查看三类数据字典视图和动态性能视图的方法 【实验内容】 如何查看初始化参数&#xff1f;有哪几种方法&#xff1f;初始化参数文件有几种&#xff1f;默认的保存位置在哪里&#xff1f;在SQL*Pl…

【开发】内网穿透ztncui搭建私有节点

文章目录 写在前面一键部署ztnuci记录后续 写在前面 前面搭建moon节点转发的确会降低延迟&#xff0c;但是总有出现moon节点解析不成功的例子&#xff0c;于是疯狂寻找答案是为什么&#xff1f;终于在知乎上找到这样一个答案。 一键部署ztnuci 参考这篇很完善的教程和贴心的…

AI味太重怎么办?1个超简单的方法就能解决

我们知道随着GPT技术的迅速发展&#xff0c;解决了我们大部分写作的难题。但是很多小伙伴想必都会遇到同样的问题&#xff0c;就是写出来的文章太正式-我们叫这“AI味”。 这AI味让人感觉内容虽然条理清楚&#xff0c;但就是缺了点人情味&#xff0c;读起来不够亲切。 其实&a…

基于YOLOv5的口罩佩戴检测系统的设计与实现(PyQT页面+YOLOv5模型+数据集)

简介 在各种工作环境和公共场所,确保人们正确佩戴口罩对个人防护和公共卫生至关重要,尤其是在医疗设施、制造业车间和拥挤的公共交通中。为了满足这一需求,我们开发了一种基于YOLOv5目标检测模型的口罩佩戴检测系统。本项目不仅实现了高精度的口罩佩戴检测,还设计了一个可…