首頁 後端開發 Python教學 如何在Python中使用神經網路進行迴歸分析?

如何在Python中使用神經網路進行迴歸分析?

Jun 05, 2023 pm 12:21 PM
python 神經網路 迴歸分析

隨著人工智慧的發展,神經網路已經在許多領域表現出了卓越的性能,其中包括回歸分析。 Python語言常被用於機器學習和資料分析任務,並提供了許多開源的機器學習函式庫,例如Tensorflow和Keras等。本文將介紹如何在Python中使用神經網路進行迴歸分析。

一、什麼是迴歸分析?

在統計學中,迴歸分析是一種分析因果關係的方法,透過使用連續變數的數學模型,來描述自變數和因變數之間的關係。在迴歸分析中,通常使用線性方程式來描述這種關係,例如:

y = a bx

#其中,y是因變量,x是自變量,a和b是圓括號中的常數,表示線性關係的截距和斜率。迴歸分析可以透過擬合線性方程,來預測因變數的值,對於具有複雜性或非線性關係的數據,可以使用更複雜的模型。

二、神經網路在迴歸分析中的應用

神經網路是一種由多個節點組成的複雜數學模型,透過學習輸入資料的模式和規律,來對新數據做出預測。神經網路在迴歸分析中的應用,是透過將因變數和自變數輸入至網路中,並透過訓練神經網路來找到它們之間的關係。

與傳統迴歸分析不同的是,神經網路在分析資料時,不需要先行定義一個線性或非線性的方程式。神經網路可以自動找到模式和規律,並在根據輸入資料集的細節來進行學習和分析。這使得神經網路在大規模資料集、模式複雜和非線性的資料上表現出了優異的效能。

三、使用Python進行迴歸分析

Python的Scikit-learn和Keras是兩個非常受歡迎的Python函式庫,它們提供了許多關於神經網路和迴歸分析的工具。在這裡,我們將使用Keras中的Sequential模型來建立一個簡單的神經網絡,並使用Scikit-learn的train_test_split方法,將已知資料集進行劃分,來評估我們的模型。

步驟1:資料預處理

在開始使用神經網路進行迴歸分析之前,需要先準備好資料。在本文中,我們將使用線上學習平台Kaggle上的燃油效率資料集。這個資料集包含了來自美國國家公路交通安全管理局的車輛經濟燃料資料。數據中包含了各種因素,例如碼數、汽缸數、排氣量、馬力和加速度等,這些因素都將影響燃料效率。

我們將使用Pandas函式庫來讀取和處理資料集:

import pandas as pd

#导入数据
df = pd.read_csv('auto-mpg.csv')
登入後複製

步驟2:資料預處理

我們需要將資料集轉換為神經網路可以讀取的形式。我們將使用Pandas庫的get_dummies()方法將分類變數分解為可以使用的二進位欄位:

dataset = df.copy()
dataset = pd.get_dummies(dataset, columns=['origin'])
登入後複製

接下來,我們需要將資料集劃分為訓練集和測試集,以評估我們的模型。在這裡,我們選擇使用Scikit-learn的train_test_split方法:

from sklearn.model_selection import train_test_split

train_dataset, test_dataset = train_test_split(dataset, test_size=0.2, random_state=42)

#获取训练集的目标变量
train_labels = train_dataset.pop('mpg')

#获取测试集的目标变量
test_labels = test_dataset.pop('mpg')
登入後複製

步驟3:建立神經網路模型

我們將使用Keras的Sequential模型來建立神經網路模型,該模型包含了兩個全連接的隱藏層,並使用具有啟動功能的ReLU層。最後,我們使用一個具有單一節點的輸出層來預測燃油效率。

from tensorflow import keras
from tensorflow.keras import layers

model = keras.Sequential([
    layers.Dense(64, activation='relu', input_shape=[len(train_dataset.keys())]),
    layers.Dense(64, activation='relu'),
    layers.Dense(1)
])
登入後複製

步驟4:編譯和訓練模型

在訓練模型之前,我們需要編譯模型。在這裡,我們將指定損失函數(loss function)和優化器(optimizer)以及評估指標(metrics)。

optimizer = keras.optimizers.RMSprop(0.001)

model.compile(loss='mse',
            optimizer=optimizer,
            metrics=['mae', 'mse'])
登入後複製

接下來,我們將使用fit()方法來訓練模型,並將其儲存到history物件中,以便後續分析。

history = model.fit(
  train_dataset, train_labels,
  epochs=1000, validation_split=0.2, verbose=0,
  callbacks=[keras.callbacks.EarlyStopping(monitor='val_loss', patience=10)])
登入後複製

步驟5:評估模型

最後,我們將使用測試資料集來評估我們的模型,並將結果儲存到y_pred變數中。

test_predictions = model.predict(test_dataset).flatten()

print('测试集的平均误差: ', round(abs(test_predictions - test_labels).mean(), 2))
登入後複製

在這個例子中,我們使用的模型產生了一個平均誤差約為2.54的預測結果,並且我們可以在history物件中看到測試集和驗證集的損失情況。

四、總結

在本文中,我們介紹如何使用Python中的神經網路進行迴歸分析。我們從資料預處理開始,然後利用Keras和Scikit-learn庫來建立和訓練我們的模型,並評估了模型的性能。神經網路具有強大的效能,在處理大規模資料集和複雜非線性問題上表現出極高的效果。在您的下一個迴歸問題上,為什麼不試試使用神經網路來解決問題呢?

以上是如何在Python中使用神經網路進行迴歸分析?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

PHP和Python:解釋了不同的範例 PHP和Python:解釋了不同的範例 Apr 18, 2025 am 12:26 AM

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

在PHP和Python之間進行選擇:指南 在PHP和Python之間進行選擇:指南 Apr 18, 2025 am 12:24 AM

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

PHP和Python:深入了解他們的歷史 PHP和Python:深入了解他們的歷史 Apr 18, 2025 am 12:25 AM

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

Python vs. JavaScript:學習曲線和易用性 Python vs. JavaScript:學習曲線和易用性 Apr 16, 2025 am 12:12 AM

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

sublime怎麼運行代碼python sublime怎麼運行代碼python Apr 16, 2025 am 08:48 AM

在 Sublime Text 中運行 Python 代碼,需先安裝 Python 插件,再創建 .py 文件並編寫代碼,最後按 Ctrl B 運行代碼,輸出會在控制台中顯示。

vs code 可以在 Windows 8 中運行嗎 vs code 可以在 Windows 8 中運行嗎 Apr 15, 2025 pm 07:24 PM

VS Code可以在Windows 8上運行,但體驗可能不佳。首先確保系統已更新到最新補丁,然後下載與系統架構匹配的VS Code安裝包,按照提示安裝。安裝後,注意某些擴展程序可能與Windows 8不兼容,需要尋找替代擴展或在虛擬機中使用更新的Windows系統。安裝必要的擴展,檢查是否正常工作。儘管VS Code在Windows 8上可行,但建議升級到更新的Windows系統以獲得更好的開發體驗和安全保障。

vscode在哪寫代碼 vscode在哪寫代碼 Apr 15, 2025 pm 09:54 PM

在 Visual Studio Code(VSCode)中編寫代碼簡單易行,只需安裝 VSCode、創建項目、選擇語言、創建文件、編寫代碼、保存並運行即可。 VSCode 的優點包括跨平台、免費開源、強大功能、擴展豐富,以及輕量快速。

visual studio code 可以用於 python 嗎 visual studio code 可以用於 python 嗎 Apr 15, 2025 pm 08:18 PM

VS Code 可用於編寫 Python,並提供許多功能,使其成為開發 Python 應用程序的理想工具。它允許用戶:安裝 Python 擴展,以獲得代碼補全、語法高亮和調試等功能。使用調試器逐步跟踪代碼,查找和修復錯誤。集成 Git,進行版本控制。使用代碼格式化工具,保持代碼一致性。使用 Linting 工具,提前發現潛在問題。

See all articles