代码之家  ›  专栏  ›  技术社区  ›  OrganicMustard

python k-means clusters plot而不是带有matplotlib的质心

  •  0
  • OrganicMustard  · 技术社区  · 7 年前

    我在试着画一个k代表分类。代码可以很好地识别集群(而不是绘制它们),并且 它确实绘制了质心; 我正在尝试绘制一个集群可视化:但是我很难在这段代码中实现它

    plt中应该有什么。散点图k表示簇(而不是质心)?

    from sklearn.feature_extraction.text import TfidfVectorizer
    from sklearn.cluster import KMeans
    from sklearn.metrics import adjusted_rand_score
    
    
    import csv
    from sklearn.metrics import accuracy_score
    import csv
    import matplotlib.pyplot as plt
    
    
    
    documents = [line.strip() for line in open("internetsheet2.csv", 'r')]
    
    vectorizer = TfidfVectorizer(stop_words='english')
    X = vectorizer.fit_transform(documents)
    true_k = 3
    model = KMeans(n_clusters=true_k, init='k-means++', max_iter=100, n_init=1)
    model.fit(X)
    
    print("Top terms per cluster:")
    order_centroids = model.cluster_centers_.argsort()[:, ::-1]
    terms = vectorizer.get_feature_names()
    for i in range(true_k):
        print("Cluster %d:" % i),
        for ind in order_centroids[i, :10]:
            print(' %s' % terms[ind]),
        print
    
    
    
    print("\n")
    
    
    centroids = model.cluster_centers_
    transformed_centroids = model.fit_transform(centroids)
    plt.scatter(transformed_centroids[:, 0], transformed_centroids[:, 1], marker='x')
    plt.show()
    
    0 回复  |  直到 7 年前