资源简介
本资源使用线性回归的手段模拟预测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
相关资源
- ppt 机器学习.ppt
- Logistic回归总结非常好的机器学习总结
- Convex Analysis and Optimization (Bertsekas
- 机器学习个人笔记完整版v5.2-A4打印版
- JUNIOR:粒子物理学中无监督机器学习
- GM(11)模型与线性回归组合方法在矿
- 基于改进灰色模型的矿井瓦斯涌出量
- 语料库.zip
- 中国科学技术大学 研究生课程 机器学
- 遗传算法越野小车unity5.5
- 吴恩达机器学习编程题
- shape_predictor_68_face_landmarks.dat.bz2 68个标
- 机器学习实战高清pdf,中文版+英文版
- 李宏毅-机器学习(视频2017完整)
- 机器学习深度学习 PPT
- 麻省理工:深度学习介绍PPT-1
- Wikipedia机器学习迷你电子书之四《D
- Learning From Data Yaser S. Abu-Mostafa
- 北大林宙辰:机器学习一阶算法的优
- 李宏毅深度学习ppt
- 机器学习方法R实现-用决策树、神经网
- 数字金融反欺诈白皮书
- 机器学习班PPT原件全邹博
- 机器学习实战(源码和数据样本)
- 计量数据可用于经典线性回归模型的
- 计算广告含有目录 刘鹏版
- 数据挖掘导论完整版PPT及课后习题答
- kaggle信用卡欺诈数据
- 机器学习技法原始讲义和课程笔记
- 机器学习数学 陈希孺《 概率论与数理
评论
共有 条评论