1. 程式人生 > >使用 TensorFlow 的起始步驟

使用 TensorFlow 的起始步驟

不包含 fig bubuko house 包含 panda print 輕松 學習目標

1 學習目標:

  • 學習基本的 TensorFlow 概念
  • 在 TensorFlow 中使用 LinearRegressor 類並基於單個輸入特征預測各城市街區的房屋價值中位數
  • 使用均方根誤差 (RMSE) 評估模型預測的準確率
  • 通過調整模型的超參數提高模型準確率

備註:數據基於加利福尼亞州 1990 年的人口普查數據。

2 設置

首先需要加載必要的庫。

from __future__ import print_function

import math

from IPython import display
from matplotlib import cm
from matplotlib import gridspec from matplotlib import pyplot as plt import numpy as np import pandas as pd from sklearn import metrics import tensorflow as tf from tensorflow.python.data import Dataset tf.logging.set_verbosity(tf.logging.ERROR) pd.options.display.max_rows = 10 pd.options.display.float_format
= {:.1f}.format

接下來加載數據集

california_housing_dataframe = pd.read_csv("https://download.mlcc.google.cn/mledu-datasets/california_housing_train.csv", sep=",")

對數據進行隨機化處理,以確保不會出現任何病態排序結果(可能會損害隨機梯度下降法的效果)。此外,我們會將median_house_value調整為以千為單位,這樣,模型就能夠以常用範圍內的學習速率較為輕松地學習這些數據。

california_housing_dataframe = california_housing_dataframe.reindex(
    np.random.permutation(california_housing_dataframe.index))
california_housing_dataframe[
"median_house_value"] /= 1000.0 california_housing_dataframe

運行

技術分享圖片

3 檢查數據

以下輸出各系列的一些實用統計信息快速摘要:樣本數、均值、標準偏差、最大值、最小值和各種分位數。

california_housing_dataframe.describe()

運行

技術分享圖片

4 構建第一個模型

在本練習中,我們將嘗試預測 median_house_value,它將是我們的標簽(有時也稱為目標)。我們將使用 total_rooms 作為輸入特征。

註意:我們使用的是城市街區級別的數據,因此該特征表示相應街區的房間總數。

為了訓練模型,我們將使用 TensorFlow Estimator API 提供的 LinearRegressor 接口。此 API 負責處理大量低級別模型搭建工作,並會提供執行模型訓練、評估和推理的便利方法。

4.1 第 1 步:定義特征並配置特征列

為了將我們的訓練數據導入 TensorFlow,我們需要指定每個特征包含的數據類型。在本練習及今後的練習中,我們主要會使用以下兩類數據:

  • 分類數據:一種文字數據。在本練習中,我們的住房數據集不包含任何分類特征,但您可能會看到的示例包括家居風格以及房地產廣告詞。

  • 數值數據:一種數字(整數或浮點數)數據以及您希望視為數字的數據。有時您可能會希望將數值數據(例如郵政編碼)視為分類數據(我們將在稍後的部分對此進行詳細說明)。

在 TensorFlow 中,我們使用一種稱為“特征列”的結構來表示特征的數據類型。特征列僅存儲對特征數據的描述;不包含特征數據本身。

一開始,我們只使用一個數值輸入特征 total_rooms。以下代碼會從 california_housing_dataframe 中提取 total_rooms 數據,並使用 numeric_column 定義特征列,這樣會將其數據指定為數值:

# Define the input feature: total_rooms.
my_feature = california_housing_dataframe[["total_rooms"]]

# Configure a numeric feature column for total_rooms.
feature_columns = [tf.feature_column.numeric_column("total_rooms")]

註意total_rooms 數據的形狀是一維數組(每個街區的房間總數列表)。這是 numeric_column 的默認形狀,因此我們不必將其作為參數傳遞。

使用 TensorFlow 的起始步驟