日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Python使用機器學習模型實現溫度預測詳解_python

作者:夢想橡皮擦 ? 更新時間: 2023-03-28 編程語言

使用 Python 可以使用機器學習模型進行溫度預測。常用的模型有回歸分析、隨機森林等。使用前需要準備足夠的歷史數據并進行特征工程,構建模型并進行訓練,最后使用預測結果。

溫度預測 回歸分析

以下代碼使用線性回歸算法對溫度數據進行預測:

import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split

# 讀入溫度數據
data = pd.read_csv('temperature_data.csv')

# 分離特征和標簽
X = data[['day_of_year', 'year']]
y = data['temperature']

# 分割數據集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

# 訓練模型
reg = LinearRegression().fit(X_train, y_train)

# 預測結果
y_pred = reg.predict(X_test)

# 評估模型
score = reg.score(X_test, y_test)
print('R2 score: ', score)

導入必要的庫:

  • import pandas as pd:用于讀取 CSV 文件并處理數據。
  • import numpy as np:用于進行數值運算。
  • from sklearn.linear_model import LinearRegression:從 scikit-learn 庫導入線性回歸模型。
  • from sklearn.model_selection import train_test_split:從 scikit-learn 庫導入數據分割函數。

讀取溫度數據:

data = pd.read_csv('temperature_data.csv'):使用 pandas 讀取 CSV 文件并保存到 data 變量中。

分離特征和標簽:

  • X = data[['day_of_year', 'year']]:將溫度數據中的 day_of_year 和 year 列作為特征,存儲到 X 變量中。
  • y = data['temperature']:將溫度數據中的 temperature 列作為標簽,存儲到 y 變量中。

分割數據集:

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2):使用 train_test_split() 函數將數據分為訓練集和測試集,其中測試集大小為 20%。

訓練模型:

reg = LinearRegression().fit(X_train, y_train):使用訓練集數據訓練線性回歸模型,并保存到 reg 變量中。

預測結果:

y_pred = reg.predict(X_test):使用測試集數據預測結果,并保存到 y_pred 變量中。

評估:

print('R-squared:', reg.score(X_test, y_test)):使用 R-squared 值評估模型的預測精度,其值越接近 1,表示模型預測精度越高。

temperature_data.csv 文件是一個溫度數據的 CSV 文件,可能包含以下字段:

day_of_year,year,temperature
1,2021,20.5
2,2021,21.6
3,2021,22.7
365,2021,19.4
1,2022,18.5
2,2022,19.6

day_of_year 列表示一年中的第幾天,year 列表示該天的年份,temperature 列表示該天的溫度。

運行代碼得到下述截圖。

溫度預測 隨機森林 Python 寫法

以下是隨機森林回歸的 Python 代碼:

import pandas as pd
from sklearn.ensemble import RandomForestRegressor
from sklearn.model_selection import train_test_split

# 讀取溫度數據
data = pd.read_csv('temperature_data.csv')

# 分離特征和標簽
X = data[['day_of_year', 'year']]
y = data['temperature']

# 分割數據集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

# 訓練模型
reg = RandomForestRegressor(n_estimators=100).fit(X_train, y_train)

# 預測結果
y_pred = reg.predict(X_test)

# 評估模型
print('R-squared:', reg.score(X_test, y_test))

代碼說明如下:

  • import pandas as pd :導入 pandas 庫。
  • from sklearn.ensemble import RandomForestRegressor :導入隨機森林回歸算法。
  • from sklearn.model_selection import train_test_split :導入數據集分割工具。
  • data = pd.read_csv('temperature_data.csv') :讀取溫度數據。
  • X = data[['day_of_year', 'year']] :提取特征數據(特征:一年中的第幾天和年份)。
  • y = data['temperature'] :提取標簽數據(標簽:溫度)。
  • X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) :將數據集分為訓練集和測試集,其中測試集的數據占 20%。
  • reg = RandomForestRegressor(n_estimators=100).fit(X_train, y_train) :使用隨機森林回歸算法訓練模型。
  • y_pred = reg.predict(X_test) :使用訓練好的模型對測試集數據進行預測。
  • print('R-squared:', reg.score(X_test, y_test)):使用 R-squared 值評估模型的預測精度,其值越接近 1,表示模型預測精度越高。

代碼運行結果:

原文鏈接:https://blog.csdn.net/hihell/article/details/128815044

欄目分類
最近更新