如何使用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。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP