0
私は、自分の見積もりを構築するのではなく、あらかじめ構築された推定子tf.contrib.learn.LinearRegressorを使用して、PythonでTensorFlowを使っておもちゃの線形回帰を試みています。 私が使用している入力は0と1の間の実数値です。出力はちょうど3 *入力です。 TensorFlowはデータに合っているように見えますが(エラーは発生していませんが)、出力には何も関係がありません。Tensorflow LinearRegressorが収束しない
予測が正しく行われているかどうかわからないのですが、predict()関数のドキュメントは非常にまばらです。
フィッティングを改善する方法はありますか? LinearRegressorにposterity- 私の入力機能のためにここで答える、答えを考え出した
import numpy as np
import pandas as pd
import tensorflow as tf
import itertools
import matplotlib.pyplot as plt
#Defining data set
x = np.random.rand(200)
y = 3.0*x
data = pd.DataFrame({'X':x, 'Y':y})
training_data = data[50:]
test_data= data[:50]
COLUMNS = ['Y','X']
FEATURES = ['X']
LABELS = 'Y'
#Wrapper function for the inputs of LinearRegressor
def get_input_fn(data_set, num_epochs=None, shuffle=True):
return tf.estimator.inputs.pandas_input_fn(
x=pd.DataFrame(data_set[FEATURES]),
y=pd.Series(data_set[LABELS]),
num_epochs=num_epochs,
shuffle=shuffle)
feature_cols = [tf.feature_column.numeric_column(k) for k in FEATURES]
regressor = tf.contrib.learn.LinearRegressor(feature_columns=feature_cols)
regressor.fit(input_fn=get_input_fn(test_data), steps=100)
results = regressor.predict(input_fn=get_input_fn(test_data,
num_epochs=1))
predictions = list(itertools.islice(results, 50))
#Visualizing the results
fig = plt.figure(figsize=[8,8])
ax = fig.add_subplot(111)
ax.scatter(test_data[LABELS], predictions)
ax.set_xlabel('Actual')
ax.set_ylabel('Predicted')
plt.show()