【问题标题】:AttributeError: 'KMeans' object has no attribute 'inertia_'AttributeError:“KMeans”对象没有属性“inertia_”
【发布时间】:2021-06-15 06:22:36
【问题描述】:
from sklearn.cluster import KMeans
import numpy
import pandas as pd
from pandas import read_csv

boston = read_csv("../desktop/Boston.csv")
print(boston)

print(boston.columns)
del boston['index']
del boston['chas']
print(boston)

sse=[]

for i in range(1,9):
    kmeans = KMeans(n_clusters=i , max_iter=300)
    sse.append(kmeans.inertia_)

我得到了

AttributeError: 'KMeans' object has no attribute 'inertia_'

我正在尝试使用 k 均值在波士顿数据上找出适当数量的集群

【问题讨论】:

    标签: scikit-learn k-means


    【解决方案1】:

    KMeans 属性如inertia_ 是在模型拟合时创建的;但在这里你没有调用.fit 方法,因此会出现错误。

    在调用kmeans.inertia_之前,您需要使用您的数据运行kmeans.fit();这是一个使用来自 sklearn 的波士顿数据的完整示例:

    from sklearn.cluster import KMeans
    from sklearn.datasets import load_boston
    import matplotlib.pyplot as plt
    
    X, y = load_boston(return_X_y=True)
    
    sse = []
    for i in range(1,9):
        kmeans = KMeans(n_clusters=i , max_iter=300)
        kmeans.fit(X)  # <- fit here.....
        sse.append(kmeans.inertia_)
    
    plt.plot(range(1,9),sse)
    plt.show() 
    

    结果:

    【讨论】:

      猜你喜欢
      • 2021-05-08
      • 2022-08-23
      • 2021-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-01
      • 2021-04-19
      • 2021-11-22
      相关资源
      最近更新 更多