如何解决ValueError:找到带有暗淡 3 的数组估计器预期 <= 2 python
我正在尝试使用名为 x&y 的列表中的一些训练和测试数据执行决策树。 我的火车数据 x 是这样的:
const data = [
{prop1: '1a',prop2: '2c',prop3: '3a',prop4: '4a'},{prop1: '1a',prop2: '2d',];
和y:
[array([[19.,14.,0.8],[23.,24.,[25.,26.,[22.,1. ],29.,1.4],[36.,86.,1.6],[28.,52.,[21.,20.,28.,[24.,27.,[18.,8.,0.6],[30.,58.,1.2],30.,[32.,65.,47.,[26.,41.,71.,2.2],[27.,45.,2. ],[29.,53.,11.,[20.,23.,19.,15.,[19.,18.,0.4],55.,59.,17.,0.8]])]
当我尝试表演时
[array([ 3100.,2750.,7800.,6000.,15000.,15500.,5600.,8000.,7500.,4000.,9000.,5850.,5750.,18000.,4500.,22000.,21500.,24000.,14000.,4000.])]
我收到错误 dtree= DecisionTreeRegressor(random_state=0,max_depth=1)
dtree.fit(x_train,y_train)
并且无法通过 reshape 解决它,因为这些是列表。有什么建议吗?
解决方法
首先,我建议您将 X 和 Y 转换为 numpy
数组,但我不能 100% 确定您的变量是否确实如此,因为您尚未将代码上传到此处。其次,看看你的变量。正如 page 中所说:
X{array-like,sparse matrix} 形状 (n_samples,n_features)
和
yarray 形状的 (n_samples,) 或 (n_samples,n_outputs)
fit
函数需要 X
和 Y
数组中的二维数组。而 X_train
是 3D。
所以你需要重塑这两个。一种解决方案可以是:
AMSWER 在阅读他/她的评论后进行了编辑
无法训练数据的原因有两个:
-
X_train
的形状不好 -
Y_train
的形状不好
您使用 X_train
传递 3D 数组,而 fit
只允许您使用 2D。此外,您的 Y_train
具有 (1,30)
形状,这意味着您一次传递 30 个数据。您需要将它们分开并作为 (30,)
传递,如下所示:
from sklearn.tree import DecisionTreeRegressor
import numpy as np
X_train = np.array([np.array([[19.,14.,0.8],[23.,24.,[25.,26.,[22.,1. ],29.,1.4],[36.,86.,1.6],[28.,52.,[21.,20.,28.,[24.,27.,[18.,8.,0.6],[30.,58.,1.2],30.,[32.,65.,47.,[26.,41.,71.,2.2],[27.,45.,2. ],[29.,53.,11.,[20.,23.,19.,15.,[19.,18.,0.4],55.,59.,17.,0.8]])])
dimX1,dimX2,dimX3 = np.array(X_train).shape
X_train = np.reshape(np.array(X_train),(dimX1*dimX2,dimX3))
Y_train = np.array([np.array([ 3100.,2750.,7800.,6000.,15000.,15500.,5600.,8000.,7500.,4000.,9000.,5850.,5750.,18000.,4500.,22000.,21500.,24000.,14000.,4000.])])
dimY1,dimY2 = Y_train.shape
Y_train = np.reshape(np.array(Y_train),(dimY2,))
print(X_train.shape,Y_train.shape)
dtree= DecisionTreeRegressor(random_state=0,max_depth=1)
dtree.fit(X_train,Y_train)
它的输出是:
>>> (30,3) (30,)
>>> DecisionTreeRegressor(ccp_alpha=0.0,criterion='mse',max_depth=1,max_features=None,max_leaf_nodes=None,min_impurity_decrease=0.0,min_impurity_split=None,min_samples_leaf=1,min_samples_split=2,min_weight_fraction_leaf=0.0,presort='deprecated',random_state=0,splitter='best')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。