使用 Python 從頭開始實現神經網絡 [附示例]

已發表: 2020-12-07

在本文中,我們將學習如何從頭開始訓練和構建神經網絡。

我們將使用 Churn 數據集來訓練我們的神經網絡。 訓練神經網絡並不復雜。 我們需要預處理我們的數據,以便我們的模型可以輕鬆地獲取我們的數​​據並毫無障礙地訓練自己。 您將按以下步驟進行:

  • 安裝 TensorFlow
  • 導入庫
  • 導入數據集
  • 轉換輸入數據
  • 拆分數據
  • 初始化模型
  • 建立模型
  • 訓練模型
  • 評估模型

流失率是衡量公司訂戶或傾向於在特定時間段內終止的一方的量度。 這個比率在決定利潤和製定計劃以贏得新客戶方面起著至關重要的作用。 簡單來說,我們可以說公司的成長可以用流失率來衡量。

在這個數據集中,我們有 13 個特徵,但我們只使用滿足我們要求的少數特徵來預測用戶停止使用的機會。

從世界頂級大學學習機器學習在線課程獲得碩士、Executive PGP 或高級證書課程以加快您的職業生涯。

目錄

安裝 TensorFlow

如果您的 PC 或筆記本電腦沒有 GPU,我們可以使用 Google Colab,或者您可以使用 Jupyter Notebooks。 如果您使用的是系統,請升級 pip,然後按如下方式安裝 TensorFlow。

圖片來源

導入庫

在上面的代碼行中,我只是導入了我在此過程中需要的所有庫。

Numpy 它是一個用於對數組執行數學運算的庫。

Pandas 將數據文件加載為 Pandas 數據框並分析數據。

Matplotlib 我已經導入了一個 pyplot 來繪製數據圖

導入數據集

我們的數據集是 CSV 格式,因此我們使用 pandas 操作加載數據集。 然後我們將數據集分為因變量和自變量,其中 X 被認為是獨立的,Y 被認為是從屬的。

轉換數據

在我們的數據集中,我們有兩個分類特徵,地理性別。 我們需要為這兩個特徵創建假人,所以我們使用get_dummies方法,然後將它們附加到我們的獨立特徵數據中。

一旦我們完成創建假人並將它們連接到我們的數據,我們將從我們的訓練數據中刪除原始特徵,即性別和地理。

閱讀:機器學習與神經網絡

拆分數據

從 Sklearn 的子庫 model_selection 中,我們將導入 train_test_split,用於拆分訓練集和測試集。 我們可以使用 train_test_split 函數進行拆分。 test_size = 0.3 表示應保留用於測試的數據百分比。

規範化數據

確保所有特徵值都在同一範圍內是很重要的。 模型很難學習特徵之間的底層模式並學習如何做出決策,因此我們使用StandardScaler方法將數據歸一化到相同的範圍內。

導入依賴

現在,我們將導入構建深度神經網絡所需的功能。

構建模型

是時候建立我們的模型了! 現在讓我們初始化我們的順序模型。 順序 API 允許您為大多數問題逐層創建模型。

在構建模型之前,我們需要做的第一件事就是創建模型對象本身。 該對象將是名為 Sequential 的類的一個實例。

添加第一個全連接層

如果您不了解層的類型及其功能,我建議您查看我關於神經網絡簡介的博客,它可以讓您了解您應該了解的大部分概念。

這意味著這個操作的輸出應該有六個神經元,我們在其中應用 ReLU 激活函數來打破線性,輸入神經元的數量是 11。我們使用.add()方法添加所有這些超參數。

我們將添加一個具有相同配置的隱藏層,該隱藏層的輸出將有六個節點。

輸出層

這一層的輸出將只有一個節點,它告訴用戶是留下還是離開訂閱。 在這一層中,我們使用 sigmoid 作為我們的激活函數。

了解:深度學習與神經網絡

編譯

現在我們需要用優化器連接我們的網絡。 優化器將根據誤差更新我們網絡的權重。 這個過程稱為反向傳播。

在這裡,我們將使用adam作為我們的優化器。 由於我們的結果是二進制的,所以我們使用二進制交叉熵,我們使用的指標是準確度

訓練模型

這個階段是我們需要訓練模型以學習底層模式、數據之間的關係並根據其知識預測新結果的關鍵路徑。

我們使用model.fit()方法來訓練模型。 我們在方法內部傳遞了三個參數,它們是

input x_train 是輸入到網絡的輸入

輸出這包含 x_train 的正確答案,即 y_train

no.of.epochs 這意味著您將使用數據集訓練網絡的次數。

評價

您可以通過從需要傳遞兩個參數的 sklearn 庫中導入 accuracy_score 來評估模型的性能。 一個是實際輸出,另一個是預測輸出。

另請閱讀:現實世界中的神經網絡應用

結論

目前為止就這樣了。 我希望你喜歡構建你的第一個神經網絡。 快樂學習!

如果您有興趣了解有關機器學習的更多信息,請查看 IIIT-B 和 upGrad 的機器學習和 AI 執行 PG 計劃,該計劃專為在職專業人士設計,提供 450 多個小時的嚴格培訓、30 多個案例研究和作業、IIIT -B 校友身份,5 個以上實用的實踐頂點項目和頂級公司的工作協助。

引領人工智能驅動的技術革命

申請機器學習和人工智能理學碩士