Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 神经网络-多变量预测值_Python_Tensorflow_Neural Network_Regression - Fatal编程技术网

Python 神经网络-多变量预测值

Python 神经网络-多变量预测值,python,tensorflow,neural-network,regression,Python,Tensorflow,Neural Network,Regression,我有A、B、C列作为输入,D、E、F、G列作为输出的数据。这张桌子的形状是1000,7。我想训练模型,验证和测试它 我的数据: 我期望的结果: 对于A、B、C的每个组合->我得到D、E、F、G作为输出,例如: 此外,对于A、B、C的每个不同组合;我有一组不同的输出D,E,F,G 我的问题: 是否有可能训练一个神经网络,利用这个经验丰富的网络来预测D、E、F、G的新值;对于A、B、C的新组合 问题属于多元回归范畴,因为输出是连续值。因此,您可以训练具有4个输出节点和大小为4的输入特征向量的神经网络

我有A、B、C列作为输入,D、E、F、G列作为输出的数据。这张桌子的形状是1000,7。我想训练模型,验证和测试它

我的数据:

我期望的结果:

对于A、B、C的每个组合->我得到D、E、F、G作为输出,例如:

此外,对于A、B、C的每个不同组合;我有一组不同的输出D,E,F,G

我的问题:
是否有可能训练一个神经网络,利用这个经验丰富的网络来预测D、E、F、G的新值;对于A、B、C的新组合

问题属于多元回归范畴,因为输出是连续值。因此,您可以训练具有4个输出节点和大小为4的输入特征向量的神经网络NN。使用tensorfow具有一个隐藏层的样本NN模型如下所示:

import itertools
import numpy as np
from sklearn.preprocessing import StandardScaler
from tensorflow.python.keras.layers import Input, Dense
from tensorflow.python.keras.models import Model

A = [100, 120, 140, 160, 180, 200, 220, 240, 260, 280]
B = [300, 320, 340, 360, 380, 400, 420, 440, 460, 480]
C = [500, 520, 540, 560, 580, 600, 620, 640, 660, 680]

X_train = np.array(list(itertools.product(A, B, C)))
# X_train = np.random.random(size=(1000,3))
scaler = StandardScaler()
X = scaler.fit_transform(X_train)

Y_train = np.random.randint(0, 100, size=(1000, 4)).astype(float)  # Should load original label

X_test = np.random.random(size=(100, 3))
Y_test = np.random.randint(0, 100, size=(100, 4)).astype(float)

input = Input(shape=(3,))
hidden_layer_1 = Dense(25, activation='relu')(input)
output = Dense(4)(hidden_layer_1)

model = Model(inputs=input, outputs=output)
model.compile(
    optimizer='adam',
    loss=['mean_squared_error']
)

history = model.fit(X_train, Y_train, epochs=1000, batch_size=8)

result = model.predict(X_test)

该问题属于多元回归范畴,因为输出是连续值。因此,您可以训练具有4个输出节点和大小为4的输入特征向量的神经网络NN。使用tensorfow具有一个隐藏层的样本NN模型如下所示:

import itertools
import numpy as np
from sklearn.preprocessing import StandardScaler
from tensorflow.python.keras.layers import Input, Dense
from tensorflow.python.keras.models import Model

A = [100, 120, 140, 160, 180, 200, 220, 240, 260, 280]
B = [300, 320, 340, 360, 380, 400, 420, 440, 460, 480]
C = [500, 520, 540, 560, 580, 600, 620, 640, 660, 680]

X_train = np.array(list(itertools.product(A, B, C)))
# X_train = np.random.random(size=(1000,3))
scaler = StandardScaler()
X = scaler.fit_transform(X_train)

Y_train = np.random.randint(0, 100, size=(1000, 4)).astype(float)  # Should load original label

X_test = np.random.random(size=(100, 3))
Y_test = np.random.randint(0, 100, size=(100, 4)).astype(float)

input = Input(shape=(3,))
hidden_layer_1 = Dense(25, activation='relu')(input)
output = Dense(4)(hidden_layer_1)

model = Model(inputs=input, outputs=output)
model.compile(
    optimizer='adam',
    loss=['mean_squared_error']
)

history = model.fit(X_train, Y_train, epochs=1000, batch_size=8)

result = model.predict(X_test)

只需在最后一层中使用多个节点。不要放置任何挤压函数。我对这个概念非常陌生。我试图理解每个函数的作用。我将努力更详细地解决这些问题。谢谢你的建议!只需在最后一层中使用多个节点。不要放置任何挤压函数。我对这个概念非常陌生。我试图理解每个函数的作用。我将努力更详细地解决这些问题。谢谢你的建议!嗨,嗨。我通过运行这个代码得到了结果。我能够计算损失、精度等。然而,每次运行这段代码时,我都会得到一个新的结果。是否有可能得到相同的结果?您是否接受过数据集培训?在这段代码中,我使用了随机虚拟输出/标签。您可能需要通过添加更多隐藏层或增加隐藏层中的节点来微调模型。是的,我使用了我的数据集…并将隐藏层的数量增加到4。我使用的数据集根本不是随机的Hey Hi。我通过运行这个代码得到了结果。我能够计算损失、精度等。然而,每次运行这段代码时,我都会得到一个新的结果。是否有可能得到相同的结果?您是否接受过数据集培训?在这段代码中,我使用了随机虚拟输出/标签。您可能需要通过添加更多隐藏层或增加隐藏层中的节点来微调模型。是的,我使用了我的数据集…并将隐藏层的数量增加到4。我使用的数据集根本不是随机的
import itertools
import numpy as np
from sklearn.preprocessing import StandardScaler
from tensorflow.python.keras.layers import Input, Dense
from tensorflow.python.keras.models import Model

A = [100, 120, 140, 160, 180, 200, 220, 240, 260, 280]
B = [300, 320, 340, 360, 380, 400, 420, 440, 460, 480]
C = [500, 520, 540, 560, 580, 600, 620, 640, 660, 680]

X_train = np.array(list(itertools.product(A, B, C)))
# X_train = np.random.random(size=(1000,3))
scaler = StandardScaler()
X = scaler.fit_transform(X_train)

Y_train = np.random.randint(0, 100, size=(1000, 4)).astype(float)  # Should load original label

X_test = np.random.random(size=(100, 3))
Y_test = np.random.randint(0, 100, size=(100, 4)).astype(float)

input = Input(shape=(3,))
hidden_layer_1 = Dense(25, activation='relu')(input)
output = Dense(4)(hidden_layer_1)

model = Model(inputs=input, outputs=output)
model.compile(
    optimizer='adam',
    loss=['mean_squared_error']
)

history = model.fit(X_train, Y_train, epochs=1000, batch_size=8)

result = model.predict(X_test)