【问题标题】:Silhouette analysis on KMeans clusteringKMeans聚类的轮廓分析
【发布时间】:2018-01-21 13:04:33
【问题描述】:

如何解决这个错误?为什么代码无法可视化情节?

TypeError: 'numpy.ndarray' object is not callable

输入

data_sillet = np.loadtxt('clustering_sillet.csv', delimiter=',')
data = data_sillet.astype(int)
data

输出

array([ 2,  3,  8, 29, 32, 15, 23,  0,  4, 16, 14, 15,  1,  5,  1,  8,  0,
       30, 14,  0,  1,  4,  5,  2, 12,  1,  7,  2,  0,  3, 22,  7,  1,  5,
        0,  6,  0, 15,  9, 24, 24,  5,  0,  0, 24, 11,  9,  0,  0,  1, 18,
       11,  4,  8, 27,  1,  3,  4,  7, 17,  5,  0,  1, 16])

输入

data =data(n_samples=64,n_features=1,centers=3,cluster_std=0.5,random_state=101)    
plt.scatter(data[0][:,0],data[0][:,1],c=data[1],cmap='rainbow')

输出

TypeError                                 Traceback (most recent call last)
<ipython-input-89-0b73209258a0> in <module>()
----> 1 data =data(n_samples=64,n_features=1,centers=3,cluster_std=0.5,random_state=101)
      2 
      3 plt.scatter(data[0][:,0],data[0][:,1],c=data[1],cmap='rainbow')

TypeError: 'numpy.ndarray' object is not callable

【问题讨论】:

  • 您在这一行中似乎调用了“data”而不是“KMeans”:data =data(n_samples=64,n_features=1,centers=3,cluster_std=0.5,random_state=101)
  • 代码失败,因为它试图调用(调用被后面的圆括号检测到)带有参数n_samples = 64等的'data'。因为numpy.ndarray不是可调用类型,这意味着没有为它定义 call 函数,此代码在调用 scatterplot 并可视化绘图之前引发“TypeError”。这就是为什么你看不到情节
  • 哦..我明白了。谢谢。
  • 我将此解释作为答案发布,否则此问题将被视为未回答,对任何人都无济于事

标签: python numpy cluster-analysis k-means silhouette


【解决方案1】:

您在这一行中似乎调用了“数据”而不是“KMeans”:

data =data(n_samples=64,n_features=1,centers=3,cluster_std=0.5,ra‌​ndom_state=101)

修复:

from sklearn.cluster import KMeans 
data =KMeans(n_samples=64,n_features=1,centers=3,cluster_std=0.5,ra‌​ndom_state=101)
#remaining code follows

代码失败,因为它试图调用(调用被后面的圆括号检测到)data,参数为 n_samples=64 等。因为numpy.ndarray 不是可调用类型,这意味着没有调用函数为此定义,此代码在调用 scatterplot 并可视化绘图之前引发TypeError。这就是为什么你看不到情节。

【讨论】:

  • 我在执行上述代码后收到错误消息。 -------------------------------------------------- ------------------------- AttributeError Traceback (最近一次调用最后一次) in () -- --> 1 data =KMeans.data(n_samples=64,n_features=1,centers=3,cluster_std=0.5,random_state=101) AttributeError: type object 'KMeans' has no attribute 'data'
  • 省略.data。并且尝试理解,而不仅仅是复制和粘贴。否则你永远学不会自己修正这些琐碎的错别字。
猜你喜欢
  • 2014-02-02
  • 2018-12-25
  • 2021-08-03
  • 2017-11-23
  • 2018-01-28
  • 2022-01-19
  • 2021-06-27
  • 2014-09-29
  • 1970-01-01
相关资源
最近更新 更多