大家好,又见面了,我是你们的朋友全栈君。
据我所知,Python中没有AIC包。因此,我试图手动计算它,以找到数据集中的最佳集群数(我使用K-均值进行集群)
我遵循Wiki上的公式:
AIC=2k-2ln(最大可能性)
以下是我当前的代码:range_n_clusters = range(2, 10)
for n_clusters in range_n_clusters:
model = cluster.KMeans(n_clusters=n_clusters, init=’k-means++’, n_init=10, max_iter=300, tol=0.0001,
precompute_distances=’auto’, verbose=0, random_state=None, copy_x=True, n_jobs=1)
model.fit(X)
centers = model.cluster_centers_
labels = model.labels_
likelihood = ?????
aic = 2 * len(X.columns) – 2 * likelihood
print(aic)
关于如何计算似然值的任何提示?
//更新时间:
使用高斯混合模型计算AIC:
它不是应该看起来像一条曲线吗?(而不是直线)
我的绘图代码:def aic(X):
range_n_clusters = range(2, 10)
aic_list = []
for n_clusters in range_n_clusters:
model = mixture.GaussianMixture(n_components=n_clusters, init_params=’kmeans’)
model.fit(X)
aic_list.append(model.aic(X))
plt.plot(range_n_clusters, aic_list, marker=’o’)
plt.show()
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/142544.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...