如何通過TF實現線性回歸,通讀本文幫你節省不必要的時間

大多數人學習算法,首先學到的基本都是線性迴歸。線性迴歸多被用來計算梯度下降和損耗。

如何通過TF實現線性迴歸,通讀本文幫你節省不必要的時間

線性迴歸是利用數理統計中迴歸分析,來確定兩種或兩種以上變量間相互依賴的定量關係的一種統計分析方法,運用十分廣泛。其表達形式為y = w'x+e,e為誤差服從均值為0的正態分佈。迴歸分析中,只包括一個自變量和一個因變量,且二者的關係可用一條直線近似表示,這種迴歸分析稱為一元線性迴歸分析。如果迴歸分析中包括兩個或兩個以上的自變量,且因變量和自變量之間是線性關係,則稱為多元線性迴歸分析。

本教程主要講述如何使用TensorFlow實現線性迴歸。目的是能給你啟發,教你如何在TensorFlow中使用TensorFlow封裝評估模型來節省你的時間。TensorFlow封裝評估模型是一種高級API,不同於需要你自己編程的低級API。

我們將從導入所需的庫開始。

如何通過TF實現線性迴歸,通讀本文幫你節省不必要的時間

在這裡,我們導入的數據集來自Kaggle提供的對波士頓住房價格預測。讓我們導入我們的訓練數據集。鏈接:

如何通過TF實現線性迴歸,通讀本文幫你節省不必要的時間

你需要檢查DataFrame以查找列表名稱和類型。

如何通過TF實現線性迴歸,通讀本文幫你節省不必要的時間

使用TensorFlow時引入的一個概念是Feature Columns(功能列)。我們需要將我們的功能列傳遞給我們的TensorFlow封裝評估模型。這樣我們才能成功創建我們的功能列。

如何通過TF實現線性迴歸,通讀本文幫你節省不必要的時間

如何通過TF實現線性迴歸,通讀本文幫你節省不必要的時間

在實例化過程中,我們需要將功能列作為列表傳遞。所以,讓我們創建下面的內容。

如何通過TF實現線性迴歸,通讀本文幫你節省不必要的時間

與往常一樣,在處理數據時,我們會創建一個訓練集和一個測試集。所以,在這裡我們也會這樣做。

如何通過TF實現線性迴歸,通讀本文幫你節省不必要的時間

如果你一直在使用sklearn,那麼你一定養成了習慣將數據傳遞到訓練函數的能力。在TensorFlow中,使用的是輸入函數。所以我們需要為訓練和測試創建輸入函數。

如何通過TF實現線性迴歸,通讀本文幫你節省不必要的時間

如何通過TF實現線性迴歸,通讀本文幫你節省不必要的時間

在這裡,創建_DataSet的方法有很多。因為我們之前是用Pandas來加載數據,所以(圖中)我們有一個DataFrame。因此,我們將使用from_tensor_slices()來創建數據集。需要補充的是,此工具在隨TensorFlow 1.8發佈的tf.data模塊中提供。不要小瞧它,它作為一件工具對我們的數據處理有著很大的作用。這裡會涉及兩個參數。第一個參數是字典。你需要將所運行的以系列數據作為字典中的值進行傳遞。第二個參數是表示訓練數據中標籤的類別。

如何通過TF實現線性迴歸,通讀本文幫你節省不必要的時間

下一個非常重要的步驟是,我們必須分批獲取數據。在這裡,我們可以將批處理大小作為參數傳遞。如果你沒有調用batch(),那麼你會得到一些關於size()的有趣錯誤。

我們還要做的另一件事是創建一個迭代器。我們用Make_One_SHOT_Iterator()來創建。

我們返回結束我們的函數iterator.get_Next().

對類似的函數進行數據評估。

如何通過TF實現線性迴歸,通讀本文幫你節省不必要的時間

如何通過TF實現線性迴歸,通讀本文幫你節省不必要的時間

我們現在準備實例化我們的TensorFlow封裝評估模型。回想一下我們之前創建功能列的方法,當時我們是將其傳遞給LinearRegressor()函數進行調用的。我們可以傳遞許多不同的參數,但本文中我們將使用默認值。

如何通過TF實現線性迴歸,通讀本文幫你節省不必要的時間

現在我們準備訓練我們的TensorFlow封裝評估模型。

如何通過TF實現線性迴歸,通讀本文幫你節省不必要的時間

當訓練完成後,我們將對我們的模型進行評估。

如何通過TF實現線性迴歸,通讀本文幫你節省不必要的時間

我們得到了這個用來調用的迭代器。現在我們可以進行下一步驟了。

如何通過TF實現線性迴歸,通讀本文幫你節省不必要的時間

我們需要對此進行迭代,並轉換為numpy數組以獲得結果。

如何通過TF實現線性迴歸,通讀本文幫你節省不必要的時間

希望上面的講述對你有用。


分享到:


相關文章: