前言
本次项目是就某联合循环发电厂的数据,运用线性回归模型进行预测电能输出,若文中出现错误的地方,还望指正,谢谢!
目录
1. 数据来源及背景
2. 数据探索分析
3. 相关分析
4. 回归分析
5. 多重共线性
6. 模型应用
正文
1. 数据来源及背景
数据来源: http://archive.ics.uci.edu/ml/machine-learning-databases/00294/
该数据集是收集于联合循环发电厂的9568个数据点, 共包含5个特征: 每小时平均环境变量温度(AT),环境压力(AP),相对湿度(RH),排气真空(V)和净每小时电能输出(PE), 其中电能输出PE是我们要预测的变量.
2. 数据探索分析
由于我们的数据是excel格式, 而pandas处理excel文件依赖xlrd, 因此我们首先需要安装它.
1. 安装xlrd
pip install xlrd
2. 读取数据
excel文件中共有5个sheet, 我们读取最后一个
import pandas as pd #第二参数代表要读取的sheet, 0表示第一个, 1表示第二个..., pandas默认读取第一个 df = pd.read_excel(r'D:\Data\CCPP.xlsx', 4)
3. 查看数据前3行/后3行
pd.set_option('display.max_rows', 6) df
数据维度9568行X5列, 均是数值型数据
4. 查看数据整体信息
df.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 9568 entries, 0 to 9567 Data columns (total 5 columns): AT 9568 non-null float64 V 9568 non-null float64 AP 9568 non-null float64 RH 9568 non-null float64 PE 9568 non-null float64 dtypes: float64(5) memory usage: 373.8 KB
无缺失数据, 且均为浮点型.
5. 描述性统计
pd.set_option('display.max_rows', None) df.describe()
温度(AT): 范围1.81--37.11, 均值19.65, 中位数20.35, 左偏分布
排气真空(V): 范围25.36--81.56, 均值54.31, 中位数52.08, 右偏分布
环境压力(AP): 范围992.89--1033.30, 均值1013.26, 中位数1012.94, 右偏分布
相对湿度(RH): 范围25.56--100.16, 均值73.31, 中位数74.975, 左偏分布
电能输出(PE): 范围420.26--495.76, 均值454.37, 中位数451.55, 右偏分布
通过中位数和均值可以大致看出分布状况, 但是对于具体的偏斜程度, 就需要用偏态系数去衡量
6. 偏态系数
偏态系数反映的是数据的偏斜程度, 若偏态系数大于1或小于-1, 则称为高度偏态分布, 若在0.5~1或-1~-0.5之间, 称为中度偏态分布, 否则, 称为低度偏态分布
for i in df.columns: print('{}偏态系数: '.format(i), df[i].skew())
AT偏态系数为: -0.1363930494749227 V偏态系数为: 0.19852101136676173 AP偏态系数为: 0.2654446935825862 RH偏态系数为: -0.4318387491833329 PE偏态系数为: 0.3065094354204023
可以看出以上均为低度偏态分布. 我们来看看分布形状的另一个度量--峰态系数
7. 峰态系数
峰态系数反映的是数据的扁平程度, 峰态常常是与标准正态分布对比, 若峰态系数为0, 则说明服从标准正态分布, 若大于0, 则说明比标准正态分布更尖, 称为尖峰分布, 若小于0, 则称为平峰分布.
for i in df.columns: print('{}峰态系数为: '.format(i), df[i].kurt())
3. 相关分析
import seaborn as sns import matplotlib.pyplot as plt #初始化 sns.set() #绘制分布矩阵 sns.pairplot(df) #保存图片 plt.savefig('ccpp.png') plt.show()
