網站首頁 編程語言 正文
使用 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
相關推薦
- 2022-04-01 Android實現字母導航控件的示例代碼_Android
- 2022-04-29 DataTable的AcceptChanges()和RejectChanges()方法介紹并實現Da
- 2022-03-14 瀏覽器獲取不到服務器端添加的Cookie
- 2022-10-29 RHCSA 文件編輯 nano vi vim
- 2022-07-09 linux用戶態使用gpio中斷方法
- 2022-10-18 AJAX淺析數據交換的實現_AJAX相關
- 2023-10-14 ORACLE存在就修改 不存在就新增(注意更新和新增語法不同于常規語法)
- 2023-01-17 Linux?ps命令詳解及Linux查看進程的操作方法_linux shell
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支