岭回归预测PM2.5

# -*- coding: utf-8 -*-
# @File    : demo2.py
# @Author  : CJH
# @Date    : 2019/4/9
# @Software: PyCharm
# @Desc    : 天气PM2.5预测


import csv
import numpy as np
from numpy import *
import matplotlib.pyplot as plt
from sklearn import linear_model

trainingData = 'trainingData/'

x_data = []

y_data = []

with open(trainingData+'xData_pm25.csv', encoding='utf-8') as f:
    x_data = np.loadtxt(f, delimiter=",")

with open(trainingData+'yData_pm25.csv') as f:
    y_data = np.loadtxt(f, delimiter=",")

regs = linear_model.RidgeCV(np.linspace(1,1000))
regs.fit(x_data, y_data)
#
alpha = regs.alpha_
print('alpha',alpha)

reg = linear_model.Ridge(alpha)
reg.fit(x_data, y_data)

# 14,16,13,14,21,19,23,18,17
# 26,39,36,35,31,28,25,20,19
# 33,39,39,25,18,18,17,9,4
# 50,70,70,73,61,55,47,38,26

test_x_data = []

test_y_data = []

testingData = 'testingData/'

with open(testingData+'xData_pm25.csv', encoding='utf-8') as f:
    test_x_data = np.loadtxt(f, delimiter=",")

with open(testingData+'yData_pm25.csv') as f:
    test_y_data = np.loadtxt(f, delimiter=",")

pre_y_data = reg.predict(test_x_data)

err = abs(pre_y_data - test_y_data)
print('err',len(err))
plt.plot(np.linspace(1, len(err), len(err)), err)
plt.xlabel(r'$trainingIndex$', fontsize=16)
plt.ylabel(r'$error$', fontsize=16)
plt.title('abs trainingError')
plt.show()

print(err.sum(axis=0)/len(err)*1.0)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值