北京PM2.5浓度回归分析
| 陳聰 | 20185109043 |
| 張一帆 | 20185109045 |
| 羅凱 | 20185110010 |
| 劉文博 | 20185109044 |
任務
由給定一段時間內(nèi)的北京天氣相關(guān)指數(shù)數(shù)據(jù)和北京PM2.5指數(shù)等,建立模型預測接下來一段時間內(nèi)北京的PM2.5指數(shù)。
數(shù)據(jù)
數(shù)據(jù)主要包括2010年1月1日至2014年12月31日間北京pm2.5指數(shù)以及相關(guān)天氣指數(shù)數(shù)據(jù)。
數(shù)據(jù)分為訓練數(shù)據(jù)和測試數(shù)據(jù),分別保存在pm25_train.csv和pm25_test.csv兩個文件中。
其中訓練數(shù)據(jù)主要包括35746條記錄,13個字段,主要字段說明如下:
date:觀測數(shù)據(jù)發(fā)生的日期(年-月-日)
hour:觀測數(shù)據(jù)發(fā)生的時間點(時)
pm2.5:觀測時間點對應的pm2.5指數(shù)((ug/m^3)
DEWP:露點,空氣中水氣含量達到飽和的氣溫(a??)
TEMP:溫度,觀測時間點對應的溫度(a??)
PRES:壓強,觀測時間點對應的壓強(hPa)
Iws:累積風速,觀測時間點對應的累積風速(m/s)
Is:累計降雪,到觀測時間點為止累計降雪的時長(小時)
Ir:累計降雨,到觀測時間點為止累計降雨的時長(小時)cbwd_NE:觀測時間點對應的風向為東北風(m/s)
cbwd_NW:觀測時間點對應的風向為西北風(m/s)
cbwd_SE:觀測時間點對應的風向為東南風(m/s)
cbwd_cv:觀測時間點對應的風向為靜風(m/s)
測試數(shù)據(jù)主要包括6011條記錄,12個字段,測試數(shù)據(jù)的字段信息和訓練數(shù)據(jù)相比,除了不包括pm2.5字段以外其他完全相同。學員需要通過所學的知識,利用訓練數(shù)據(jù)建立回歸模型,并用于預測測試數(shù)據(jù)相應的pm2.5指數(shù)。
核心代碼
import time import pandas as pd import numpy as np import matplotlib.pyplot as plt from sklearn.linear_model import LinearRegression # 用于線性回歸 from sklearn.model_selection import train_test_split df = pd.read_csv('D:\game\pm2.5\北京PM2.5濃度回歸分析訓練賽\pm25_train.csv', engine='python')查看數(shù)據(jù)發(fā)現(xiàn)日期格式是字符串格式
例如:“2019-01-01”,首先第一步操作要把字符串類型的日期,拆分成年、月、日、周幾,之后再把這4個特征添加到數(shù)據(jù)表中。
def data_format(dt):
接著進行模型訓練和預測
y = df_data['pm2.5'] X = df_data.drop(columns=['pm2.5','date']) X_train,X_test,y_train,y_test = train_test_split(X, y, test_size=0.3,random_state=42) lr = LinearRegression().fit(X_train, y_train)yuce = lr.predict(X_test) df_jieguo = pd.DataFrame(y_test) df_jieguo = df_jieguo.reset_index() df_jieguo['yuce'] = yuc最后計算的預測準確度情況
df_jieguo['wucha'] = pow((df_jieguo['yuce']-df_jieguo['pm2.5']), 2) he = sum(df_jieguo['wucha']) score = he/len(df_jieguo)總結(jié)
以上是生活随笔為你收集整理的北京PM2.5浓度回归分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 局域网内的ARP断网攻击
- 下一篇: 微信小程序趋势及前景,大厂内部资料