我試圖創建一個符合https://www.tensorflow.org/tutorials/wide/教程的模型,但我似乎以某種方式破壞了我的數據,因爲我非常懷疑一個非常天真的模型的97.9%的準確性。如何調試非常準確的TensorFlow模型?
我用下面的代碼,這似乎是合理的,我分開訓練和評估數據:
total_results = len(results)
# Withhold some results from training for evaluation.
withhold_index = total_results * 9/10
training_df = get_data_frame_from_results(results[:withhold_index])
eval_df = get_data_frame_from_results(results[withhold_index:])
然而,這是給我這似乎太高號:
accuracy: 0.979
accuracy/baseline_label_mean: 0.021
accuracy/threshold_0.500000_mean: 0.979
auc: 0.443042
global_step: 200
labels/actual_label_mean: 0.021
labels/prediction_mean: 0.0288264
loss: 0.288538
precision/positive_threshold_0.500000_mean: 0.0
recall/positive_threshold_0.500000_mean: 0.0
模型創建/評估發生在這裏:
def train_input_fn():
return input_fn(training_df)
def eval_input_fn():
return input_fn(eval_df)
m = tf.contrib.learn.LinearClassifier(
feature_columns=[...],
model_dir=model_dir)
m.fit(input_fn=train_input_fn, steps=200)
eval_results = m.evaluate(input_fn=eval_input_fn, steps=1)
我懷疑這裏有一個簡單的錯誤,但我沒有看到它。
什麼是您的數據是什麼樣子?如果一個班級佔據了97.9%的數據,那麼只要始終預測大多數標籤,就可以達到97.9%的準確率。 – etarion
啊,是的,這幾乎可以肯定發生了什麼事情。數據嚴重偏向一個方向,所以我需要對此進行調整。謝謝! –