Python使用機器學習模型實現(xiàn)溫度預測詳解
使用 Python 可以使用機器學習模型進行溫度預測。常用的模型有回歸分析、隨機森林等。使用前需要準備足夠的歷史數(shù)據(jù)并進行特征工程,構建模型并進行訓練,最后使用預測結果。
溫度預測 回歸分析
以下代碼使用線性回歸算法對溫度數(shù)據(jù)進行預測:
import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
# 讀入溫度數(shù)據(jù)
data = pd.read_csv('temperature_data.csv')
# 分離特征和標簽
X = data[['day_of_year', 'year']]
y = data['temperature']
# 分割數(shù)據(jù)集
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 文件并處理數(shù)據(jù)。import numpy as np:用于進行數(shù)值運算。from sklearn.linear_model import LinearRegression:從 scikit-learn 庫導入線性回歸模型。from sklearn.model_selection import train_test_split:從 scikit-learn 庫導入數(shù)據(jù)分割函數(shù)。
讀取溫度數(shù)據(jù):
data = pd.read_csv('temperature_data.csv'):使用 pandas 讀取 CSV 文件并保存到 data 變量中。
分離特征和標簽:
X = data[['day_of_year', 'year']]:將溫度數(shù)據(jù)中的 day_of_year 和 year 列作為特征,存儲到 X 變量中。y = data['temperature']:將溫度數(shù)據(jù)中的 temperature 列作為標簽,存儲到 y 變量中。
分割數(shù)據(jù)集:
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2):使用 train_test_split() 函數(shù)將數(shù)據(jù)分為訓練集和測試集,其中測試集大小為 20%。
訓練模型:
reg = LinearRegression().fit(X_train, y_train):使用訓練集數(shù)據(jù)訓練線性回歸模型,并保存到 reg 變量中。
預測結果:
y_pred = reg.predict(X_test):使用測試集數(shù)據(jù)預測結果,并保存到 y_pred 變量中。
評估:
print('R-squared:', reg.score(X_test, y_test)):使用 R-squared 值評估模型的預測精度,其值越接近 1,表示模型預測精度越高。
temperature_data.csv 文件是一個溫度數(shù)據(jù)的 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
# 讀取溫度數(shù)據(jù)
data = pd.read_csv('temperature_data.csv')
# 分離特征和標簽
X = data[['day_of_year', 'year']]
y = data['temperature']
# 分割數(shù)據(jù)集
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:導入數(shù)據(jù)集分割工具。data = pd.read_csv('temperature_data.csv'):讀取溫度數(shù)據(jù)。X = data[['day_of_year', 'year']]:提取特征數(shù)據(jù)(特征:一年中的第幾天和年份)。y = data['temperature']:提取標簽數(shù)據(jù)(標簽:溫度)。X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2):將數(shù)據(jù)集分為訓練集和測試集,其中測試集的數(shù)據(jù)占 20%。reg = RandomForestRegressor(n_estimators=100).fit(X_train, y_train):使用隨機森林回歸算法訓練模型。y_pred = reg.predict(X_test):使用訓練好的模型對測試集數(shù)據(jù)進行預測。print('R-squared:', reg.score(X_test, y_test)):使用 R-squared 值評估模型的預測精度,其值越接近 1,表示模型預測精度越高。
代碼運行結果:

到此這篇關于Python使用機器學習模型實現(xiàn)溫度預測詳解的文章就介紹到這了,更多相關Python溫度預測內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python 批量修改 labelImg 生成的xml文件的方法
這篇文章主要介紹了python 批量修改 labelImg 生成的xml文件的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-09-09
在Python中append以及extend返回None的例子
今天小編就為大家分享一篇在Python中append以及extend返回None的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07
python教程之利用pyautogui圖形自動化擊敗重復性辦公任務
在使用Python做腳本的話,有兩個庫可以使用,一個為PyUserInput庫,另一個為pyautogui庫,就本人而言更喜歡使用pyautogui庫,該庫功能多,使用便利,下面這篇文章主要給大家介紹了關于python教程之利用pyautogui圖形自動化擊敗重復性辦公任務的相關資料,需要的朋友可以參考下2022-03-03
Python 解決相對路徑問題:"No such file or directory"
這篇文章主要介紹了Python 解決相對路徑問題:"No such file or directory"具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06

