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è) 回歸分析
以下代碼使用線(xiàn)性回歸算法對(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)入必要的庫(kù):
import pandas as pd
:用于讀取 CSV 文件并處理數(shù)據(jù)。import numpy as np
:用于進(jìn)行數(shù)值運(yùn)算。from sklearn.linear_model import LinearRegression
:從 scikit-learn 庫(kù)導(dǎo)入線(xiàn)性回歸模型。from sklearn.model_selection import train_test_split
:從 scikit-learn 庫(kù)導(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)練線(xià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 寫(xiě)法
以下是隨機(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))
代碼說(shuō)明如下:
import pandas as pd
:導(dǎo)入 pandas 庫(kù)。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)文章
把csv文件轉(zhuǎn)化為數(shù)組及數(shù)組的切片方法
今天小編就為大家分享一篇把csv文件轉(zhuǎn)化為數(shù)組及數(shù)組的切片方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07利用Python繪制MySQL數(shù)據(jù)圖實(shí)現(xiàn)數(shù)據(jù)可視化
這篇文章主要介紹了利用Python繪制MySQL數(shù)據(jù)圖實(shí)現(xiàn)數(shù)據(jù)可視化,其中包括Python與MySQL的連接搭建、用Python執(zhí)行MySQL語(yǔ)句查詢(xún)等內(nèi)容,需要的朋友可以參考下2015-03-03python Matplotlib基礎(chǔ)--如何添加文本和標(biāo)注
這篇文章主要介紹了python Matplotlib基礎(chǔ)--如何添加文本和標(biāo)注,幫助大家更好的利用Matplotlib繪制圖表,感興趣的朋友可以了解下2021-01-01python實(shí)現(xiàn)書(shū)法碑帖圖片分割
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)書(shū)法碑帖圖片分割,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-03-03python Matplotlib數(shù)據(jù)可視化(2):詳解三大容器對(duì)象與常用設(shè)置
這篇文章主要介紹了python Matplotlib三大容器對(duì)象與常用設(shè)置的相關(guān)資料,幫助大家更好的學(xué)習(xí)和使用Matplotlib庫(kù)的用法,感興趣的朋友可以了解下2020-09-09Python 獲取 datax 執(zhí)行結(jié)果保存到數(shù)據(jù)庫(kù)的方法
今天小編就為大家分享一篇Python 獲取 datax 執(zhí)行結(jié)果保存到數(shù)據(jù)庫(kù)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07python用matplotlib繪制二維坐標(biāo)軸,設(shè)置箭頭指向,文本內(nèi)容方式
這篇文章主要介紹了python用matplotlib繪制二維坐標(biāo)軸,設(shè)置箭頭指向,文本內(nèi)容方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08