前言
本节主要对AQI进行预测,并学习相关知识点。
一、对空气质量进行预测
1.1数据转换
在预测之前,再次查看数据是否清洗到位,并对不符合建模要求的数据进行转换,在此次数据集中,需要将离散变量转换成离散变量。
#1、数据读取
#导入相关库
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
#进行初始化设置
sns.set(style="darkgrid")
plt.rcParams["font.family"]="SimHei"
plt.rcParams["axes.unicode_minus"]=False
warnings.filterwarnings("ignore")
#2、加载数据集
data=pd.read_csv("data-Copy1.csv")
print(data.shape)
#概览数据大致情况
data.head()
#3、空值、重复值处理
data.fillna({
"Precipitation":data["Precipitation"].mean()},inplace=True)
data.drop_duplicates(inplace=True)
print(data.shape)
#4、数据转换
data["Coastal"]=data["Coastal"].map({
"是":1,"否":0})
data["Coastal"].value_counts()
输出:
0 243
1 80
Name: Coastal, dtype: int64
1.2 基模型
我们先不进行处理,建立一个基模型,后续的操作可以在此基础上进行改进。
#建立基模型
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
X=data.drop(["City","AQI"],axis=1)
y=data["AQI"]
#划分训练集和测试集:
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.3,random_state=0)
lr=LinearRegression()
lr.fit(X_train,y_train)
print("训练集R^2:",lr.score(X_train,y_train))
print("测试集R^2:",lr.score(X_test,y_test))
输出:
训练集R^2: 0.4541981876125555
测试集R^2: 0.40481803355516865
y_hat=lr.predict(X_test)
plt.figure(figsize=(15,5))
plt.plot(y_test.values,"-r",label="真实值",marker="o")
plt.plot(y_hat,"-g",label="预测值",marker="D")
plt.legend(loc="upper left")
plt.title("线性回归预测结果",fontsize=20)
输出:Text(