警告函数make_blobs已弃用

2024-06-02 06:14:56 发布

您现在位置:Python中文网/ 问答频道 /正文

当我想绘制forge数据集的散点图时,我遇到了一个关于函数make_blobs的错误:

FutureWarning: Function make_blobs is deprecated; 
Please import make_blobs directly from scikit-learn warnings.warn(msg, category=FutureWarning). 

我试图通过写from sklearn.datasets import make_blobs来解决这个问题,但没有效果。我的代码如下:

import mglearn
from sklearn import datasets
from sklearn.datasets import make_blobs
X, y = mglearn.datasets.make_forge()

Tags: 数据函数fromimportmakeis错误绘制
1条回答
网友
1楼 · 发布于 2024-06-02 06:14:56

首先,您不会得到错误(即,您的程序不会停止),而只是一个警告,以及一个关于未来的警告

澄清了在scikit学习v0.22.2中,from sklearn.datasets import make_blobs不会产生任何警告:

import sklearn
sklearn.__version__
# 0.22.2.post1
from sklearn.datasets import make_blobs
# works OK, no warnings

即使在当前(0.24.1)版本的scikit learn中,也没有迹象表明make_blobsdocumentation中被(或即将被)弃用

根据this Github threadthis older SO thread的说法,这个问题似乎与mglearn包有关,而与scikit learn无关。实际上,警告来自mglearnmake_blobs函数,实际上是called by ^{};从其source code开始:

@deprecated("Please import make_blobs directly from scikit-learn")
def make_blobs(n_samples=100, n_features=2, centers=2, cluster_std=1.0,
               center_box=(-10.0, 10.0), shuffle=True, random_state=None):

在任何情况下,根据上面提到的Github线程中的^{} package creator,您应该不要担心警告,更新mglearn将解决它:

yes that's fine. You can update mglearn to get rid of the warning though.

相关问题 更多 >