【问题标题】:AttributeError: 'numpy.ndarray' object has no attribute 'inverse_transform'AttributeError:“numpy.ndarray”对象没有属性“inverse_transform”
【发布时间】:2017-10-16 17:16:46
【问题描述】:

我在试图弄清楚如何根据预期值绘制我的预测值时遇到问题。但我不断收到此错误:

AttributeError: 'numpy.ndarray' object has no attribute 'inverse_transform'

以下是用于机器学习目的的 python Theano 后端:

url = 'mydata.csv'
df = pd.read_csv(url)

y = df.loc[0:250, 'Y']
y = np.array(y)
X = df.loc[0:250, ['A','B','C', 'D', 'E']]
X = np.array(X)

X_train, X_test, y_train, y_test = cross_validation.train_test_split(X, y, 
test_size=-.10, random_state=3)

model = Sequential()
model.add(Dense(128, input_dim=5, activation='tanh'))
model.add(Dropout(0.2))
model.add(Activation("tanh"))
model.add(Dense(64, activation='tanh'))
model.add(Activation("tanh"))
model.add(Dense(32, activation='tanh'))
# Output layer
model.add(Dense(1))

model.compile(loss='mse', optimizer='SGD',metrics=["accuracy"])

# Training model with train data. Fixed random seed
np.random.seed(7)
model.fit(X_train, y_train, nb_epoch=100, batch_size=10, verbose=1) 

# Evaluation
scores = model.evaluate(X, y)
print("%s: %.2f%%" % (model.metrics_names[1], scores[1]*100))

pyplot.plot(y.inverse_transform(predicted), color="blue")
pyplot.plot(y.inverse_transform(y_test), color="green")
pyplot.show()#

不知道如何解决这个问题。反正我是新手。

【问题讨论】:

  • 嗯,错误信息很清楚。您有一个numpy 数组并尝试调用一个不存在的成员函数。 inverse_transform 应该做什么功能?

标签: python pandas numpy matplotlib keras


【解决方案1】:

假设如果我们已经完成了y的编码,就像

encoded_y = scaler.fit_transform(original_dataset)

那么,y 的解码(使其恢复到原来的状态)应该像

y = scaler.inverse_transform(original_dataset)

这将确保y 使用之前编码的相同参数再次解码。

在您的代码中,我无法找到初始编码/转换完成的位置,但我希望这个想法很清楚。

【讨论】:

    猜你喜欢
    • 2020-12-03
    • 2020-11-29
    • 2020-10-06
    • 2018-01-25
    • 2016-06-29
    • 2020-03-25
    • 2013-12-07
    • 2020-02-23
    • 2020-08-04
    相关资源
    最近更新 更多