我使用来自tensorflow估计器库(tf.estimator.LinearRegressor)的LinearRegressor进行我的tensorflow模型训练,评估和预测。但是,评估始终显示出非常大的损失值。因此,这些预测是完全不正确的。
这是我定义火车,评估,预测输入函数和LinearRegressor的方式:
def train_input_fn(x, y):
training_input_fn = tf.estimator.inputs.pandas_input_fn(
x = x,
y = y,
batch_size = 32,
shuffle = True,
num_epochs = None
)
return training_input_fn
def eval_input_fn(x, y):
eval_input_fn = tf.estimator.inputs.pandas_input_fn(
x = x,
y = y,
batch_size = 32,
shuffle = False,
num_epochs = 1
)
return eval_input_fn
def predict_input_fn(x):
predict_input_fn = tf.estimator.inputs.pandas_input_fn(
x = x,
shuffle = False,
num_epochs = 1
)
return predict_input_fn
def get_linear_regressor():
properties = load_data()
del properties['_id']
X_train, X_test, y_train, y_test = split_data(properties)
linear_regressor = tf.estimator.LinearRegressor(feature_columns=build_features(),
model_dir = "linear_regressor")
linear_regressor.train(input_fn = train_input_fn(X_train, y_train), steps=5000)
loss = linear_regressor.evaluate(input_fn = eval_input_fn(X_test, y_test))
print("Loss is: " + str(loss))
return linear_regressor
结果:
损失为:{'average_loss':417497550000.0,'label / mean':751504.7, '损失':13186813000000.0,'预测/平均值':331845.62,'global_step': 145000}
我有6472个数据点,以8:2的比例进行了训练和评估。
我做错了什么?如何提高预测的准确性?