如何使用TensorFlow和Estimator與提升樹一起訓練和評估模型?


TensorFlow 和 Estimator 可以結合提升樹,藉助 “BoostedTreesClassifier” 來訓練和評估模型。這個估計器分別使用 “train” 方法和 “evaluate” 方法來訓練和評估資料集。

閱讀更多: 什麼是 TensorFlow 以及 Keras 如何與 TensorFlow 協同建立神經網路?

我們將使用 Keras Sequential API,它有助於構建一個順序模型,用於處理簡單的層堆疊,其中每一層只有一個輸入張量和一個輸出張量。

包含至少一層卷積層的神經網路稱為卷積神經網路。我們可以使用卷積神經網路來構建學習模型。

我們使用 Google Colaboratory 來執行以下程式碼。Google Colab 或 Colaboratory 幫助在瀏覽器上執行 Python 程式碼,無需任何配置,並且可以免費訪問 GPU(圖形處理單元)。Colaboratory 基於 Jupyter Notebook 構建。

我們將瞭解如何使用決策樹和 tf.estimator API 訓練梯度提升模型。

讓我們瞭解如何使用 Estimator。Estimator 是 TensorFlow 對完整模型的高階表示。它旨在易於擴充套件和非同步訓練。

我們將使用 tf.estimator API 訓練一個邏輯迴歸模型。該模型用作其他演算法的基線。我們使用泰坦尼克號資料集,目標是根據性別、年齡、等級等特徵預測乘客的生存情況。

Estimator 使用特徵列來描述模型如何解釋原始輸入特徵。Estimator 期望一個數值輸入向量,而特徵列將有助於描述模型應該如何轉換資料集中每個特徵。選擇和使用正確的特徵列集對於學習有效的模型至關重要。特徵列可以是原始特徵字典中的一個原始輸入,也可以是使用在一個或多個基列上定義的轉換建立的新列。

提升樹模型被認為是迴歸和分類中最流行和有效的機器學習方法。它是一種整合技術,它結合了來自許多(10 個、100 個或 1000 個)樹模型的預測。

BoostedTreesRegressor 和分類支援 BoostedTreesClassifier。目標是預測一個類別,即生存或不生存。

示例

print("Using boosted trees")
print("Data fits into memory, hence entire dataset per layer is used as a single batch")
print("This would be quick")
n_batches = 1
est = tf.estimator.BoostedTreesClassifier(feature_columns,
n_batches_per_layer=n_batches)
print("The model stops training once the number of trees specified is built")
est.train(train_input_fn, max_steps=100)
print("The model is evaluated")
result = est.evaluate(eval_input_fn)
clear_output()
print(pd.Series(result))

輸出

accuracy              0.833333
accuracy_baseline     0.625000
auc                   0.875237
auc_precision_recall  0.859974
average_loss          0.405130
label/mean            0.375000
loss                  0.405130
precision             0.795699
prediction/mean       0.383989
recall                0.747475
global_step         100.000000
dtype: float64

解釋

  • 訓練了提升樹模型。
  • 目標是預測一個類別,可能是生存或不生存。
  • 為此,使用了 BoostedTreesClassifier。

更新於:2021年2月25日

135 次瀏覽

啟動你的職業生涯

完成課程後獲得認證

開始
廣告
© . All rights reserved.