資料降維 LLE模型

2021-08-17 16:51:17 字數 2881 閱讀 3158

模型原型

class sklearn.manifold.locallylinearembedding(n_neighbors=5,n_components=2,reg=0.001,eigen_solver=』auto』,tol=0,max_iter=300, method=』standard』,hessian_tol=0.0001,modified_tol=1e.12, neighbors_algorithm=』auto』,random_state=none)

引數

hessian_tol:用於method=』hessian』時收斂的闕值

modified_tol:用於method=』modified』時收斂的闕值

neighbors_algorithm

random_state

屬性

方法

import numpy as np

import matplotlib.pyplot as plt

from sklearn import datasets,decomposition,manifold

載入資料

def

load_data

(): iris=datasets.load_iris()

return iris.data,iris.target

使用locallylinearembedding類

def

test_locallylinearembedding

(*data):

x,y=data

for n in [4,3,2,1]:

lle=manifold.locallylinearembedding(n_components=n)

lle.fit(x,y)

print('reconstruction_error(n_components=%d):%s'%(n,lle.reconstruction_error_))

x,y=load_data()

test_locallylinearembedding(x,y)

降維後樣本的分布圖

def

plot_locallylinearembedding

(*data):

x,y=data

ks=[1,5,25,y.size-1]

fig=plt.figure()

for i,k in enumerate(ks):

lle=manifold.locallylinearembedding(n_components=2,n_neighbors=k)

x_r=lle.fit_transform(x)

ax=fig.add_subplot(2,2,i+1)

colors=((1,0,0),(0,1,0),(0,0,1),(0.5,0.5,0),(0,0.5,0.5),(0.5,0,0.5),

(0.4,0.6,0),(0.6,0.4,0),(0,0.6,0.4),(0.5,0.3,0.2),)

for label,color in zip(np.unique(y),colors):

position=y==label

ax.scatter(x_r[position,0],x_r[position,1],label='target=%d'%label,color=color)

ax.set_xlabel('x[0]')

ax.set_ylabel('x[1]')

ax.legend(loc='best')

ax.set_title("k=%d"%k)

plt.suptitle('locallylinearembadding')

plt.show()

plot_locallylinearembedding(x,y)

將原始資料的特徵直接壓縮到一維

def

plot_locallylinearembedding_k_d1

(*data):

x,y=data

ks=[1,5,25,y.size-1]

fig=plt.figure()

for i,k in enumerate(ks):

lle=manifold.locallylinearembedding(n_components=2,n_neighbors=k)

x_r=lle.fit_transform(x)

ax=fig.add_subplot(2,2,i+1)

colors=((1,0,0),(0,1,0),(0,0,1),(0.5,0.5,0),(0,0.5,0.5),(0.5,0,0.5),

(0.4,0.6,0),(0.6,0.4,0),(0,0.6,0.4),(0.5,0.3,0.2),)

for label,color in zip(np.unique(y),colors):

position=y==label

ax.scatter(x_r[position],np.zeros_like(x_r[position]),label='target=%d'%label,color=color)

ax.set_xlabel('x[0]')

ax.set_ylabel('y')

ax.legend(loc='best')

ax.set_title("k=%d"%k)

plt.suptitle('locallylinearembedding')

plt.show()

plot_locallylinearembedding_k_d1(x,y)

人工智障學習筆記 機器學習 13 LLE降維

一.概念 lle locally linear embedding 區域性線性嵌入演算法 是一種非線性降維演算法,它能夠使降維後的資料較好地保持原有流形結構。lle可以說是流形學習方法最經典的工作之一。和傳統的pca,lda等關注樣本方差的降維方法相比,lle關注於降維時保持樣本區域性的線性特徵,由...

python降維分析 Python資料降維

一些資料降維的特徵提取演算法,先導入包和資料 import numpy as np import pandas as pd import matplotlib.pyplot as plt from mpl toolkits.mplot3d import axes3d from sklearn.dec...

資料降維方法

資料降維基本原理是將樣本點從輸入空間通過線性或非線性變換對映到乙個低維空間,從而獲得乙個關於原資料集緊致的低維表示。資料降維工具箱drtoolbox中眾多演算法,這裡簡單做個分類。因為很多並沒有仔細了解,在此次只對八種方法做分類 主成分分析 principal component analysis,...