2017-04-20 170 views
-1

我使用着名的虹膜数据集,并希望应用监督学习分类器。我的问题是我想在两列功能上应用分类器。我想只有两个班,而不是三个班。原始数据集每个样本有3个类别和4个特征。当我只想选择两个功能并删除一个班级时,我收到的警告如下:如何解决VisibleDeprecation警告

VisibleDeprecationWarning: boolean index did not match indexed array along dimension 0; dimension is 150 but corresponding boolean dimension is 100 

我该如何删除此警告?

我的代码如下:

import numpy as np 
from sklearn import svm, datasets 
iris = datasets.load_iris() 
X = iris.data 
y = iris.target 
X, y = X[y != 2], y[y != 2] 
X = iris.data[:, [2, 3]] 
X, y = X[y != 2], y[y != 2] 
X.shape 

回答

1

您无法重置Ÿ虽然你重置X:

X = iris.data[:, [2, 3]] 

此行X之后,现在150项长期而Y还100。您然后使用长度为100个元素的y != 2的布尔数组进行索引,从而产生错误。请执行以下操作来解决此问题:

import numpy as np 
from sklearn import svm, datasets 
iris = datasets.load_iris() 
X = iris.data 
y = iris.target 
X, y = X[y != 2], y[y != 2] 
X = iris.data[:, [2, 3]] 
y = iris.target 
X, y = X[y != 2], y[y != 2] 
X.shape