私が知る限り、PythonにはAICパッケージはありません。PythonでAkaike Information Criteria(AIC)を手で計算する
AIC:したがって、私はWikiに次式よ
(私はクラスタリングのK-手段を使用しています)私のデータセット内のクラスターの最適な数を見つけるために、手でそれを計算しようとしています - = 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()
私が知っているように、あなたの場合は 'model.inertia_'です。 – tarashypka