降維演算法 t SNE和UMAP的python實現

2021-10-10 08:05:16 字數 965 閱讀 5322

from sklearn import manifold

# t-sne 傾向於儲存區域性特徵,訓練較慢

for i in range(listlength):

my_value[i] = np.array(my_value[i]).reshape(-1, 64)

tsne = manifold.tsne(n_components=2, init='pca', random_state=501)

x_tsne = tsne.fit_transform(my_value[i])

x_min, x_max = x_tsne.min(0), x_tsne.max(0)

x_norm = (x_tsne - x_min) / (x_max - x_min) # 歸一化

data[i] = x_norm

t-sne的引數:

n_components:int,可選(預設值:2)嵌入式空間的維度。

init:字串,可選(預設值:「random」)嵌入的初始化。可能的選項是「隨機」和「pca」。 pca初始化不能用於預先計算的距離,並且通常比隨機初始化更全域性穩定。

random_state:int或randomstate例項或none(預設)

import umap 

# umap 一致的流形逼近和投影以進行降維,類似但優於t-sne,可用於視覺化,但也可用於一般的非線性降維。

for i in range(listlength):

my_value[i] = np.array(my_value[i]).reshape(-1, 64)

reducer = umap.umap(random_state=42) # 使用umap降至二維

embedding = reducer.transform(my_value[i])

data[i] = embedding

降維演算法之維度的概念

維度有一維,二維直到多維,人類能夠觸及到的最大維度只有三維。不同情形下,維度代表的意義也不相同。型別含義 陣列 series 維度就是功能shape返回的結果,shape中返回了幾個數字就是幾維 圖形 graphic 維度是影象中特徵向量的數量 對於陣列來說,維度就是功能shape返回的結果,sha...

特徵選擇和降維的區別

學習的過程中,關於特徵選擇和降維都是防止資料過擬合的有效手段,但是兩者又有本質上的區別。降維降維本質上是從乙個維度空間對映到另乙個維度空間,特徵的多少別沒有減少,當然在對映的過程中特徵值也會相應的變化。舉個例子,現在的特徵是1000維,我們想要把它降到500維。降維的過程就是找個乙個從1000維對映...

特徵選擇和降維的區別

在學習的過程中,關於特徵選擇和降維都是防止資料過擬合的有效手段,但是兩者又有本質上的區別。降維降維本質上是從乙個維度空間對映到另乙個維度空間,特徵的多少別沒有減少,當然在對映的過程中特徵值也會相應的變化。舉個例子,現在的特徵是1000維,我們想要把它降到500維。降維的過程就是找個乙個從1000維對...