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維對...