麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > Python > 正文

python實現拉普拉斯特征圖降維示例

2024-09-09 19:02:48
字體:
來源:轉載
供稿:網友

這種方法假設樣本點在光滑的流形上,這一方法的計算數據的低維表達,局部近鄰信息被最優的保存。以這種方式,可以得到一個能反映流形的幾何結構的解。

步驟一:構建一個圖G=(V,E),其中V={vi,i=1,2,3…n}是頂點的集合,E={eij}是連接頂點的vi和vj邊,圖的每一個節點vi與樣本集X中的一個點xi相關。如果xi,xj相距較近,我們就連接vi,vj。也就是說在各自節點插入一個邊eij,如果Xj在xi的k領域中,k是定義參數。

步驟二:每個邊都與一個權值Wij相對應,沒有連接點之間的權值為0,連接點之間的權值:

步驟三: ,實現廣義本征分解:

使 是最小的m+1個本征值。忽略與 =0相關的本征向量,選取另外m個本征向量即為降維后的向量。

1、python實現拉普拉斯降維

def laplaEigen(dataMat,k,t):  m,n=shape(dataMat)  W=mat(zeros([m,m]))  D=mat(zeros([m,m]))  for i in range(m):  k_index=knn(dataMat[i,:],dataMat,k)  for j in range(k):   sqDiffVector = dataMat[i,:]-dataMat[k_index[j],:]   sqDiffVector=array(sqDiffVector)**2   sqDistances = sqDiffVector.sum()   W[i,k_index[j]]=math.exp(-sqDistances/t)   D[i,i]+=W[i,k_index[j]]  L=D-W  Dinv=np.linalg.inv(D)  X=np.dot(D.I,L)  lamda,f=np.linalg.eig(X) return lamda,f def knn(inX, dataSet, k):  dataSetSize = dataSet.shape[0]  diffMat = tile(inX, (dataSetSize,1)) - dataSet  sqDiffMat = array(diffMat)**2  sqDistances = sqDiffMat.sum(axis=1)  distances = sqDistances**0.5  sortedDistIndicies = distances.argsort() return sortedDistIndicies[0:k] dataMat, color = make_swiss_roll(n_samples=2000) lamda,f=laplaEigen(dataMat,11,5.0) fm,fn =shape(f) print 'fm,fn:',fm,fn lamdaIndicies = argsort(lamda) first=0 second=0 print lamdaIndicies[0], lamdaIndicies[1] for i in range(fm):  if lamda[lamdaIndicies[i]].real>1e-5:  print lamda[lamdaIndicies[i]]  first=lamdaIndicies[i]  second=lamdaIndicies[i+1]  break print first, second redEigVects = f[:,lamdaIndicies] fig=plt.figure('origin') ax1 = fig.add_subplot(111, projection='3d') ax1.scatter(dataMat[:, 0], dataMat[:, 1], dataMat[:, 2], c=color,cmap=plt.cm.Spectral) fig=plt.figure('lowdata') ax2 = fig.add_subplot(111) ax2.scatter(f[:,first], f[:,second], c=color, cmap=plt.cm.Spectral) plt.show() 

2、拉普拉斯降維實驗

用如下參數生成實驗數據存在swissdata.dat里面:

def make_swiss_roll(n_samples=100, noise=0.0, random_state=None):  #Generate a swiss roll dataset.  t = 1.5 * np.pi * (1 + 2 * random.rand(1, n_samples))  x = t * np.cos(t)  y = 83 * random.rand(1, n_samples)  z = t * np.sin(t)  X = np.concatenate((x, y, z))  X += noise * random.randn(3, n_samples)  X = X.T  t = np.squeeze(t) return X, t 

實驗結果如下:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美精品a∨在线观看不卡 午夜精品影院 | 福利在线影院 | 欧美成人免费香蕉 | 美女视频黄视大全视频免费网址 | 久久亚洲成人网 | 久久久久久久久淑女av国产精品 | 亚州精品在线视频 | 久久精品99久久久久久2456 | 日本不卡一区二区三区在线 | 激情久久精品 | 全免费午夜一级毛片真人 | 精品一区二区久久久久久按摩 | 国产九色在线观看 | 国内精品免费一区二区2001 | 久久9色 | 哪里可以看免费的av | 羞羞视频在线免费 | 成人免费观看av | av在线浏览 | 久久我不卡| 色诱亚洲精品久久久久久 | 成人午夜在线免费观看 | 一区二区三区在线观看免费 | 国产高潮国产高潮久久久91 | 日本一道aⅴ不卡免费播放 视屏一区 | 最新av在线免费观看 | 99精品视频免费看 | 国产妞干网 | 九九热精品视频在线 | 毛片福利 | 欧美hdfree性xxxx | 午夜视频播放 | 少妇一级淫片免费放4p | 一级免费毛片 | 精品二区在线观看 | 久草手机在线 | 蜜桃成品人免费视频 | 欧美18一12sex性处hd | 日韩视频在线一区二区三区 | 精品国产一区二区三区久久久狼牙 | 国产精品午夜在线 |