模型原型
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,...