上一篇文章中进行了简单的数据统计分析,可视化以及单变量拟合。接下来要找到最优子集以及最优回归方法。其实本篇文章做的比较粗糙,选择的回归函数只有四种,并不能找到真正最优的回归方法。如果可以,将主流的回归方法应用到这里,可以挑选出最合适的回归方法进行建模。
4 子集与回归方法选择
假设一个原始数据包括n维特征或输入变量。首先找到所有的特征子集,目前来说最好的特征子集的选择是评估所有的特征子集,选择性能优的子集。针对有n个特征的数据集来说,有中可能的子集。当然,有一些搜索方法,这些方法能够更快,更简单,更有效的找到最有子集。但是,本文中使用的是完全搜索,即对所有的数据子集进行搜索的方式。因而,每一种特征组合都会被测试一下并且使用机器学习回归度量方式测量一下,比如预测的精度。最后针对每一种机器学习回归算法找到最好精确度的子集。
4.1误差
预测精度是用来评估实际和预测值之间的整体匹配。在本文中,预测的准确度是通过使用下面的性能标准,如平均绝对误差(MAE)和均方根误差(RMSE)连续变量。
(1)平均绝对误差(MAE):平均绝对误差是在所有测试情况下的预测值和实际值之间的 差异的平均值,而不考虑它们的方向。
(2)均方根误差(RMSE):均方根误差,均方根误差是一种常用的测量差异预测值的模型 或估计和值从模拟和估计过程的实际观察.
4.2最优特征子集选择
选择最佳子集是从所有的特征自己种选择一个子集。理论上,最好的子集可以通过评估所有可能的子集,它被称为穷举搜索。特征空间的穷举法需要搜索所有个子集。在本文中,详尽的搜索应用到原始数据集,其中包括四个参数作为输入变量和目标参数作为响应,目标是选择一个精度最高的模型与最佳的子集,正确预测的电力输出。为了这个目标,收集初步统计数据后,我使用穷举法以找到最佳的子集,通过评估实验中的所有原始数据集的候选子集。
所有可能子集:
子集 | AT | V | AP | RH |
---|---|---|---|---|
一个变量 | ||||
AT | 1 | 0 | 0 | 0 |
V | 0 | 1 | 0 | 0 |
AP | 0 | 0 | 1 | 0 |
RH | 0 | 0 | 0 | 1 |
两个变量 | ||||
AT-V | 1 | 1 | 0 | 0 |
AT-AP | 1 | 0 | 1 | 0 |
AT-RH | 1 | 0 | 0 | 1 |
V-AP | 0 | 1 | 1 | 0 |
V-RH | 0 | 1 | 0 | 1 |
AP-RH | 0 | 0 | 1 | 1 |
三个、四个变量 | ||||
AT-V-AP | 1 | 1 | 1 | 0 |
AT-V-RH | 1 | 1 | 0 | 1 |
AT-AP-RH | 1 | 0 | 1 | 1 |
V-AP-RH | 0 | 1 | 1 | 1 |
AT-V-AP-RH | 1 | 1 | 1 | 1 |
在第一个实验中,将每一个变量单独使用回归分析方法进行建模。因而,只使用一个变量预测到的变量PE与真实差异如表五所示。根据每个只有一个变量的子集预测到的性能所得,含有AT变量的子集的精确度最高,这里测试绝对误差的平均值为4.188。
回归方法 | AT | V | AP | RH |
---|---|---|---|---|
最小二乘法 | 4.29 | 6.58 | 11.96 | 13.19 |
脊回归 | 4.29 | 6.58 | 11.96 | 13.19 |
核脊回归 | 4.04 | 5.81 | 11.70 | 13.37 |
SVR回归 | 4.03 | 5.71 | 11.14 | 13.11 |
平均值 | 4.188 | 6.252 | 11.744 | 13.21 |
在第二个实验中,由两个参数组成的子集预测PE的模型误差如表六所示。从下表可知,平均误差最小的是包含有AT和RH的子集。
回归方法 | AT-V | AT-AP | AT-RH | V-AP | V-RH | AP-RH |
---|---|---|---|---|---|---|
最小二乘法 | 3.92 | 4.28 | 3.80 | 6.15 | 6.15 | 8.13 |
脊回归 | 3.92 | 4.28 | 3.80 | 6.15 | 6.15 | 8.13 |
核脊回归 | 3.37 | 3.72 | 3.27 | 5.05 | 5.05 | 7.83 |
SVR回归 | 3.35 | 3.78 | 3.39 | 5.16 | 5.16 | 7.96 |
平均值 | 3.696 | 4.068 | 3.612 | 5.732 | 5.732 | 8.036 |
在第三个实验中,将由三个参数组成子集应用于本文中所有的回归方法中。从下表中可以看出,核脊回归方法的误差最小,预测精确度最高。
回归方法 | AT-V-AP | AT-V-RH | V-AP-RH | AT-AP-RH |
---|---|---|---|---|
最小二乘法 | 3.88 | 3.62 | 5.89 | 6.02 |
脊回归 | 3.88 | 3.62 | 5.89 | 6.02 |
核脊回归 | 2.79 | 2.42 | 3.44 | 4.83 |
SVR回归 | 3.05 | 2.95 | 4.35 | 4.92 |
平均值 | 3.496 | 3.246 | 5.092 | 3.384 |
在最后一个实验中,只有一个拥有四个变量的参数子集,将这个子集应用于回归方法中。只有一个拥有四个变量的参数子集,将这个子集应用于回归方法中。从下表可以看出AT、V、AP和RH的平均绝对误差最小(MSE=2.984)。
4.3最优回归方法选择
上表是一个简单的汇总表,从这个表里面可以得到最优子集和最佳拟合回归方法。由3.4节分析可得AT-V-AP-RH为最优子集。对比MSE、RMSE平均值,可以得出核脊回归的平均误差最小(MAE平均=2.812,RMSE平均=14.71),这也就意味着在这五种回归方法中,核脊回归为最优的回归方法。
5结束语
本文为预测全负荷电力输出问题提出了一个可替代的解决方案模型。在传统热力学方法中,会有与许多非线性的一些假设。如果采用热力学方法建立模型,那么会花费太多的计算时间和精力,因为要考虑很多的假设和非线性方程组,因而有时结果并不可靠的,也不能令人满意。为了克服这个问题,本文中使用了几个回归方法用于预测的热力学系统的输出。这个如理想系统是由两个燃气轮机,一个蒸汽轮机和两个热循环系统。
本文的两个主要目的。首先是找到所有子集中的最佳子集。为了达到这个目的,本文测试了所有的子集。其次,我们的目找出了一个最合适该热力学系统的满负荷电力预测输出建模的回归方法。
为了找出最适合的个别变量或变量的组合,本文列出了该数据集中的所有可能子集,其中包括四个变量的15不同的组合,分别将他们应用与5种回归方法。从实验结果分析可得,AT、V、AP和RH组成的子集具有最佳的精确度。在本文中的左右回归方法中,核脊回归方法的训练误差最小,因此可以作为最佳建模的函数。
最小二乘法、脊回归代码如下:
# -*- coding: utf-8 -*-
"""
Created on Wed Nov 11 16:13:49 2015
@author: 王谦
"""
#import numpy as np
#import matplotlib.pyplot as plt
import xlrd
from sklearn import linear_model
#import pandas as pd
from sklearn.metrics import mean_absolute_error
from sklearn.metrics