在機器學習的領域中,線性迴歸是常用的方法。多變量線性迴歸是一種可以預測一個或多個自變數與因變數之間的線性關係的方法,通常用於預測房產、股票價格等市場趨勢。
Python是一門十分流行的程式語言,具有簡單易學、易於編寫和調試的特點。在Python中,使用Scikit-learn函式庫可以輕鬆實現多變量線性迴歸模型。
在本文中,我們將透過一個房價預測的實例來介紹Python中的多變量線性迴歸。
導入庫和資料
為了進行多變量線性迴歸模型的實現,我們需要導入一些Python庫:
import pandas as pd import numpy as np import matplotlib.pyplot as plt from sklearn.linear_model import LinearRegression from sklearn.model_selection import train_test_split from sklearn.metrics import mean_squared_error
這裡使用的資料來自於Kaggle網站的Boston房產資料集。我們可以使用Pandas庫中的read_csv函數從資料檔案中讀取資料:
data = pd.read_csv('Boston.csv')
資料的探索和視覺化
在建立模型之前,我們應該對資料進行探索,了解每個特徵的分佈和特徵之間的關係。
我們可以使用Pandas函式庫中的describe函數和corr函數來了解資料的特徵分佈和特徵之間的相關性。其中,corr函數傳回每個特徵與其他特徵的相關係數矩陣。
print(data.describe()) print(data.corr())
我們也可以使用Matplotlib函式庫對資料進行視覺化。例如,繪製兩個特徵之間的散佈圖:
plt.scatter(data['RM'], data['Price']) plt.title('House Price vs Number of Rooms') plt.xlabel('Number of Rooms') plt.ylabel('Price') plt.show()
資料的預處理和模型訓練
為了訓練多變量線性迴歸模型,我們需要將資料分成兩部分:訓練集和測試集。我們可以使用Scikit-learn函式庫中的train_test_split函數將資料集隨機分割成訓練集和測試集:
X = data.drop(['Price'], axis=1) y = data['Price'] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
接下來,我們可以使用Scikit-learn函式庫中的LinearRegression函數來初始化多變量線性迴歸模型,並使用訓練集來擬合該模型:
model = LinearRegression() model.fit(X_train, y_train)
模型的評估和預測
#為了評估模型的表現,我們可以使用測試集來預測房價,並使用平均變異數( Mean Squared Error, MSE)來衡量預測結果與實際結果之間的差異。我們可以使用Scikit-learn函式庫中的mean_squared_error函數來計算預測結果的平均變異數:
y_pred = model.predict(X_test) mse = mean_squared_error(y_test, y_pred) print(mse)
如果平均變異數的值較小,則表示模型預測的結果較為準確。
最後,我們可以使用模型預測新的房屋價格。例如,我們想要預測一個房屋的價格,該房屋有6個房間、2個衛生間、距離商業區的距離為4.5英里等特徵。我們可以將這些特徵的值輸入到模型中,並使用模型的predict函數來預測房屋的價格:
new_data = np.array([[6, 2, 4.5, 0, 0.4, 6, 79, 6.1, 5, 331, 17, 385, 11.3]]) new_prediction = model.predict(new_data) print(new_prediction)
這個房屋的預測價格約為23.9萬美元。
總結
在本文中,我們介紹如何在Python中使用Scikit-learn函式庫的LinearRegression函數實作多變量線性迴歸模型。我們使用Boston房產資料集作為例子,說明了資料的導入、探索、視覺化、預處理和模型的訓練、評估和預測等步驟。希望這篇文章能幫助讀者更掌握Python中的多變量線性迴歸方法。
以上是Python中的多變量線性迴歸實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!