sklearn MiniBatchKMeans中的弃用警告

时间:2016-04-27 14:12:37

标签: python machine-learning scikit-learn

vectors = model.syn0

n_clusters_kmeans = 20 # more for visualization 100 better for clustering

min_kmeans = MiniBatchKMeans(init='k-means++', n_clusters=n_clusters_kmeans, n_init=10)
min_kmeans.fit(vectors)

X_reduced = TruncatedSVD(n_components=50,  random_state=0).fit_transform(vectors)
X_embedded = TSNE(n_components=2, perplexity=40, verbose=2).fit_transform(X_reduced)

fig = plt.figure(figsize=(10, 10))
ax = plt.axes(frameon=False)
plt.setp(ax, xticks=(), yticks=())
plt.subplots_adjust(left=0.0, bottom=0.0, right=1.0, top=0.9,     wspace=0.0, hspace=0.0)
plt.scatter(X_embedded[:, 0], X_embedded[:, 1], c=None, marker="x")
plt.show()

我想绘制矢量。我正在使用sklearn.cluster MiniBatchKMeans。 上面的代码给出了以下弃用错误:

  

/usr/local/lib/python3.5/site-packages/sklearn/cluster/k_means_.py:1328:DreprecationWarning:不推荐使用此功能。请改为调用randint(0,99 + 1)     0,n_samples - 1,self.batch_size)

任何建议都表示赞赏。 谢谢

2 个答案:

答案 0 :(得分:4)

这是一个已知问题,已经为此合并了修复程序。请参阅gh:scikit-learn#6863

统计上,下一个版本应该在2016年10月左右发布。接下来是以下选项:

- > 抑制,如frist's answer on this question

中所述
import warnings
....
min_kmeans = MiniBatchKMeans(...)
with warnings.catch_warnings():
    warnings.simplefilter("ignore", category=DeprecationWarning)
    min_kmeans.fit(vectors)
# Rest part of the code

- > 安装 scikit-learn from master:

pip install git+git://github.com/scikit-learn/scikit-learn.git

答案 1 :(得分:2)

暂时禁止警告

warnings模块的python文档中描述了禁止此警告的最佳选项。

在这种情况下,您可以使用语句包装clusterizer拟合方法,如下所示:

import warnings
....
min_kmeans = MiniBatchKMeans(...)
with warnings.catch_warnings():
    warnings.simplefilter("ignore")
    min_kmeans.fit(vectors)
# Rest part of the code