91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 4KB
    文件類(lèi)型: .py
    金幣: 1
    下載: 1 次
    發(fā)布日期: 2021-06-13
  • 語(yǔ)言: Python
  • 標(biāo)簽: ICA??python??

資源簡(jiǎn)介

文件中不用python自帶的工具實(shí)現(xiàn)了ICA的過(guò)程,可以直接使用,并文件中可以直接用圖示展示ICA處理前后數(shù)據(jù)的變化。

資源截圖

代碼片段和文件信息

#?-*-?coding:UTF-8?-*-
#!/usr/bin/env?python

#?encoding:?utf-8

‘‘‘

@author:?malingyu

@contact:?1078553270@qq.com

@software:?

@file:?ICA_Test.py

@time:?2017/8/29?15:02
‘‘‘
#!/usr/bin/env?python

#FastICA?from?ICA?book?table?8.4
import?scipy.io?as?sio
import?math
import?random
import?matplotlib.pyplot?as?plt
from?numpy?import?*
import?ICA
n_components?=?2

def?f1(x?period?=?4):
????return?0.5*(x-math.floor(x/period)*period)

def?create_data():
????#data?number
????n?=?500
????#data?time
????T?=?[0.1*xi?for?xi?in?range(0?n)]
????#source
????S?=?array([[sin(xi)??for?xi?in?T]?[f1(xi)?for?xi?in?T]]?float32)
????#mix?matrix
????A?=?array([[0.8?0.2]?[-0.3?-0.7]]?float32)
????return?T?S?dot(A?S)
def?whiten(X):
????#zero?mean
????X_mean?=?X.mean(axis=-1)
????X?-=?X_mean[:?newaxis]
????#whiten
????A?=?dot(X?X.transpose())
????D??E?=?linalg.eig(A)
????#?D2?=?linalg.inv(array([[D[0]?0.0]?[0.0?D[1]]]?float32))
????#?D2[00]?=?sqrt(D2[00]);?D2[11]?=?sqrt(D2[11])
????D2=sqrt(linalg.inv(diag(D)))
????V?=?dot(D2?E.transpose())
????return?dot(V?X)?V
def?_logcosh(x?fun_args=None?alpha?=?1):
????gx?=?tanh(alpha?*?x?x);
????g_x?=?gx?**?2;
????g_x?-=?1.;
????g_x?*=?-alpha
????return?gx?g_x.mean(axis=-1)
def?do_decorrelation(W):
????#black?magic
????s?u?=?linalg.eigh(dot(W?W.T))
????return?dot(dot(u?*?(1.?/?sqrt(s))?u.T)?W)
def?do_fastica(X):
????n?m?=?X.shape;?p?=?float(m);?g?=?_logcosh
????#black?magic
????X?*=?sqrt(X.shape[1])
????#create?w
????W?=?ones((nn)?float32)
????for?i?in?range(n):
????????for?j?in?range(i):
????????????W[ij]?=?random.random()
????#compute?W
????maxIter?=?1000
????for?ii?in?range(maxIter):
????????#?-----------------nandian
????????gwtx?g_wtx?=?g(dot(W?X))
????????W1?=?do_decorrelation(dot(gwtx?X.T)?/?p?-?g_wtx[:?newaxis]?*?W)
????????lim?=?max(?abs(abs(diag(dot(W1?W.T)))?-?1)?)
????????W?=?W1
????????if?lim?????????????break

評(píng)論

共有 條評(píng)論