【火爐煉AI】機器學習054-用ICA做盲源分離

【火爐煉AI】機器學習054-用ICA做盲源分離

(本文所使用的Python庫和版本號: Python 3.6, Numpy 1.14, scikit-learn 0.19, matplotlib 2.2 )

盲源分離是指在信號的理論模型和源信號無法精確獲知的情況下捉片,如何從混疊信號中分離出各源信號的過程簇秒。盲源分離的目的是求得源信號的最佳估計姿锭。說的通俗一點,就相當于嚼锄,假如有十個人同時說話凡蜻,我用錄音機把他們說的話都錄下來件豌,得到的肯定是10種聲音的混雜战得,那么怎么將這種混雜聲音分離成單個人的說話聲音?解決類似這種問題就是盲源分離悍募。

獨立成分分析(Independent Components Analysis, ICA)解決的是原始數(shù)據(jù)分解的問題蘑辑,常常用于盲源分離問題中。在我上一篇文章【火爐煉AI】機器學習053-數(shù)據(jù)降維絕招-PCA和核PCA中提到PCA雖然具有各種優(yōu)點坠宴,但是也有幾個缺點洋魂,比如不能對非線性組織的數(shù)據(jù)集降維,針對這個缺點解決方法是用核PCA代替PCA桐玻,另外一個缺點是不能用于解決數(shù)據(jù)集不滿足高斯分布的情況蹋宦,這種情況的數(shù)據(jù)降維要用獨立成分分析ICA來完成。

獨立成分分析師從多維統(tǒng)計數(shù)據(jù)中尋找潛在因子或成分的一種方法脖含,ICA與PCA等降維方法的區(qū)別在于豁翎,它尋找滿足統(tǒng)計獨立和非高斯的成分角骤。其數(shù)學原理和邏輯可以參考博文:獨立成分分析ICA系列2:概念、應用和估計原理


1. 加載數(shù)據(jù)集

首先加載數(shù)據(jù)集心剥,本次所用的數(shù)據(jù)集位于文件mixture_of_signals.txt中启搂,這個文件中有四列數(shù)據(jù),代表四個不同的信號源刘陶,共2000個樣本

data_path="E:\PyProjects\DataSet\FireAI\mixture_of_signals.txt"
df=pd.read_csv(data_path,header=None,sep=' ')
print(df.info()) # 查看數(shù)據(jù)信息,確保沒有錯誤
print(df.head())
print(df.tail())
dataset_X=df.values
print(dataset_X.shape)

繪圖后牢撼,可以看出這些數(shù)據(jù)的分布情況:

image


2. 用傳統(tǒng)PCA來分離信號

假如我們用PCA來進行盲源分離匙隔,可以看看效果怎么樣,代碼為:

# 如果用PCA來進行分離熏版,看看結果如何
from sklearn.decomposition import PCA
pca = PCA(n_components=4)
pca_dataset_X = pca.fit_transform(dataset_X) 
pd.DataFrame(pca_dataset_X).plot(title='PCA_dataset')
image

上面雖然繪制了PCA分離之后的各種信號纷责,但是信號夾雜在一起難以分辨,故而我編寫了一個函數(shù)將其分開顯示

def plot_dataset_X(dataset_X):
    rows,cols=dataset_X.shape
    plt.figure(figsize=(15,20))
    for i in range(cols):
        plt.subplot(cols,1,i+1)
        plt.title('Signal_'+str(i))
        plt.plot(dataset_X[:,i])
        
image


3. 用ICA來分離信號

下面看看用獨立成分分析方法得到的分離后信號:

# 如果用ICA進行信號分離
from sklearn.decomposition import FastICA
ica = FastICA(n_components=4)
ica_dataset_X = ica.fit_transform(dataset_X)
pd.DataFrame(ica_dataset_X).plot(title='ICA_dataset')
image

同理撼短,為了顯示方便再膳,將各種信號單獨畫圖,如下:

image

可以看出曲横,經(jīng)過ICA分離之后得到的信號非常有規(guī)律喂柒,而PCA分離后的信號有些雜亂,表面ICA的盲源分離效果較好禾嫉。

########################小**********結###############################

1灾杰,用ICA可以解決盲源分離問題,所得到的分離效果要比PCA要好得多熙参。

2艳吠,實際上,生活中的真實數(shù)據(jù)集大部分都不是服從高斯分布孽椰,它們一般服從超高斯分布或亞高斯分布昭娩,故而很多問題用PCA得到的效果不太理想,返回用ICA能夠得到比較好的結果黍匾。

#################################################################


注:本部分代碼已經(jīng)全部上傳到(我的github)上栏渺,歡迎下載。

參考資料:

1, Python機器學習經(jīng)典實例膀捷,Prateek Joshi著迈嘹,陶俊杰,陳小莉譯

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市秀仲,隨后出現(xiàn)的幾起案子融痛,更是在濱河造成了極大的恐慌,老刑警劉巖神僵,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件雁刷,死亡現(xiàn)場離奇詭異,居然都是意外死亡保礼,警方通過查閱死者的電腦和手機沛励,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來炮障,“玉大人目派,你說我怎么就攤上這事⌒灿” “怎么了企蹭?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長智末。 經(jīng)常有香客問我谅摄,道長,這世上最難降的妖魔是什么系馆? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任送漠,我火速辦了婚禮,結果婚禮上由蘑,老公的妹妹穿的比我還像新娘闽寡。我一直安慰自己,他們只是感情好尼酿,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布下隧。 她就那樣靜靜地躺著,像睡著了一般谓媒。 火紅的嫁衣襯著肌膚如雪淆院。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天句惯,我揣著相機與錄音土辩,去河邊找鬼。 笑死抢野,一個胖子當著我的面吹牛拷淘,可吹牛的內容都是我干的。 我是一名探鬼主播指孤,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼启涯,長吁一口氣:“原來是場噩夢啊……” “哼贬堵!你這毒婦竟也來了?” 一聲冷哼從身側響起结洼,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤黎做,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后松忍,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蒸殿,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年鸣峭,在試婚紗的時候發(fā)現(xiàn)自己被綠了宏所。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡摊溶,死狀恐怖爬骤,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情莫换,我是刑警寧澤盖腕,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站浓镜,受9級特大地震影響,放射性物質發(fā)生泄漏劲厌。R本人自食惡果不足惜膛薛,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望补鼻。 院中可真熱鬧哄啄,春花似錦、人聲如沸风范。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽硼婿。三九已至锌半,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間寇漫,已是汗流浹背刊殉。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留州胳,地道東北人记焊。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像栓撞,于是被迫代替她去往敵國和親遍膜。 傳聞我的和親對象是個殘疾皇子碗硬,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內容