首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sklearn.datasets.make_classification的异常行为

sklearn.datasets.make_classification的异常行为
EN

Stack Overflow用户
提问于 2014-09-02 09:34:17
回答 1查看 931关注 0票数 0

我在使用sklearn.datasets.make_classification时生成了一个不寻常的bug,如下所示:

从位于http://scikit-learn.org/stable/auto_examples/plot_classifier_comparison.html的代码"plot_classifier_comparison.py“开始,我更改了以下语句(运行良好)

代码语言:javascript
复制
X, y = make_classification(n_features=2, n_redundant=0, n_informative=2,
                       random_state=1, n_clusters_per_class=1)

对此(即,只需再添加一个功能):

代码语言:javascript
复制
X, y = make_classification(n_features=3, n_redundant=0, n_informative=2,
                       random_state=1, n_clusters_per_class=1)

并接收以下错误回溯(其中路径名当然是我的机器的本地路径名):

代码语言:javascript
复制
Traceback (most recent call last):
  File "F:/Python Packages/ChartyPy3/plot_classifier_comparison.py", line 94, in <module>
Z = clf.predict_proba(np.c_[xx.ravel(), yy.ravel()])[:, 1]
  File "F:\Anaconda\lib\site-packages\sklearn\neighbors\classification.py", line 190, in predict_proba
    neigh_dist, neigh_ind = self.kneighbors(X)
  File "F:\Anaconda\lib\site-packages\sklearn\neighbors\base.py", line 311, in kneighbors
    return_distance=return_distance)
  File "binary_tree.pxi", line 1298, in sklearn.neighbors.kd_tree.BinaryTree.query (sklearn\neighbors\kd_tree.c:10427)
ValueError: query data dimension must match training data dimension

现在,我已经确定前两个数据集(即"make_moons“和"make_circles")在所有分类器中都运行得很好。但是第三个数据集(即"linearly_separable")没有:将"KNeighborsClassifier(3)“应用于第三个数据集将从对sklearn.neighbors.kd_tree.BinaryTree.query的调用中生成错误回溯。我还尝试使用make_classification的所有默认值,即

代码语言:javascript
复制
X, y = make_classification(n_samples=100, n_features=20, n_informative=2,
                       n_redundant=2, n_repeated=0, n_classes=2, n_clusters_per_class=2,
                       weights=None, flip_y=0.01, class_sep=1.0, hypercube=True, shift=0.0,
                       scale=1.0, shuffle=True, random_state=None)

但这也生成了相同的错误回溯,以及相同的错误消息,即"ValueError:查询数据维度必须与训练数据维度匹配“

我不明白为什么更改功能的总数,或者只使用默认值作为"make_classification“的输入,会产生这个错误。我正在使用Python 3.4.1 (64位实现)和开发人员的64位版本的scikit-learn。任何有关此错误和/或如何解决此错误的指导意见,都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2014-09-02 23:45:18

该示例将每个分类器应用于点的2-d网格,以便绘制其决策函数。将在三维输入(三个特征)上训练的分类器应用于二维输入将不起作用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25614681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档