由于维度不同,无法对特征值进行逆转换

Posted

技术标签:

【中文标题】由于维度不同,无法对特征值进行逆转换【英文标题】:Unable to inverse_transform the value of feature because of different dimensionality 【发布时间】:2021-06-07 06:53:39 【问题描述】:

我正在设计一个多元时间序列模型。为此,我将 5 个特征输入到 lstm 模型并尝试预测 1 个变量的输出(即其值取决于自身和其他 4 个特征)。

为此,我正在按如下方式进行特征缩放:-

#Features Scaling
`from sklearn.preprocessing import MinMaxScaler
 sc = MinMaxScaler(feature_range = (0,1))
 training_set_scaled = sc.fit_transform(training_set)
 print(training set scaled)`
   

输出:-

在模型的输出中,我得到的预测值为:

但是,当它试图将其逆变换为:

predicted_stock_price = sc.inverse_transform(predicted_stock_price)

我收到以下错误:-

形状为 (65,1) 的不可广播输出操作数与广播形状 (65,5) 不匹配

请帮忙。提前谢谢你:)

【问题讨论】:

【参考方案1】:

问题是你使用sc 来最小-最大-缩放五个特征。因此,sc 也只能用于对特征的缩放版本(由您显示为输出)进行逆变换,这将使您返回原始特征值。 标签(模型输出)与此无关。您也可以,但不一定必须缩放您的因变量,当然不能使用相同的缩放器对象。

【讨论】:

以上是关于由于维度不同,无法对特征值进行逆转换的主要内容,如果未能解决你的问题,请参考以下文章

如何根据自己的类型对 3D 数组的特定维度中的特征进行归一化

在 scikit learn 中训练具有不同特征维度的逻辑回归模型

特征分类

一种热编码分类特征 - 仅稀疏形式

自然语言处理——将文本特征转换为特征向量

Python数据集可视化:抽取数据集的两个特征进行二维可视化主成分分析PCA对数据集降维进行三维可视化(更好地理解维度之间的相互作用)