资源简介
本资源使用线性回归的手段模拟预测PM2.5,包含了所有的数据以及代码。代码含有详细地注释,欢迎下载学习使用!
代码片段和文件信息
‘‘‘
本程序简单预测PM2.5的走向,每个月只取了20天的测量数据。
共有18中污染源,即将 18种污染源的数据和对应的PM2.5的数据 进行训练
再根据训练结果来预测新的数据下PM2.5的值
‘‘‘
# import library #
import csv
import numpy as np
from numpy.linalg import inv
import random
import math
import sys
# read data #
data = []
# 每一个维度存储一种污染物的数据一共有18种污染物
for i in range(18):
data.append([]) # []表示这十八个输入中,每一个输入都是一个列表
n_row = 0 # 初始从第0行开始
# 打开数据文件文件big5编码为繁体字
text = open(‘D:/PythonCodes/CNN/train.csv‘ ‘r‘ encoding=‘big5‘)
# 读取名称为text的Excel文件,返回文件行的累加信息类型为_csv.reader
row = csv.reader(text delimiter=““)
# r中保存了当前行的所有信息,r是一个列表,每次循环到这就更换到下一行
for r in row:
# 第0行没有数据信息
if n_row != 0:
# 每一列只有第3-27格有值(一天内24小时的数值)
for i in range(327):
if r[i] != “NR“:
# data[]中一共可以存放18个列表,每一个列表存放某一种污染物的所有数值
data[(n_row-1)%18].append(float(r[i]))
else:
data[(n_row-1)%18].append(float(0))
n_row = n_row+1
text.close()
‘‘‘
file = open(‘D:/PythonCodes/CNN/testdata.csv‘‘w‘ encoding = ‘utf-8‘)
for i in range(len(data)):
s = str(data[i]).replace(‘[‘‘‘).replace(‘]‘‘‘)#去除[]这两行按数据不同,可以选择
s = s + ‘\n‘ #去除单引号,逗号,每行末尾追加换行符
file.write(s)
file.close()
print(“保存文件成功“)
‘‘‘
# Parse Data to (xy) #
x = []
y = []
# 一共有12个月,每个月20天
for i in range(12):
# 一共有480个小时,连续取10个小时一组的数据,可取471组(最后9个数据舍去)
for j in range(471):
x.append([]) # 在x中加入列表存储数据
# 污染物的种类一共有18种
for t in range(18):
# 取每种污染物前9小时的数据在第10小时存放PM2.5的值
for s in range(9):
x[471*i+j].append(data[t][480*i+j+s] )
y.append(data[9][480*i+j+9]) # PM2.5的数据存放在第10行
# 每个按行排列
x = np.array(x)
y = np.array(y)
# add square term
# x = np.concatenate((xx**2) axis=1) 将数据量翻倍,新的数据为x^2
# add bias
# 5652行1列的ones,每一行1后面直接连接x的每行列表
# 此处多的一列存储的是bias,值为1
x = np.concatenate((np.ones((x.shape[0]1))x) axis=1)
#print(x.shape) # (5652 163)
#init weight & other hyperparams#
w = np.zeros(len(x[0])) # shap: (163) 0: 163 __len__: 1 size: 163
l_rate = 10 # 学习率,用于更新w
repeat = 10000 # 迭代次数
#check your ans with close form solution#
# use close form to check whether ur gradient descent is good
# however this cannot be used in hw1.sh
# w = np.matmul(np.matmul(inv(np.matmul(x.transpose()x))x.transpose())y)
‘‘‘模型是Y = b + w * x‘‘‘
#start training#
# 将x矩阵进行转置,此时第一行全是1
# shape: (5652) 0: 5652 len: 1 size: 5652
x_t = x.transpose()
s_gra = np.zeros(len(x[0])) # 163行的0
for i in range(repeat):
hypo = np.dot(xw) # 做矩阵乘法,(5652 163)*(163 1) shape = (5652 1)预测值
loss = hypo - y # 预测数值 - 真实数值
cost = np.sum(loss**2) / len(x) # L(f) = (y - f)^2 求和再求平局值
cost_a = math.sqrt(cost) # 开方
# 梯度下降
gra = np.dot(x_tloss) # (163 5652) * (5652 1) shape: (163 1) dL
s_gra += gra**2
ada = np.sqrt(s_gra) # 均方根
w = w - l_rate * (gra/ada) # 更新后的w
print (‘iteration: %d | Cost: %f ‘ % ( icost_a))
# sa
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 26033 2018-11-28 13:30 PM2.5Prediction\20171109191242797.png
文件 30322 2018-11-28 13:30 PM2.5Prediction\20171109192721426.png
文件 132209 2018-11-28 14:24 PM2.5Prediction\20171228222742072.png
文件 86445 2018-11-28 14:24 PM2.5Prediction\20171228222805380.png
文件 2264 2018-11-25 13:39 PM2.5Prediction\ans.csv
文件 8449299 2018-11-27 13:35 PM2.5Prediction\arrayx.csv
文件 32474 2018-11-27 13:39 PM2.5Prediction\arrayy.csv
文件 8500646 2018-11-28 14:41 PM2.5Prediction\concatenateX.csv
文件 5132390 2018-11-28 09:38 PM2.5Prediction\listx.csv
文件 1432 2018-11-25 15:33 PM2.5Prediction\model.npy
文件 4678 2018-11-28 20:43 PM2.5Prediction\predict.csv
文件 5270 2018-11-28 14:39 PM2.5Prediction\PredictionofPM2.5.py
文件 23440 2018-11-27 13:10 PM2.5Prediction\QQ截图20181127131014.png
文件 2300 2018-11-25 13:52 PM2.5Prediction\sampleSubmission.csv
文件 815 2018-11-28 10:40 PM2.5Prediction\s_gra.csv
文件 192547 2018-11-25 13:52 PM2.5Prediction\test.csv
文件 367871 2018-11-27 13:44 PM2.5Prediction\testdata.csv
文件 465573 2018-11-25 13:51 PM2.5Prediction\train.csv
文件 5311 2018-11-28 10:37 PM2.5Prediction\x_t.csv
目录 0 2018-11-28 20:43 PM2.5Prediction
----------- --------- ---------- ----- ----
23461319 20
- 上一篇:大气湍流相位屏快速模拟
- 下一篇:od和CE查找call基址教材.rar
相关资源
- 时空建模分析及应用
- Applied Logistic Regression (3rd Edition)
- 机器学习的课件哈工大
- Optimization for Machine Learning 机器学习优
- Probability Theory and Examples 5th R. Durrett
- 《企业级 AIOps 实施建议》白皮书-V0
- Neural networks and deep learning pdf 英文版
- 《模式识别与机器学习》黄庆明2016
- 模式识别与机器学习课后习题答案
- 机器学习和遗传算法的结合推荐必读
- 分布式机器学习
- 数据挖掘概念与技术答案汇总
- 京东电商机器学习之推荐系统实践
- Machine Learning Tom M. Mitchell 机器学习 中
- license_plate.zip
- 哈尔滨工业大学硕士论文-基于机器学
- Mathworks R2019a Statistics and Machine Learni
- 线性代数及其应用--中文版(原书第三
- 地基云分类相关文献
- 6个机器学习实战案例及代码.rar
- PIE图片数据集包含原图.rar
- 贝叶斯统计两部合集pdf韦来生、茆诗
- 50W聊天语料训练数据.zip
- 机器学习基础教程源码.rar
- 机器学习-Hog+SVM小狮子识别.zip
- The elements of statistical Learning 书与答案
- Neural Networks - A Comprehensive Foundation
- Matrix Analysis(中文版)
- 《机器学习实战》中文版+英文版+源代
- Learning From Data plus 完整版带目录 林轩
评论
共有 条评论