首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >sklearn逻辑回归"ValueError:找到dim为3的数组。估计器预期为<= 2。“

sklearn逻辑回归"ValueError:找到dim为3的数组。估计器预期为<= 2。“
EN

Stack Overflow用户
提问于 2016-01-24 12:13:33
回答 4查看 114.2K关注 0票数 62

我尝试解决this problem 6 in this notebook。问题是使用sklearn.linear_model的LogisticRegression模型,使用50、100、1000和5000个训练样本在此数据上训练一个简单的模型。

代码语言:javascript
复制
lr = LogisticRegression()
lr.fit(train_dataset,train_labels)

这是我试图做的代码,它给了我错误。

ValueError:找到dim为3的数组。估计器应为<= 2。

有什么想法吗?

更新1:更新Jupyter Notebook的链接。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-01-24 13:57:40

对于fit函数的训练数据集,scikit learn需要2dNum数组。您正在传递的数据集是一个3d数组,您需要将该数组重塑为2d。

代码语言:javascript
复制
nsamples, nx, ny = train_dataset.shape
d2_train_dataset = train_dataset.reshape((nsamples,nx*ny))
票数 100
EN

Stack Overflow用户

发布于 2020-08-16 17:19:30

在LSTM、GRU和TCN层中,Dence层之前的最后一层中的return_sequence必须设置为False。这是您遇到此错误消息的条件之一。

票数 8
EN

Stack Overflow用户

发布于 2021-07-04 19:28:06

如果有人在两个或更多时间序列中使用LSTM或任何RNN时遇到这个问题,这可能是一个解决方案。

但是,对于那些想要预测两个不同值之间误差的人,例如,如果您试图预测两个完全不同的时间序列,则可以执行以下操作:

代码语言:javascript
复制
from sklearn import mean_squared_error 
# Any sklearn function that takes 2D data only
# 3D data
real = np.array([
    [
        [1,60],
        [2,70],
        [3,80]
    ],
    [
        [2,70],
        [3,80],
        [4,90]
    ]
]) 

pred = np.array([
    [
        [1.1,62.1],
        [2.1,72.1],
        [3.1,82.1]
    ],
    [
        [2.1,72.1],
        [3.1,82.1],
        [4.1,92.1]
    ]
])

# Error/Some Metric on Feature 1:
print(mean_squared_error(real[:,:,0], pred[:,:,0]) # 0.1000

# Error/Some Metric on Feature 2:
print(mean_squared_error(real[:,:,1], pred[:,:,1]) # 2.0000

Additional Info from the numpy indexing

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

https://stackoverflow.com/questions/34972142

复制
相关文章

相似问题

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