在scikit-learn中使用ExtraTreesClassifier时出错

4 投票
3 回答
2029 浏览
提问于 2025-05-11 02:14

我正在尝试在我的数据上使用scikit-learn中的ExtraTreesClassifier。我有两个numpy数组,分别是X和y。X的尺寸是(10000,51),而y的尺寸是(10000,)。为了确保它们是numpy数组格式,我使用了

X = numpy.array(X, dtype=np.float32)
print numpy.asarray(X,dtype=np.float32) is X
y = numpy.array(y, dtype=np.float32)
print numpy.asarray(y,dtype=np.float32) is y`

然后我得到了TRUE,说明它们确实是numpy数组。接着,我定义了我的模型为:

clf = ExtraTreesClassifier(n_estimators=10, max_depth=None, min_samples_split=1, random_state=0, n_jobs = -1)`

当我想用

clf = clf.fit(X, y)`

来训练我的模型时,出现了以下错误:

File "CFD_scikit_learn.py", line 169, in <module>
clf = Xtra_Trees(my_var)
  File "CFD_scikit_learn.py", line 140, in Xtra_Trees
clf = clf.fit(X, y)
  File "/user/leuven/308/vsc30879/.local/lib/python2.7/site-packages/sklearn/ensemble/forest.py", line 235, in fit
y, expanded_class_weight = self._validate_y_class_weight(y)
  File "/user/leuven/308/vsc30879/.local/lib/python2.7/site-packages/sklearn/ensemble/forest.py", line 421, in _validate_y_class_weight
check_classification_targets(y)
  File "/user/leuven/308/vsc30879/.local/lib/python2.7/site-packages/sklearn/utils/multiclass.py", line 173, in check_classification_targets
raise ValueError("Unknown label type: %r" % y)
ValueError: Unknown label type: array([[ 2.09895 ],
   [ 1.658568],
   [ 1.242831],
   ..., 
   [ 1.743349],
   [ 1.765763],
   [ 1.824112]])

如果有人知道如何解决这个问题,我会非常感激你能告诉我。

相关文章:

  • 暂无相关问题
暂无标签

3 个回答

0

另一种将其转换为二进制的方法

X = numpy.array(X, dtype='|Sx') 这里的 x 表示表示你的浮点数所需的符号数量。

2

y应该是一个整数数组,而不是浮点数。每个整数应该代表一个类别。

7

分类器 需要整数标签

你需要把标签转换成整数(比如,把它们分成几个区间),或者使用回归模型

如果你觉得可以把这些小数分成合理的类别,numpy.digitize 可能会对你有帮助。或者你也可以将它们二值化

撰写回答