入门版python实现独立成分分析法ICA
只讲用法,不讲原理。
前提条件:安装好python,并安装好numpy、matplotlib、sklearn库。
win10安装方法:打开cmd, cd python , pip install numpy,显示collecting numpy后会进行下载并安装;如果下载安装失败,就去显示collecting numpy后给出的链接那儿手动下载,手动下载好了后,cd到保存的路径,然后pip install ***(***指文件名)。
安装成功后,打开IDLE输入import numpy,不报错的话就是安装成功了。如果安装不成功,检查下环境变量里是否已添加python路径,若无,则添加。
import numpy as np
import matplotlib.pyplot as plt
from sklearn.decomposition import FastICA#导入函数
经过FastICA处理后,此时的数据源在图形形状上跟初始数据源具有相似性,但幅度是不一样的,且可能会发生翻转,这是因为ICA是一个不定问题,有多个解符合假设,不是唯一解。
将三个信号进行随机线性混合,得到三个混合信号;然后用FastICA算法进行解混,得到三个源信号。
完整可实现代码部分如下:
import numpy as np
import matplotlib.pyplot as plt
from sklearn.decomposition import FastICA
C = 200
x = np.arange©
a = np.linspace(-2, 2, 25)
s1 = np.array([a, a, a, a, a, a, a, a]).reshape(200, )
s2 = 2 * np.sin(0.02 * np.pi * x)
s3 = np.array(20 * (5 * [2] + 5 * [-2]))
ax1 = plt.subplot(311)
ax2 = plt.subplot(312)
ax3 = plt.subplot(313)
ax1.plot(x,s1)
ax2.plot(x,s2)
ax3.plot(x,s3)
plt.show()
s=np.array([s1,s2,s3])
ran=2*np.random.random([3,3])
mix=ran.dot(s)
ax1 = plt.subplot(311)
ax2 = plt.subplot(312)
ax3 = plt.subplot(313)
ax1.plot(x,mix[0,:])
ax2.plot(x,mix[1,:])
ax3.plot(x,mix[2,:])
plt.show()
ica = FastICA(n_components=2)
mix = mix.T
u = ica.fit_transform(mix)
u = u.T
ax1 = plt.subplot(311)
ax2 = plt.subplot(312)
ax3 = plt.subplot(313)
ax1.plot(x,u[0,:])
ax2.plot(x,u[1,:])
ax3.plot(x,u[2,:])
plt.show()
运行结果如下:
将代码稍加改变,可实现:
直接给出混合信号,用FastICA算法进行解混;
将n个混合信号进行解混得到m个源信号(n≥m)……
入门版python实现独立成分分析法ICA相关推荐
- Python专栏 | 独立成分分析(ICA)的实例应用:消除伪影信号
关注微信公众号:脑机接口研习社 了解脑机接口最近进展 系列文章目录 Python专栏 | 脑电图和脑磁图(EEG/MEG)的数据分析方法之载入数据 Python专栏 | MNE脑电数据(EEG/MEG ...
- 主成分分析(PCA)和独立成分分析(ICA)相关资料
来源:知乎:独立成分分析(ICA)与主成分分析(PCA)的区别在哪里(https://www.zhihu.com/question/28845451) - 一楼:魏天闻 首先回答题主的问题:不管是PC ...
- 机器学习笔记 - 独立成分分析(ICA)
1.概述 独立分量分析 (ICA) 是一种机器学习方法,其中将多元信号分解为不同的非高斯信号.它侧重于独立来源.由于混频处理未知,所以常用ICA作为黑盒.与寻求最大化数据点方差的主成分分析不同. 噪声 ...
- 独立成分分析(ICA)
1.概念 独立成分分析是从多元(多维)统计数据中寻找潜在因子或成分的一种方法.ICA与其它的方法重要的区别在于,它寻找满足统计独立和非高斯的成分.这里我们简要介绍ICA的基本概念.应用和估计原理. 1 ...
- 主成分分析 (PCA) 和独立成分分析 (ICA)附Matlab代码
✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步进步,matlab项目目标合作可私信.
- 【详细版】独立成分分析:算法和应用(一)
独立成分分析:算法和应用 翻译原文+自己的理解 原文:Independent component analysis: algorithms and applications 作者:A. Hyvarin ...
- 机器学习教程 之 独立成分分析:PCA的高阶版
有好些天没写博客了,最近一直忙着在看论文,解模型,着实有点头痛.今天趁着又到周末了更一帖(其实是模型解不下去了-),这次来说一下一个在信号分析与数据挖掘领域颇为使实用的算法,独立成分分析(ICA),这 ...
- Python专栏 | MNE数据预处理方法——独立成分分析
关注微信公众号:脑机接口研习社 了解脑机接口最近进展 系列文章目录 Python专栏 | 脑电图和脑磁图(EEG/MEG)的数据分析方法之载入数据 Python专栏 | MNE脑电数据(EEG/MEG ...
- Stanford UFLDL教程 独立成分分析
独立成分分析 Contents [hide] 1概述 2标准正交ICA 3拓扑ICA 4中英文对照 5中文译者 概述 试着回想一下,在介绍 稀疏编码算法中我们想为样本数据学习得到一个超完备基(over ...
最新文章
- mstsc连接远程桌面如何挂载本地磁盘
- Ubuntu 调节屏幕亮度
- python流行趋势_Python流行度再创新高,学Python就从风变编程开始
- 全部换新-微软复兴.NET,C#10 .NET6 VS2022各个强势!
- obj.val 非数组_在Ruby中使用Array.new(size,obj)创建数组
- 钟南山:疫情1周或10天左右达到高峰,不会大规模增加了!
- 删除root 家目录,及恢复方法
- paip.docfile二进制复合文档
- 5种回到顶部的写法从实现到增强
- 万能视频格式转换器 v 2018 全能版
- 苹果 WWDC21 发布会全汇总,iOS 15更个性化,全家桶协作更有生产力
- tensorflow详细安装教程(Win10, Anaconda,Python3.9)
- php获取真实客户端IP方法
- 华为怎么设置计算机快捷,使用命令快速设置华为路由器
- (二)QT5.14.2连接MySQL并使用QtableView显示数据表内容
- ElasticJob笔记
- 独家 度小满教育、医美分期不做直营了
- 怎么退出python
- linux asp可以运行吗,宝塔linux面板可以搭建运行asp网站程序吗
- 哨兵模式查询redis服务器ip