2016-07-06 72 views
0

我是一個初學者,在我的代碼面對錯誤:類型錯誤:必需的參數「對象」(位置1)未找到

這個錯誤得到解決:

Traceback (most recent call last): 
    File "/Users/ankitchaudhari/PycharmProjects/Learn/datascience/gg.py", line 26, in <module> 
    label = kmeans(data, k) 
    File "/Users/ankitchaudhari/PycharmProjects/Learn/datascience/gg.py", line 20, in kmeans 
    labels = KMeans(n_clusters=k).fit_predict(data) 
    File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/sklearn/cluster/k_means_.py", line 830, in fit_predict 
    return self.fit(X).labels_ 
    File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/sklearn/cluster/k_means_.py", line 812, in fit 
    X = self._check_fit_data(X) 
    File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/sklearn/cluster/k_means_.py", line 787, in _check_fit_data 
    if X.shape[0] < self.n_clusters: 
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all() 

但新的錯誤是: 新的錯誤:d = np.array()

類型錯誤:必需的參數 '對象'(位置1)沒有找到

這是我的代碼:

import matplotlib.pyplot as plt 

import pandas as pd 

import numpy as np 

from sklearn.cluster import KMeans 

data = np.array([[1, 2], 
      [5, 8], 
      [1.5, 1.8], 
      [8, 8], 
      [9, 11], 
      [1, 0.6], 
      [2, 2]]) 

k = np.array([2, 10]) 

df = pd.DataFrame(data) 

df 

def kmeans(data, i): 

    labels = KMeans(n_clusters=k).fit_predict(data) 
    return labels 

sse = 0 

for i in k: 

    label = kmeans(data, k) 
    cluster_mean = df.mean() 
    d = np.array([]) 
    for j in range(len(label)): 
     sse += sum(pow((data[j]) - cluster_mean, 2)) 
     d.append(sse) 

plt.plot(d, k) 
plt.show() 

以前的錯誤已解決。請幫我解決這個錯誤。

+0

請出示完整的錯誤回溯。 – BrenBarn

回答

0

在你的「for」循環,第二個參數應該是「我」而不是「K」:

label = kmeans(data, i) 
+0

新錯誤:d = np.array() TypeError:必需的參數'object'(pos 1)not found –

+1

np.array方法有必需的參數(它不是全部可選的)。你的代碼中還有另一個問題。你寫了d.append(sse)。正確的格式是np.append(d,<要附加的數組>) – Joe

相關問題