拓端tecdat|Python用T-SNE非線性降維技術(shù)擬合和可視化高維數(shù)據(jù)iris鳶尾花、MNIST 數(shù)據(jù)
原文鏈接:http://tecdat.cn/?p=24002
原文出處:拓端數(shù)據(jù)部落公眾號
T-distributed Stochastic Neighbor Embedding (T-SNE) 是一種可視化高維數(shù)據(jù)的工具。T-SNE 基于隨機鄰域嵌入,是一種非線性降維技術(shù),用于在二維或三維空間中可視化數(shù)據(jù)。
Python?API 提供? T-SNE 方法可視化數(shù)據(jù)。在本教程中,我們將簡要了解如何在 Python 中使用 TSNE 擬合和可視化數(shù)據(jù)。教程涵蓋:
鳶尾花數(shù)據(jù)集TSNE擬合與可視化
MNIST 數(shù)據(jù)集 TSNE 擬合和可視化
我們將從加載所需的庫和函數(shù)開始。
import seaborn as sns
import pandas as pd??
鳶尾花數(shù)據(jù)集TSNE擬合與可視化
加載 Iris 數(shù)據(jù)集后,我們將獲取數(shù)據(jù)集的數(shù)據(jù)和標(biāo)簽部分。?
x = iris.data
y = iris.target?
然后,我們將使用 TSNE 類定義模型,這里的 n_components 參數(shù)定義了目標(biāo)維度的數(shù)量。'verbose=1' 顯示日志數(shù)據(jù),因此我們可以檢查它。
TSNE( verbose=1)
接下來,我們將在圖中可視化結(jié)果。我們將在數(shù)據(jù)框中收集輸出組件數(shù)據(jù),然后使用“seaborn”庫的 scatterplot() 繪制數(shù)據(jù)。在散點圖的調(diào)色板中,我們設(shè)置 3,因為標(biāo)簽數(shù)據(jù)中有 3 種類型的類別。
df = p.Dtame()
df["] = y
df["cm"] =z[:,0]
df[cop"] = z[,]
plot(hue=dfytlst()
patte=ns.cor_ptt("hls", 3),
dat=df)?

MNIST?數(shù)據(jù)集 TSNE 擬合和可視化
接下來,我們將把同樣的方法應(yīng)用于更大的數(shù)據(jù)集。MNIST手寫數(shù)字?jǐn)?shù)據(jù)集非常合適,我們可以使用Keras API的MNIST數(shù)據(jù)。我們只提取數(shù)據(jù)集的訓(xùn)練部分,因為這里用TSNE來測試數(shù)據(jù)就足夠了。TSNE需要太多的時間來處理,因此,我將只使用3000行。
x_train= xtrin[:3000]
y_rin = ytrin[:3000]
print(x_train.shape)?

MNIST 是一個三維數(shù)據(jù),我們將其變形為二維數(shù)據(jù)。?
print(xtishpe)
x_nit = rshap(_rin, [xran.shap[0],xtrn.shap[1]*xrin.shap[2])
print(x_mit.shape)

在這里,我們有 784 個特征數(shù)據(jù)。現(xiàn)在,我們將使用 TSNE 將其投影到二維中,并在圖中將其可視化。
z = tsne.fit(x_mnist)
df["comp1"] = z[:,0]
df["comp2"] = z[:,1]
plot(huedf.tit(),
ata=f)

該圖顯示了 MNIST 數(shù)據(jù)的二維可視化。顏色定義了目標(biāo)數(shù)字及其在 2D 空間中的特征數(shù)據(jù)位置。
在本教程中,我們簡要地學(xué)習(xí)了如何在 Python 中使用 TSNE 擬合和可視化數(shù)據(jù)。

最受歡迎的見解
1.matlab偏最小二乘回歸(PLSR)和主成分回歸(PCR)
2.R語言高維數(shù)據(jù)的主成分pca、 t-SNE算法降維與可視化分析
3.主成分分析(PCA)基本原理及分析實例
4.基于R語言實現(xiàn)LASSO回歸分析
5.使用LASSO回歸預(yù)測股票收益數(shù)據(jù)分析
6.r語言中對lasso回歸,ridge嶺回歸和elastic-net模型
7.r語言中的偏最小二乘回歸pls-da數(shù)據(jù)分析
8.r語言中的偏最小二乘pls回歸算法
9.R語言線性判別分析(LDA),二次判別分析(QDA)和正則判別分析(RDA)