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

溫度預(yù)測(cè) 隨機(jī)森林 Python 寫法
以下是隨機(jī)森林回歸的 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')
# 分離特征和標(biāo)簽
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)
# 訓(xùn)練模型
reg = RandomForestRegressor(n_estimators=100).fit(X_train, y_train)
# 預(yù)測(cè)結(jié)果
y_pred = reg.predict(X_test)
# 評(píng)估模型
print('R-squared:', reg.score(X_test, y_test))
代碼說明如下:
import pandas as pd:導(dǎo)入 pandas 庫。from sklearn.ensemble import RandomForestRegressor:導(dǎo)入隨機(jī)森林回歸算法。from sklearn.model_selection import train_test_split:導(dǎo)入數(shù)據(jù)集分割工具。data = pd.read_csv('temperature_data.csv'):讀取溫度數(shù)據(jù)。X = data[['day_of_year', 'year']]:提取特征數(shù)據(jù)(特征:一年中的第幾天和年份)。y = data['temperature']:提取標(biāo)簽數(shù)據(jù)(標(biāo)簽:溫度)。X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2):將數(shù)據(jù)集分為訓(xùn)練集和測(cè)試集,其中測(cè)試集的數(shù)據(jù)占 20%。reg = RandomForestRegressor(n_estimators=100).fit(X_train, y_train):使用隨機(jī)森林回歸算法訓(xùn)練模型。y_pred = reg.predict(X_test):使用訓(xùn)練好的模型對(duì)測(cè)試集數(shù)據(jù)進(jìn)行預(yù)測(cè)。print('R-squared:', reg.score(X_test, y_test)):使用 R-squared 值評(píng)估模型的預(yù)測(cè)精度,其值越接近 1,表示模型預(yù)測(cè)精度越高。
代碼運(yùn)行結(jié)果:

到此這篇關(guān)于Python使用機(jī)器學(xué)習(xí)模型實(shí)現(xiàn)溫度預(yù)測(cè)詳解的文章就介紹到這了,更多相關(guān)Python溫度預(yù)測(cè)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python 批量修改 labelImg 生成的xml文件的方法
這篇文章主要介紹了python 批量修改 labelImg 生成的xml文件的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
pandas如何篩選某個(gè)列值是否位于某個(gè)列表內(nèi)
這篇文章主要介紹了pandas如何篩選某個(gè)列值是否位于某個(gè)列表內(nèi)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02
在Python中append以及extend返回None的例子
今天小編就為大家分享一篇在Python中append以及extend返回None的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-07-07
python教程之利用pyautogui圖形自動(dòng)化擊敗重復(fù)性辦公任務(wù)
在使用Python做腳本的話,有兩個(gè)庫可以使用,一個(gè)為PyUserInput庫,另一個(gè)為pyautogui庫,就本人而言更喜歡使用pyautogui庫,該庫功能多,使用便利,下面這篇文章主要給大家介紹了關(guān)于python教程之利用pyautogui圖形自動(dòng)化擊敗重復(fù)性辦公任務(wù)的相關(guān)資料,需要的朋友可以參考下2022-03-03
Python 多進(jìn)程和數(shù)據(jù)傳遞的理解
這篇文章主要介紹了Python 多進(jìn)程和數(shù)據(jù)傳遞的理解的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下2017-10-10
Python 解決相對(duì)路徑問題:"No such file or directory"
這篇文章主要介紹了Python 解決相對(duì)路徑問題:"No such file or directory"具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-06-06
Python通過30秒就能學(xué)會(huì)的漂亮短程序代碼(過程全解)
這篇文章主要介紹了Python之30秒就能學(xué)會(huì)的漂亮短程序代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-10-10
django定期執(zhí)行任務(wù)(實(shí)例講解)
下面小編就為大家?guī)硪黄猟jango定期執(zhí)行任務(wù)(實(shí)例講解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-11-11

