【问题标题】:TypeError: __init__() got an unexpected keyword argument 'madataset_iter'TypeError: __init__() 得到了一个意外的关键字参数“madataset_iter”
【发布时间】:2020-08-21 16:50:02
【问题描述】:

我的问题是关于K-means 聚类算法,我一直收到错误TypeError: __init__() got an unexpected keyword argument 'madataset_iter' {在更正错字错误后解决了} 当我在将数据集拟合到模型后尝试可视化集群时。在我的代码下面:

##Fitting kmeans to the dataset with k=4
km4=KMeans(n_clusters=4,init='k-means++', max_iter=300, n_init=10, random_state=0)
y_means = km4.fit_predict(dataset)

#Visualizing the clusters for k=4
plt.scatter(dataset[y_means==0,0],dataset[y_means==0,1],s=50, c='purple',label='Cluster1')
plt.scatter(dataset[y_means==1,0],dataset[y_means==1,1],s=50, c='blue',label='Cluster2')
plt.scatter(dataset[y_means==2,0],dataset[y_means==2,1],s=50, c='green',label='Cluster3')
plt.scatter(dataset[y_means==3,0],dataset[y_means==3,1],s=50, c='cyan',label='Cluster4')
plt.scatter(km4.cluster_centers_[:,0], km4.cluster_centers_[:,1],s=200,marker='s', c='red', 
alpha=0.7, label='Centroids')
plt.title('Customer segments')
plt.xlabel('Annual income of customer')
plt.ylabel('Annual spend from customer on site')
plt.legend()
plt.show()

我得到的新错误是

'TypeError: '(array([False, False, False, False, False, False, False, False, 假的,'

【问题讨论】:

  • 错误信息似乎有点不言自明。您将 madataset_iter=300 作为参数传递,但 KMeans 并不期望这样。也许是max_iter 的拼写错误?
  • 它的“max_iter”我没有意识到,如果在阅读 K-means 文档之后。感谢您指出。此外,我仍然收到“TypeError”,虽然我正在再次阅读 sklearn,如果您发现任何错误,请指出错误。

标签: python unsupervised-learning


【解决方案1】:

错误消息表示 KMeans 构造函数 __init()__ 没有 madataset_iter 参数。有错别字吗?应该改为metadataset_iter 吗?

否则,您应该查看 KMeans 函数文档或代码。提供的代码示例中没有import语句,所以我们无法查到。

【讨论】:

  • 感谢您指出这一点。正确的参数是'max_iter',我打错了。
【解决方案2】:

假设您使用来自sklearn 的KMeans,则此对象的构造函数不接受任何名为madataset_iter 的参数。您使用的另一个命名参数确实出现在我链接到的文档中,因此尚不清楚您从何处获得该参数名称。

【讨论】:

    猜你喜欢
    • 2012-12-11
    • 1970-01-01
    • 2017-10-16
    • 2020-10-22
    • 2021-11-17
    • 2016-11-01
    • 2021-10-21
    • 2021-10-15
    • 2021-12-30
    相关资源
    最近更新 更多