作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
问题是哪个应该先出现:a) 聚类还是 b) 降维算法?换句话说,我可以应用像 t-SNE 这样的伪(因为它不是真的)降维方法,然后使用聚类算法来提取聚类,还是应该在原始高维空间上执行聚类并仅用于给节点上色?以下代码是开始的好方法还是我完全弄错了?
adjMat = g.get_adjacency(attribute='weight') #get the adjacency matrix from a really large graph
adjMat = np.array(adjMat.data)
adjMat = adjMat.T #use the incoming interaction vectors
#initiate the t-SNE algorithm
tsne = manifold.TSNE() #set dimensionality reduction algorithm
manifoldCoords = tsne.fit_transform(adjMat)
#initiate clustering algorithm
clusteralgorithm = clusterAlgs.KMeans() #set clustering algorithm
linear_clusters = clusteralgorithm.fit_predict(manifoldCoords) #extract clusters
最佳答案
最好先降维再聚类。
这背后的原因是 high dimensional space behave in a strange way 中的距离.另一个有趣的现象是最近点和最远点的比值趋近于1。
我建议您阅读此 question虽然它询问的是欧几里德距离,但总体上您可以找到很多有趣的信息。
关于python - 使用 t-SNE 降维执行聚类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37932928/
我是一名优秀的程序员,十分优秀!