sklearn.decomposition.FastICA实现FastICA算法

关于sklearn.decomposition.FastICA的介绍http://lijiancheng0614.github.io/scikit-learn/modules/generated/sklearn.decomposition.FastICA.html

import numpy as np
import matplotlib.pyplot as plt
from sklearn.decomposition import FastICAC = 200  # 样本数
x = np.arange(C)
s1 = 2 * np.sin(0.02 * np.pi * x)  # 正弦信号a = np.linspace(-2, 2, 25)
s2 = np.array([a, a, a, a, a, a, a, a]).reshape(200, )  # 锯齿信号
s3 = np.array(20 * (5 * [2] + 5 * [-2]))  # 方波信号
s4 = 4 * (np.random.random([1, C]) - 0.5).reshape(200, ) #随机信号
"""画出4种信号"""
ax1 = plt.subplot(411)
ax2 = plt.subplot(412)
ax3 = plt.subplot(413)
ax4 = plt.subplot(414)
ax1.plot(x,s1)
ax2.plot(x,s2)
ax3.plot(x,s3)
ax4.plot(x,s4)
plt.show()
"""将4种信号混合
其中mix矩阵是混合后的信号矩阵,shape=[4,200]"""
s=np.array([s1,s2,s3,s4])
ran=2*np.random.random([4,4])
mix=ran.dot(s)
ax1 = plt.subplot(411)
ax2 = plt.subplot(412)
ax3 = plt.subplot(413)
ax4 = plt.subplot(414)
ax1.plot(x,mix[0,:])
ax2.plot(x,mix[1,:])
ax3.plot(x,mix[2,:])
ax4.plot(x,mix[3,:])
plt.show()ica = FastICA(n_components=4) #独立成分为4个
mix = mix.T #将信号矩阵转为[n_samples,n_features],即[200,4]
u = ica.fit_transform(mix) # u为解混后的4个独立成分,shape=[200,4]
u = u.T # shape=[4,200]
print(ica.n_iter_) # 算法迭代次数
"""画出解混后的4种独立成分"""
ax1 = plt.subplot(411)
ax2 = plt.subplot(412)
ax3 = plt.subplot(413)
ax4 = plt.subplot(414)
ax1.plot(x,u[0,:])
ax2.plot(x,u[1,:])
ax3.plot(x,u[2,:])
ax4.plot(x,u[3,:])
plt.show()

还有另外一种得到独立成分的写法,思路是将求得的解混矩阵和混合信号矩阵相乘得到独立成分,代码如下:

"""前面一样"""
ica = FastICA(n_components=4)
mix = mix.T
ica.fit(mix)
w = ica.components_ #解混矩阵,shape=[n_components, n_features],即[4,4]
u = np.dot(w,mix.T) #解混矩阵和混合信号相乘得到独立成分
print(ica.n_iter_)
ax1 = plt.subplot(411)
ax2 = plt.subplot(412)
ax3 = plt.subplot(413)
ax4 = plt.subplot(414)
ax1.plot(x,u[0,:])
ax2.plot(x,u[1,:])
ax3.plot(x,u[2,:])
ax4.plot(x,u[3,:])
plt.show()

 

 

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

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

相关文章

四大运营商的5G部署路线一览

来源:数据观综合报道6月6日,工信部正式向中国移动、中国电信、中国联通和中国广电发放5G商用牌照。至此,中国成为继韩国、美国、瑞士、英国之后,全球第五个开通5G服务的国家。自2016年启动5G试验以来,短短两年时间&…

Ubuntu16.04安装JDK1.8

1. 首先将jdk文件拖拽到虚拟机桌面位置,使用VMware的可以安装高级工具Tools,这样可以实现文件的拖拽。如果没有Tools,也可以使用xftp软件进行文件传输,在此不做具体介绍。 2. 切换到文件所在目录,并将jdk文件移动到安…

hibernate映射-单向n-n关联关系

(学习记录,错误不足之处,请您耐心指正^_^) hibernate映射-多对多关联关系 n-n关联必须使用连接表才能完成, 一、代码示例: {类文件↓} Category.class 1 package com.zit.hibernate.n2n;2 3 import java.ut…

word公式居中,编号右对齐

本文介绍一种word文档实现公式居中,编号右对齐的简单易行的方法:制表法 首先插入一个一行3列的表格: 将公式放进第二个单元格,编号放进第三个单元格,第二个单元格格式居中,第三个单元格格式右对齐&#xf…

Ubuntu16.04 SSH 免密登录

1. 生成公钥,输入命令后按四个回车。 ssh-keygen -t rsa 2. 进入到.ssh文件夹下,然后追加公钥到公共文件 cd .ssh cat id_rsa.pub >> authorized_keys 3. 测试免密登录 ssh localhost

Facebook数字货币凸显硅谷雄心:打造全球金融操作系统

来源:腾讯科技腾讯科技讯 6月22日消息,据外媒报道,正如美国当代声名卓著的剧作家、电影编剧大卫马梅特(David Mamet)曾经写道的那样:“每个人都需要钱,这就是人们为何称其为钱的原因!”当你有比任何人所需要…

Hadoop分布式集群搭建详细过程

1. 首先用五台机器搭建分布式,一个为master,剩下四个分别为slave01、slave02、slave03, slave04。 2. 修改机器名 五台机器分别都执行sudo vim /etc/hostname命令,将文件中的内容分别改为master、slave01、slave02、slave03&…

徐匡迪、潘云鹤等纷纷撰文,关于人工智能的最新判断都在这里了

来源:《前沿科学》编者按人工智能,近年来成为世界主要发达国家战略中的战略,力争抢占新一轮科技革命的制高点。在移动互联网、大数据、超级计算、传感网、脑科学等新理论新技术的驱动下,新一代人工智能加速发展,不断拓…

HDU 5600(瞎搞)

第一场Bestcoder居然爆零。。果然是too naive。。小聪明全部直接输出“YES”过了pretest,结果被叉也是&%$% 找到规律传递下就好。后来看官方题解感觉逼格好高。。然而就是瞎搞,找找规律就好 #include"cstdio" #include"queue" #…

CCAI 2019 | 郑南宁:“自觉性AI技术”可助力无人驾驶

来源:人工智能前沿讲习CCAI 20192019年中国人工智能大会(Chinese Congress on Artificial Intelligence 2019,简称“CCAI 2019”)将于在9月21日-22日在青岛胶州召开。谷歌、特斯拉,百度、滴滴、蔚来……如今从国外到国…

使用Hadoop自带的例子wordcount实现词频统计

Hadoop中自带的hadoop-mapreduce-examples-2.7.6.jar含有一些事例,本文将用wordcount实现词频统计。具体步骤如下: 1. 启动Hadoop 切换到Hadoop安装目录下的sbin目录下执行./start-all.sh命令 或执行./start-dfs.sh和./start-yarn.sh两条命令 2. 在集群…

使用Hadoop自带的例子pi计算圆周率

Hadoop中自带的hadoop-mapreduce-examples-2.7.6.jar含有一些事例,本文将用pi计算圆周率。若想了解其计算原理,参考:http://thinkinginhadoop.iteye.com/blog/710847。 具体步骤如下: 1. 启动Hadoop 切换到Hadoop安装目录下的sb…

.net core 生成jwt+swagger-通过 IHttpContextAccessor读取token信息

1.安装jwt相关包 <ItemGroup><PackageReference Include"Microsoft.AspNetCore.Authentication.JwtBearer" Version"6.0.25" /><PackageReference Include"Microsoft.IdentityModel.Tokens" Version"7.0.3" /><P…

NATURE 人工智能 | 神奇的粒子机器人

没想到吧&#xff0c;像细胞一样自由组合灵活多变的机器人正在从科幻电影中走出来。就像在伤口愈合是活细胞聚集并集体迁移的过程。在生物系统中&#xff0c;群体的大规模集体迁移是通过组件的耦合和协调来实现的&#xff0c;在伤口愈合的过程中&#xff0c;活细胞聚集并集体迁…

表单校验---struts2

一 写validate方伐 1 让你的Action继承ActionSupport类&#xff0c; 重写validate方法&#xff0c;&#xff08;或validateXxxx&#xff09; 判断&#xff0c;写入错误信息 jsp中用标签显示&#xff0c;struts。xml中配置转向的页面 package he.action;import java.util.Map;…

城市大脑与智慧城市前沿趋势

近年来&#xff0c;智慧城市建设出现新的动向&#xff0c;包括城市大脑、城市云脑、城市超级大脑、城市超脑、城市神经网络等“泛城市大脑”概念也大量涌现。杭州、上海、北京、广州等城市各自提出和开展了不同城市大脑建设方案&#xff0c;其中上海市开展了以建设城市神经元系…

在iOS 8中使用UIAlertController

iOS 8的新特性之一就是让接口更有适应性、更灵活&#xff0c;因此许多视图控制器的实现方式发生了巨大的变化。全新的UIPresentationController在实现视图控制器间的过渡动画效果和自适应设备尺寸变化效果&#xff08;比如说旋转&#xff09;中发挥了重要的作用&#xff0c;它有…

MapReduce分析NCDC 年气象数据最低温度与最高温度

利用hadoop计算技术对采集的气象数据信息进行处理&#xff0c;主要分两个阶段&#xff1a;mapper阶段和reducer阶段&#xff0c;mapper阶段主要是对日志文件进行按行读取并进行字符串截取&#xff0c;reducer阶段对mapper阶段传过来的数据进行大小比较&#xff0c;最终获取每一…

非侵入脑机接口新突破!用意念控制光标,连续追踪效果提升5倍

来源&#xff1a;智东西看点&#xff1a;CMU研究人员在使用非侵入式脑机接口开发了第一个成功用意念控制的机械臂&#xff0c;展现了连续追踪和跟踪计算机光标的能力。智东西6月23日消息&#xff0c;卡内基梅隆大学与明尼苏达大学的研究人员在非侵入式机器人设备控制领域取得了…

AI芯片的长征之路:挑战与机遇

来源&#xff1a; 半导体行业观察前言&#xff1a;笔者有幸受邀在六月初北京举行的首届亚洲AI硬件峰会&#xff08;AI Hardware Summit Asia&#xff09;上发表了开幕主题演讲&#xff0c;与全世界的AI硬件专家分享了我对行业的一些看法和想法。演讲以英文形式进行&#xff0c;…