欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python特征降维知识点总结

程序员文章站 2023-02-20 08:09:28
说明1、pca是最经典、最实用的降维技术,尤其在辅助图形识别中表现突出。2、用来减少数据集的维度,同时保持数据集中对方差贡献最大的特征。保持低阶主成分,而忽略高阶成分,低阶成分往往能保留数据的最重要部...

说明

1、pca是最经典、最实用的降维技术,尤其在辅助图形识别中表现突出。

2、用来减少数据集的维度,同时保持数据集中对方差贡献最大的特征。

保持低阶主成分,而忽略高阶成分,低阶成分往往能保留数据的最重要部分。

实例

from sklearn.feature_selection import variancethreshold

# 特征选择  variancethreshold删除低方差的特征(删除差别不大的特征)
var = variancethreshold(threshold=1.0)   # 将方差小于等于1.0的特征删除。 默认threshold=0.0
data = var.fit_transform([[0, 2, 0, 3], [0, 1, 4, 3], [0, 1, 1, 3]])
 
print(data)
'''
[[0]
 [4]
 [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() 

到此这篇关于python特征降维知识点总结的文章就介绍到这了,更多相关python特征降维如何理解内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

相关标签: Python 特征降维