我有一个标准的CSV文件,其中有一堆行,所有行都有60列随机数(浮点数)。在61-63列,我有一些数字(同样是浮点数),它们是前60列的函数。
对于第一个“输出”列,我计算了前20列的总和,再乘以后面40列的总和,然后对接下来的两个输出列进行其他任意变化。我希望我的机器学习算法能够拾取这种公式化关系,并对三个输出值进行预测。
下面是我读取数据的方式
import matplotlib.pyplot as plt
import tensorflow as tf
import numpy as np
import pandas as pd
from sklearn.utils import shuffle
from sklearn.model_selection import train_test_split
def read_data():
rd = pd.read_csv(file_path)
x = rd[rd.columns[0:60]].values
y = rd[rd.columns[60:63]].values
X = x.astype(float) #just making sure we have the right dtype
Y = y.astype(float)
print(X.shape)
print(Y.shape)
return (X, Y)
X, Y = read_data()
然后,我将数据混洗并分成训练集和测试集
X, Y = shuffle(X, Y, random_state=1)
train_x, test_x, train_y, test_y = train_test_split(X, Y, test_size=0.25, random_state=117)
接下来,我定义了我的模型,权重和偏差
n_dim = X.shape[1]
print("n_dim", n_dim)
n_output = Y.shape[1]
print("n_output", n_output)
n_hidden_1 = 100
n_hidden_2 = 75
n_hidden_3 = 50
n_hidden_4 = 50
x = tf.placeholder(tf.float32, [None, n_dim])
W = tf.Variable(tf.zeros([n_dim, n_output]))
b = tf.Variable(tf.zeros([n_output]))
y = tf.placeholder(tf.float32, [None, n_output])
def layered_model(x, weights, biases):
# 4 hidden layers with sigmoid and relu
layer_1 = tf.add(tf.matmul(x, weights['w1']), biases['b1'])
layer_1 = tf.nn.sigmoid(layer_1)
layer_2 = tf.add(tf.matmul(layer_1, weights['w2']), biases['b2'])
layer_2 = tf.nn.sigmoid(layer_2)
layer_3 = tf.add(tf.matmul(layer_2, weights['w3']), biases['b3'])
layer_3 = tf.nn.sigmoid(layer_3)
layer_4 = tf.add(tf.matmul(layer_3, weights['w4']), biases['b4'])
layer_4 = tf.nn.relu(layer_4)
out_layer = tf.matmul(layer_4, weights['out']) + biases['out']
return out_layer
weights = {
'w1': tf.Variable(tf.truncated_normal([n_dim, n_hidden_1])),
'w2': tf.Variable(tf.truncated_normal([n_hidden_1, n_hidden_2])),
'w3': tf.Variable(tf.truncated_normal([n_hidden_2, n_hidden_3])),
'w4': tf.Variable(tf.truncated_normal([n_hidden_3, n_hidden_4])),
'out': tf.Variable(tf.truncated_normal([n_hidden_4, n_output]))
}
biases = {
'b1': tf.Variable(tf.truncated_normal([n_hidden_1])),
'b2': tf.Variable(tf.truncated_normal([n_hidden_2])),
'b3': tf.Variable(tf.truncated_normal([n_hidden_3])),
'b4': tf.Variable(tf.truncated_normal([n_hidden_4])),
'out': tf.Variable(tf.truncated_normal([n_output]))
}
如何将我的数据输入到一个成本函数中,然后将其用于我的纪元?我能找到的所有教程都是关于带标签的数据集的,把东西放到“桶”里。而这是纯粹的数字输入/输出。
我能找到的唯一信息是,数值成本函数通常使用平方误差方法,feed_dict将是必要的:
cost_function = tf.reduce_mean(tf.square(prediction - actual))
https://stackoverflow.com/questions/50361246
复制相似问题