【问题标题】:Inverse Feature Scaling not working while predicting results预测结果时逆向特征缩放不起作用
【发布时间】:2022-01-16 02:59:32
【问题描述】:
# Importing required libraries
import numpy as np
import pandas as pd

# Importing dataset
dataset = pd.read_csv('Position_Salaries.csv')
X = dataset.iloc[:, 1: -1].values
y = dataset.iloc[:, -1].values

y = y.reshape(len(y), 1)

# Feature Scaling
from sklearn.preprocessing import StandardScaler
scy = StandardScaler()
scX = StandardScaler()
X = scX.fit_transform(X)
y = scy.fit_transform(y)

# Training SVR model
from sklearn.svm import SVR
regressor = SVR(kernel = 'rbf')
regressor.fit(X, y)

# Predicting results from SCR model
# this line is generating error
scy.inverse_transform(regressor.predict(scX.transform([[6.5]])))

我正在尝试执行此代码来预测模型中的值,但运行它后我收到如下错误:

ValueError: Expected 2D array, got 1D array instead:
array=[-0.27861589].
Reshape your data either using an array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.

完整的堆栈错误跟踪:

即使我的导师也使用相同的代码,但他的代码正在使用我的代码,我不是机器学习新手,谁能告诉我我做错了什么。 谢谢你的帮助。 这是供参考的数据

【问题讨论】:

  • 请详细说明数据集的形状
  • 另外,请添加完整的错误跟踪。不清楚是哪一行代码实际抛出了错误。

标签: python-3.x pandas machine-learning


【解决方案1】:

由于您的预测形状,scy 期望输出具有 (-1, 1) 形状。
将最后一行更改为:

scy.inverse_transform([regressor.predict(scX.transform([[6.5]]))])

你也可以用这行来预测:

pred = regressor.predict(scX.transform([[6.5]]))
pred = pred.reshape(-1, 1)
scy.inverse_transform(pred)

【讨论】:

  • 但是我的教练为他使用了相同的代码,它运行成功,当我运行它时抛出错误,你能解释一下为什么会这样吗?
  • 不,您提到的代码无论版本如何都无法运行。复制粘贴可能会出现一些错误。
猜你喜欢
  • 2018-09-07
  • 2018-11-29
  • 2019-01-03
  • 2020-05-31
  • 2017-06-27
  • 2021-10-15
  • 1970-01-01
  • 1970-01-01
  • 2019-11-11
相关资源
最近更新 更多