在 scikit-learn 中使用 ExtraTreesClassifier 时出错

2024-01-24

我正在尝试在 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对彼此而言。然后我将我的模型定义为:

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]])

如果有人知道如何解决这个问题,请告诉我,不胜感激。


分类器需要整数标签 http://www.astroml.org/sklearn_tutorial/general_concepts.html#supervised-learning-model-fit-x-y.

您要么需要将它们转换为整数(例如将它们装箱),要么使用回归型模型 http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.ExtraTreesRegressor.html.

如果您认为可以将花车分为合理的类别,numpy.digitize http://docs.scipy.org/doc/numpy/reference/generated/numpy.digitize.html可能有帮助。或者你可以将它们二值化 http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.LabelBinarizer.html.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 scikit-learn 中使用 ExtraTreesClassifier 时出错 的相关文章

随机推荐