我试图将差距统计和预测强度的R实现http://edchedch.wordpress.com/2011/03/19/counting-clusters/转换为python脚本,用于估计3个簇的虹膜数据中的簇数.我没有得到3个集群,而是在不同的运行中获得了不同的结果,其中3(实际的集群数)几乎没有估计.图表显示估计的数字是10而不是3.我错过了什么?任何人都可以帮我找到问题吗?
import random
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
def dispersion (data, k):
if k == 1:
cluster_mean = np.mean(data, axis=0)
distances_from_mean = np.sum((data - cluster_mean)**2,axis=1)
dispersion_val = np.log(sum(distances_from_mean))
else:
k_means_model_ = KMeans(n_clusters=k, max_iter=50, n_init=5).fit(data)
distances_from_mean = range(k)
for i in range(k):
distances_from_mean[i] = int()
for idx, label in enumerate(k_means_model_.labels_):
if i == label:
distances_from_mean[i] += sum((data[idx] - k_means_model_.cluster_centers_[i])**2)
dispersion_val = np.log(sum(distances_from_mean))
return dispersion_val
def reference_dispersion(data, num_clusters, num_reference_bootstraps):
dispersions = …Run Code Online (Sandbox Code Playgroud) 我想要python中各个变量和主要组件之间的相关性.我在sklearn中使用PCA.我不明白在分解数据后如何实现加载矩阵?我的代码在这里.
iris = load_iris()
data, y = iris.data, iris.target
pca = PCA(n_components=2)
transformed_data = pca.fit(data).transform(data)
eigenValues = pca.explained_variance_ratio_
Run Code Online (Sandbox Code Playgroud)
http://scikit-learn.org/stable/modules/generated/sklearn.decomposition.PCA.html没有提到如何实现这一目标.
我需要根据不同介词的分布(如agentive,instrumental,time,place等)找到自然发生的名词类.我尝试使用k-means聚类但帮助较少,但效果不好,我所寻找的类有很多重叠(可能是因为类的非球形形状和k-means中的随机初始化) ).
我现在正在使用DBSCAN,但我无法理解此聚类算法中的epsilon值和迷你点值.我可以使用随机值,还是需要计算它们.任何人都可以帮忙.特别是对于epsilon,至少如果我需要的话,如何计算它.