簡體   English   中英

TypeError:KMeans()獲得了意外的關鍵字參數'n_clusters'

[英]TypeError: KMeans() got an unexpected keyword argument 'n_clusters'

import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs
from sklearn.cluster import KMeans


def KMeans():
    n = 4
    data = open("testSet.txt", "r")
    nums = []
    arr = np.empty((0,2), float)

    #Gets dataset from file
    for x in data.read().split(' '):
        nums.append(float(x))
    data.close()
    print(nums)

    #Stores numbers in a 2D array (X, Y axis)
    for x in range(0, len(nums), 2):
        arr = np.append(arr, np.array([[nums[x],nums[x+1]]]), axis=0)

    print(arr)

    kmeans = KMeans(n_clusters = 2).fit(arr)

    #Example 2, using make blobs to create random data
    X, y = make_blobs(n_samples=13, centers=5)
    print("Shape:", X.shape, y.shape)


    #Plotting the data
    plt.figure(0)
    plt.grid(True)
    plt.scatter(X[:, 0], X[:, 1])
    plt.show()


    clf = KMeans(n_clusters=5)
    clf.fit(X)

    print(clf.labels_)

    z = clf.cluster_centers_
    print(z)


    plt.scatter(X[:,0], X[:,1], clf.labels_)
    plt.scatter(z[:,0],z[:,1], c='blue')
    plt.show()
KMeans()

使用sklearn.cluster計算KMeans,但標題顯示行kmeans = KMeans(n_clusters = 2).fit(arr)

根據此處列出的參數, Kmeans n_clusters是正確的。 奇怪的是我有一個類似的程序可以工作,唯一的區別是我聲明了存儲在“ arr”中的數據集,而不是從文件中讀取

arr = np.array([[1,2], [1,4], [1,0], [4,2], [4,4], [4,0]])

使用下面的調試代碼,用Kmeans函數覆蓋Kmeans類,在命名函數時要小心。

import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs
from sklearn.cluster import KMeans


def K_Means():
    n = 4
    data = open("testSet.txt", "r")
    nums = []
    arr = np.empty((0, 2), float)

    # Gets dataset from file
    for x in data.read().split(' '):
        nums.append(float(x))
    data.close()
    print(nums)

    # Stores numbers in a 2D array (X, Y axis)
    for x in range(0, len(nums), 2):
        arr = np.append(arr, np.array([[nums[x], nums[x + 1]]]), axis=0)

    print(arr)

    kmeans = KMeans(n_clusters=2).fit(arr)

    # Example 2, using make blobs to create random data
    X, y = make_blobs(n_samples=13, centers=5)
    print("Shape:", X.shape, y.shape)

    # Plotting the data
    plt.figure(0)
    plt.grid(True)
    plt.scatter(X[:, 0], X[:, 1])
    plt.show()

    clf = KMeans(n_clusters=2)
    clf.fit(X)

    print(clf.labels_)

    z = clf.cluster_centers_
    print(z)

    plt.scatter(X[:, 0], X[:, 1], clf.labels_)
    plt.scatter(z[:, 0], z[:, 1], c='blue')
    plt.show()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM