高維數(shù)據(jù)可視化Visualizing data using t-SNE

t-SNE高維數(shù)據(jù)可視化(python)這篇文章非常好,貼出來(lái)的代碼绅这,直接可正確運(yùn)行。 t-SNE算法理解:An illustrated introduction to the t-SNE algorithm? ?也可以了解一下:Python數(shù)據(jù)可視化模塊—Seaborn

一甘耿、什么是t-SNE?

t-SNE(t-distributedstochastic neighbor embedding?)是目前最為流行的一種高維數(shù)據(jù)降維的算法搓茬。

對(duì)計(jì)算機(jī)而言,處理高維數(shù)據(jù)絕對(duì)沒(méi)問(wèn)題试浙,但是人類能感知的確只有三個(gè)維度董瞻,因此很有必要將高維數(shù)據(jù)可視化的展現(xiàn)出來(lái)。那么如何將數(shù)據(jù)集從一個(gè)任意維度的降維到二維或三維呢田巴?钠糊??T-SNE就是一種數(shù)據(jù)降維的算法壹哺,其成立的前提是基于這樣的假設(shè)盡管現(xiàn)實(shí)世界中的許多數(shù)據(jù)集是嵌入在高維空間中抄伍,但是都具有很低的內(nèi)在維度。也就是說(shuō)高維數(shù)據(jù)經(jīng)過(guò)降維后管宵,在低維狀態(tài)下更能顯示出其本質(zhì)特性截珍。這就是流行學(xué)習(xí)的基本思想,也稱為非線性降維箩朴。

二岗喉、代碼解讀

下面就展示一下如何使用t-SNE算法可視化sklearn庫(kù)中的手寫字體數(shù)據(jù)集。詳細(xì)隧饼,請(qǐng)參考t-SNE高維數(shù)據(jù)可視化(python)這篇文章沈堡。

import numpyas np

import sklearn

from sklearn.manifold import TSNE

from sklearn.datasets import load_digits

RS =20150101

import matplotlib.pyplot as plt

import matplotlib.patheffects as PathEffects

import matplotlib

# We import seaborn to make nice plots.

import seabornas sns

sns.set_style('darkgrid')

sns.set_palette('muted')

sns.set_context("notebook", font_scale=1.5,

? ? ? ? ? ? ? ? rc={"lines.linewidth":2.5})

digits = load_digits()

# We first reorder the data points according to the handwritten numbers.

# ###X.shape=[1797,64]? 點(diǎn)數(shù)1797 維度64

X = np.vstack([digits.data[digits.target==i]for iin range(10)])

# print(X[0])

# ###y.shape=[1797]? 點(diǎn)的標(biāo)簽1797

y = np.hstack([digits.target[digits.target==i]for iin range(10)])

# print(y[0])

# ###使用TSNE算法將高維度數(shù)據(jù)點(diǎn)進(jìn)行降維處理

# ###X.shape=[1797,64]? 降維后為:[1797,2],即digits_proj.shape=[1797,2]

digits_proj = TSNE(random_state=RS).fit_transform(X)

def scatter(x, colors):

# We choose a color palette with seaborn.

? ? palette = np.array(sns.color_palette("hls", 10))

# We create a scatter plot.

? ? f = plt.figure(figsize=(8, 8))

ax = plt.subplot(aspect='equal')

sc = ax.scatter(x[:,0], x[:,1], lw=0, s=40,

? ? ? ? ? ? ? ? ? ? c=palette[colors.astype(np.int)])

plt.xlim(-25, 25)

plt.ylim(-25, 25)

ax.axis('off')

ax.axis('tight')

# We add the labels for each digit.

? ? txts = []

for iin range(10):

# Position of each label.

? ? ? ? xtext, ytext = np.median(x[colors == i, :], axis=0)

txt = ax.text(xtext, ytext, str(i), fontsize=24)

txt.set_path_effects([

PathEffects.Stroke(linewidth=5, foreground="w"),

? ? ? ? ? ? PathEffects.Normal()])

txts.append(txt)

return f, ax, sc, txts

# ##調(diào)用自定義的函數(shù),畫出數(shù)據(jù)分布的散點(diǎn)圖

scatter(digits_proj, y)

plt.savefig('digits_tsne-generated.png', dpi=120)

plt.show()

參考文章:

【1】t-SNE高維數(shù)據(jù)可視化(python)

【2】An illustrated introduction to the t-SNE algorithm

【3】python科學(xué)計(jì)算數(shù)據(jù)可視化模塊-seaborn

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末燕雁,一起剝皮案震驚了整個(gè)濱河市诞丽,隨后出現(xiàn)的幾起案子鲸拥,更是在濱河造成了極大的恐慌,老刑警劉巖僧免,帶你破解...
    沈念sama閱讀 218,122評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件刑赶,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡懂衩,警方通過(guò)查閱死者的電腦和手機(jī)撞叨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)浊洞,“玉大人牵敷,你說(shuō)我怎么就攤上這事》ㄏ#” “怎么了枷餐?”我有些...
    開(kāi)封第一講書人閱讀 164,491評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)苫亦。 經(jīng)常有香客問(wèn)我毛肋,道長(zhǎng),這世上最難降的妖魔是什么屋剑? 我笑而不...
    開(kāi)封第一講書人閱讀 58,636評(píng)論 1 293
  • 正文 為了忘掉前任润匙,我火速辦了婚禮,結(jié)果婚禮上唉匾,老公的妹妹穿的比我還像新娘孕讳。我一直安慰自己,他們只是感情好肄鸽,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布卫病。 她就那樣靜靜地躺著,像睡著了一般典徘。 火紅的嫁衣襯著肌膚如雪蟀苛。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 51,541評(píng)論 1 305
  • 那天逮诲,我揣著相機(jī)與錄音帜平,去河邊找鬼。 笑死梅鹦,一個(gè)胖子當(dāng)著我的面吹牛裆甩,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播齐唆,決...
    沈念sama閱讀 40,292評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼嗤栓,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起茉帅,我...
    開(kāi)封第一講書人閱讀 39,211評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤叨叙,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后堪澎,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體擂错,經(jīng)...
    沈念sama閱讀 45,655評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評(píng)論 3 336
  • 正文 我和宋清朗相戀三年樱蛤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了钮呀。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,965評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡昨凡,死狀恐怖爽醋,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情土匀,我是刑警寧澤子房,帶...
    沈念sama閱讀 35,684評(píng)論 5 347
  • 正文 年R本政府宣布,位于F島的核電站就轧,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏田度。R本人自食惡果不足惜妒御,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望镇饺。 院中可真熱鬧乎莉,春花似錦、人聲如沸奸笤。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,894評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)监右。三九已至边灭,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間健盒,已是汗流浹背绒瘦。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,012評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留扣癣,地道東北人惰帽。 一個(gè)月前我還...
    沈念sama閱讀 48,126評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像父虑,于是被迫代替她去往敵國(guó)和親该酗。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • # An illustrated introduction to the t-SNE algorithm In t...
    野牛公爵閱讀 490評(píng)論 0 0
  • 簡(jiǎn)單線性回歸 import tensorflow as tf import numpy # 創(chuàng)造數(shù)據(jù) x_dat...
    CAICAI0閱讀 3,547評(píng)論 0 49
  • dataset地址為:https://raw.githubusercontent.com/rasbt/python...
    跳跳1314閱讀 1,525評(píng)論 0 1
  • 早晨六點(diǎn)出發(fā)士嚎,一路歡歌笑語(yǔ)當(dāng)然還有半路的美食相伴呜魄,大小吃貨們的旅途就是如此簡(jiǎn)單快樂(lè)的開(kāi)始烁焙! 進(jìn)入云霧...
    音樂(lè)小寶閱讀 271評(píng)論 0 0
  • 開(kāi)篇:簡(jiǎn)書,我的讀物。 初次見(jiàn)到這個(gè)App是在微博上耕赘,我抱著試一試的態(tài)度下載了它骄蝇,越來(lái)越發(fā)現(xiàn)喜歡里面的文章與故事,...
    太行山脈的女孩閱讀 236評(píng)論 0 0