基于支持向量机的回归预测与异常点检测

合集下载

基于支持向量机回归

基于支持向量机回归

基于支持向量机回归
支持向量机回归(Support Vector Machine Regression, SVMR)是一种强大的机器学习算法,它在回归问题中表现出色。

本文将介
绍支持向量机回归的原理、应用和优势。

支持向量机回归是一种监督学习算法,它通过寻找一个最佳的
超平面来进行回归预测。

与传统的回归方法不同,支持向量机回归
不仅能够处理线性回归问题,还能够处理非线性回归问题。

它通过
使用核函数将输入空间映射到高维特征空间,从而使得数据在高维
空间中线性可分,进而找到最佳的超平面进行回归预测。

支持向量机回归的优势之一是其对于异常值的鲁棒性。

由于支
持向量机回归是基于支持向量来进行回归预测的,因此对于异常值
的影响较小,能够更好地适应数据的特点。

此外,支持向量机回归
还具有较强的泛化能力,能够在面对新数据时保持较好的预测性能。

在实际应用中,支持向量机回归被广泛应用于金融、医疗、生
物科学等领域。

例如,在金融领域,可以利用支持向量机回归来预
测股票价格的走势;在医疗领域,可以利用支持向量机回归来预测
疾病的发展趋势。

支持向量机回归在这些领域展现出了良好的预测
性能和稳定性。

总之,支持向量机回归作为一种强大的机器学习算法,在回归问题中具有很高的应用价值。

它的优势在于对异常值的鲁棒性、较强的泛化能力以及对非线性回归问题的处理能力。

随着机器学习技术的不断发展,支持向量机回归必将在更多的领域得到广泛应用。

路由器中基于支持向量机(SVM)的异常检测方法研究

路由器中基于支持向量机(SVM)的异常检测方法研究
文提 出的 思想 ,相 当于 将路 由器 与 安全 设备 融合 起来 ,在

( . ;, - , , X ∈ R ,Y ∈ { , } x , )i 1 … n, y - 。 +l一l ,满 足 [ ( w b 卜l≥ 0i , n , …, =l () 1
此时 分类 间 隔等 于 ,使 间 隔最 大 等价于 使 】 小 。 最 满 足 条 件 且 使 I 小 的 分 类 面 就 叫做 最 优 分 类 面 。用 最 La a g gr n e优 化方 法可 以把 最优 分类 面 问题转化 为 对偶 问 题 ,可得 最优 分类 函数 为 :
L e , H N C e g i U F n Z A G hn -xn
(e/ e s c o m n o[ /Gn B/ g 1 0 # ., a  ̄ i g A p p e C m ad C#i et e # 0 0 I Ul ) y # oa ' o . j / 2 O ' k
求 供 囊 M S 釜V 了 设

也为
理论 应 用于 网络 节 点设 备安 全提 出 了一 种鬈 蓑竺 篙 差 莩一

2 S M 算法介绍 V
S VM(u p r etr Ma hn ,简称 S S p ot co c ie V VM) 建 是
立 在 统 计 学 习理 论 基 础 之 上 的 一 种 机 器 学 习 方 法 ,能 较 好 地 解 决 小 样 本 学 习 问题 ,SVM 是 从 线 性 可 分 情 况 下
1引言
当前 ,网络 安 全技 术是 计 算 机 网络 的一 个 关 键技 术 。
作为 网络 节 点设 备的 路 由器 ,功 能是提 供 公共 网络 接 口和 传递 网络 数据 。路 由器 作 为核 心通 信设 备 ,除 了具 备基 本 分发 工作 外 ,还承 担 着安全 保 卫任 务 。 由于其 在 网络结 构

《基于支持向量机的异常检测关键问题研究及应用》范文

《基于支持向量机的异常检测关键问题研究及应用》范文

《基于支持向量机的异常检测关键问题研究及应用》篇一一、引言随着大数据时代的到来,异常检测技术在众多领域中发挥着越来越重要的作用。

支持向量机(SVM)作为一种有效的机器学习算法,在异常检测领域具有广泛的应用。

本文将重点研究基于支持向量机的异常检测关键问题,并探讨其在实际应用中的效果。

二、支持向量机(SVM)概述支持向量机是一种监督学习模型,常用于分类和回归分析。

其基本思想是将输入数据映射到一个高维空间,然后通过寻找能够将不同类别的数据分隔开的超平面来实现分类。

在异常检测中,SVM可以用于识别出与正常数据模式偏离的异常数据。

三、基于支持向量机的异常检测关键问题1. 数据预处理数据预处理是异常检测的关键步骤之一。

由于实际数据往往存在噪声、缺失值、异常值等问题,需要进行数据清洗、归一化、标准化等操作,以提高SVM的检测性能。

此外,特征选择和降维也是数据预处理的重要环节,可以有效降低模型的复杂度,提高检测效率。

2. 模型参数选择SVM的模型参数选择对异常检测效果具有重要影响。

常见的参数包括核函数的选择、惩罚因子C的值、核函数参数等。

这些参数的选择需要根据具体的应用场景和数据进行调整,以达到最佳的检测效果。

3. 异常阈值的设定在SVM进行异常检测时,需要设定一个阈值来判断数据是否为异常。

阈值的设定需要根据实际情况进行,过高的阈值可能导致漏检,过低的阈值则可能导致误检。

因此,如何合理地设定阈值是SVM异常检测的一个重要问题。

四、基于支持向量机的异常检测应用1. 网络安全领域网络安全领域是SVM异常检测的重要应用场景之一。

通过对网络流量、日志等数据进行异常检测,可以有效地发现网络攻击、恶意行为等威胁。

SVM在网络安全领域的应用具有较高的准确性和实时性。

2. 金融风险控制金融领域是另一个SVM异常检测的重要应用场景。

通过对金融交易数据进行异常检测,可以有效地发现欺诈行为、洗钱等风险。

SVM在金融风险控制中的应用可以帮助金融机构提高风险控制能力,降低损失。

支持向量回归案例代码

支持向量回归案例代码

支持向量回归案例代码支持向量回归(Support Vector Regression, SVR)是一种基于支持向量机的回归方法,可以用于解决回归问题。

下面列举了一些支持向量回归的案例代码,以帮助读者更好地理解和应用该方法。

1. 一维线性回归案例:```pythonfrom sklearn.svm import SVRimport numpy as np# 创建训练数据X = np.sort(5 * np.random.rand(100, 1), axis=0)y = np.sin(X).ravel()# 训练支持向量回归模型svr = SVR(kernel='linear', C=1.0, epsilon=0.2)svr.fit(X, y)# 预测X_test = np.linspace(0, 5, 100).reshape(-1, 1)y_pred = svr.predict(X_test)# 可视化结果import matplotlib.pyplot as pltplt.scatter(X, y, color='darkorange', label='data') plt.plot(X_test, y_pred, color='navy', label='SVR') plt.xlabel('X')plt.ylabel('y')plt.title('SVR - Linear Kernel')plt.legend()plt.show()```2. 多维非线性回归案例:```pythonfrom sklearn.svm import SVRimport numpy as np# 创建训练数据X = np.sort(5 * np.random.rand(100, 2), axis=0)y = np.sin(X[:, 0]) + np.cos(X[:, 1])# 训练支持向量回归模型svr = SVR(kernel='rbf', C=1.0, epsilon=0.2)svr.fit(X, y)# 预测X1 = np.linspace(0, 5, 50)X2 = np.linspace(0, 5, 50)X_test = np.array(np.meshgrid(X1, X2)).T.reshape(-1, 2)y_pred = svr.predict(X_test)# 可视化结果import matplotlib.pyplot as pltfrom mpl_toolkits.mplot3d import Axes3Dfig = plt.figure()ax = fig.add_subplot(111, projection='3d')ax.scatter(X[:, 0], X[:, 1], y, color='darkorange', label='data')ax.scatter(X_test[:, 0], X_test[:, 1], y_pred, color='navy', label='SVR')ax.set_xlabel('X1')ax.set_ylabel('X2')ax.set_zlabel('y')ax.set_title('SVR - RBF Kernel')plt.legend()plt.show()```3. 支持向量回归中的参数调优:```pythonfrom sklearn.svm import SVRfrom sklearn.model_selection import GridSearchCVimport numpy as np# 创建训练数据X = np.sort(5 * np.random.rand(100, 1), axis=0)y = np.sin(X).ravel()# 定义参数范围param_grid = {'C': [0.1, 1.0, 10.0], 'epsilon': [0.1, 0.2, 0.5], 'kernel': ['linear', 'rbf']}# 使用网格搜索寻找最佳参数svr = SVR()grid_search = GridSearchCV(svr, param_grid, cv=5)grid_search.fit(X, y)# 输出最佳参数print("Best Parameters: ", grid_search.best_params_)# 预测X_test = np.linspace(0, 5, 100).reshape(-1, 1)y_pred = grid_search.predict(X_test)# 可视化结果import matplotlib.pyplot as pltplt.scatter(X, y, color='darkorange', label='data') plt.plot(X_test, y_pred, color='navy', label='SVR') plt.xlabel('X')plt.ylabel('y')plt.title('SVR - Best Parameters')plt.legend()plt.show()```4. 使用SVR进行时间序列预测:```pythonfrom sklearn.svm import SVRimport numpy as np# 创建时间序列数据X = np.arange(0, 10, 0.1).reshape(-1, 1)y = np.sin(X).ravel()# 训练支持向量回归模型svr = SVR(kernel='rbf', C=1.0, epsilon=0.2)svr.fit(X, y)# 预测X_test = np.arange(10, 20, 0.1).reshape(-1, 1)y_pred = svr.predict(X_test)# 可视化结果import matplotlib.pyplot as pltplt.plot(X, y, color='darkorange', label='data') plt.plot(X_test, y_pred, color='navy', label='SVR') plt.xlabel('X')plt.ylabel('y')plt.title('SVR - Time Series')plt.legend()plt.show()```5. 使用SVR进行异常点检测:```pythonfrom sklearn.svm import SVRimport numpy as np# 创建训练数据X = np.sort(5 * np.random.rand(100, 1), axis=0)y = np.sin(X).ravel()# 添加异常点X_outliers = np.array([[2.5]])y_outliers = np.array([10.0])X = np.concatenate((X, X_outliers))y = np.concatenate((y, y_outliers))# 训练支持向量回归模型svr = SVR(kernel='linear', C=1.0, epsilon=0.2)svr.fit(X, y)# 预测X_test = np.linspace(0, 5, 100).reshape(-1, 1)y_pred = svr.predict(X_test)# 可视化结果import matplotlib.pyplot as pltplt.scatter(X, y, color='darkorange', label='data')plt.plot(X_test, y_pred, color='navy', label='SVR')plt.scatter(X_outliers, y_outliers, color='red', label='outliers')plt.xlabel('X')plt.ylabel('y')plt.title('SVR - Outliers')plt.legend()plt.show()```6. 使用SVR进行多任务学习:```pythonfrom sklearn.svm import SVRimport numpy as np# 创建训练数据X = np.sort(5 * np.random.rand(100, 1), axis=0)y1 = np.sin(X).ravel()y2 = np.cos(X).ravel()# 训练支持向量回归模型svr = SVR(kernel='linear', C=1.0, epsilon=0.2, multioutput='uniform_average')svr.fit(X, np.column_stack((y1, y2)))# 预测X_test = np.linspace(0, 5, 100).reshape(-1, 1)y_pred = svr.predict(X_test)# 可视化结果import matplotlib.pyplot as pltplt.scatter(X, y1, color='darkorange', label='data1')plt.scatter(X, y2, color='limegreen', label='data2')plt.plot(X_test, y_pred[:, 0], color='navy', label='SVR1') plt.plot(X_test, y_pred[:, 1], color='purple', label='SVR2') plt.xlabel('X')plt.ylabel('y')plt.title('SVR - Multi-task Learning')plt.legend()plt.show()```7. 使用SVR进行特征选择:```pythonfrom sklearn.svm import SVRfrom sklearn.datasets import load_bostonfrom sklearn.feature_selection import SelectFromModel# 加载波士顿房价数据集X, y = load_boston(return_X_y=True)# 特征选择svr = SVR(kernel='linear', C=1.0, epsilon=0.2)sfm = SelectFromModel(svr)X_new = sfm.fit_transform(X, y)# 输出选择的特征print("Selected Features: ", sfm.get_support(indices=True)) ```8. 使用SVR进行稀疏数据回归:```pythonfrom sklearn.svm import SVRimport numpy as np# 创建稀疏训练数据X = np.sort(5 * np.random.rand(100, 1), axis=0)y = np.sin(X).ravel()X[::5] = np.nany[::5] = np.nan# 训练支持向量回归模型svr = SVR(kernel='linear', C=1.0, epsilon=0.2)svr.fit(X, y)。

支持向量机的异常检测算法与应用案例

支持向量机的异常检测算法与应用案例

支持向量机的异常检测算法与应用案例引言:在现代社会中,异常检测(Anomaly Detection)在各个领域都扮演着重要的角色。

异常检测的目标是识别出与正常模式不符的数据点,以便进一步采取相应的措施。

支持向量机(Support Vector Machine,SVM)作为一种常用的机器学习算法,在异常检测中具有广泛的应用。

本文将介绍支持向量机的异常检测算法原理,并通过实际应用案例来进一步说明其有效性和实用性。

一、支持向量机的异常检测算法原理支持向量机是一种二分类模型,其基本思想是在特征空间中找到一个最优的超平面,将不同类别的样本点分开。

在异常检测中,我们将异常点视为一种“罕见”的类别,通过构建一个合适的分类器来识别这些异常点。

支持向量机的异常检测算法可以分为两个步骤:训练和测试。

1. 训练阶段:在训练阶段,我们使用正常样本数据来训练支持向量机模型。

具体而言,我们通过最小化目标函数来确定一个最优的超平面,使得正常样本点尽可能地靠近该超平面,并且使得异常点尽可能地远离该超平面。

支持向量机通过引入松弛变量和惩罚项来实现这一目标。

训练完成后,我们得到一个支持向量机模型,可以用于后续的异常检测。

2. 测试阶段:在测试阶段,我们使用训练好的支持向量机模型来对新的样本数据进行分类。

对于每个测试样本点,我们计算其到超平面的距离,并与预先设定的阈值进行比较。

如果距离超过阈值,则将该样本点判定为异常点;否则,将其判定为正常点。

通过这种方式,我们可以有效地识别出异常点。

二、支持向量机的异常检测应用案例支持向量机的异常检测算法在实际应用中具有广泛的应用。

以下是一个基于支持向量机的网络入侵检测案例。

在网络安全领域,入侵检测是一项重要的任务。

入侵检测的目标是识别出网络中的异常行为,以便及时采取相应的措施。

支持向量机的异常检测算法可以用于网络入侵检测中,通过对网络流量数据进行分析,识别出潜在的入侵行为。

具体而言,我们可以使用支持向量机对网络流量数据进行分类,将正常的网络流量与异常的网络流量分开。

如何使用支持向量机进行异常值检测

如何使用支持向量机进行异常值检测

如何使用支持向量机进行异常值检测引言:异常值是指与大多数数据点显著不同的观测值,它们可能是数据收集或记录过程中的错误,或者是真实数据中的离群值。

异常值的存在可能会对数据分析和模型建立产生不良影响,因此异常值检测是数据预处理的重要环节。

支持向量机(Support Vector Machine,SVM)是一种强大的机器学习算法,它不仅可以用于分类和回归问题,还可以用于异常值检测。

本文将介绍如何使用支持向量机进行异常值检测。

一、支持向量机简介支持向量机是一种监督学习算法,其基本原理是通过寻找一个最优的超平面来实现数据的分类或回归。

在二分类问题中,支持向量机的目标是找到一个超平面,使得离该超平面最近的样本点到该超平面的距离最大化。

这些离超平面最近的样本点被称为支持向量。

支持向量机通过将数据映射到高维空间中,使得数据在新的空间中可以更容易地被分离。

二、支持向量机在异常值检测中的应用支持向量机可以通过利用异常值对超平面的影响,来进行异常值检测。

其基本思想是将异常值视为离超平面最近的样本点,然后通过调整超平面的位置来尽量使得离超平面最近的样本点的距离最大化。

三、异常值检测的步骤1. 数据预处理在进行异常值检测之前,需要对数据进行预处理。

预处理的步骤包括数据清洗、数据归一化等。

数据清洗可以去除重复值、缺失值和异常值。

数据归一化可以将不同特征的数据转化为同一尺度,以避免某些特征对异常值检测结果的影响。

2. 构建支持向量机模型构建支持向量机模型需要选择合适的核函数和参数。

常用的核函数有线性核、多项式核和径向基函数核。

参数的选择可以通过交叉验证等方法来确定。

3. 训练模型使用已标记的正常样本进行支持向量机模型的训练。

训练的目标是找到一个最优的超平面,使得正常样本被正确分类,并且离超平面最近的样本点的距离最大化。

4. 异常值检测将未标记的样本输入训练好的支持向量机模型中,通过计算样本点到超平面的距离,可以得到每个样本点的异常分数。

如何使用支持向量机进行异常检测任务

如何使用支持向量机进行异常检测任务

如何使用支持向量机进行异常检测任务引言:异常检测是数据分析中重要的任务之一。

支持向量机(Support Vector Machine,SVM)是一种常用的机器学习算法,可以用于异常检测任务。

本文将介绍如何使用支持向量机进行异常检测,包括数据预处理、模型训练和异常检测结果分析等方面。

一、数据预处理在进行异常检测任务之前,首先需要对数据进行预处理。

数据预处理包括数据清洗、特征选择和特征缩放等步骤。

1. 数据清洗:数据清洗是指对原始数据进行去噪和处理缺失值等操作。

在异常检测任务中,噪声和缺失值会对模型的性能产生负面影响。

因此,可以使用插值方法填充缺失值,或者使用平滑滤波器去除噪声。

2. 特征选择:特征选择是指从原始数据中选择与异常检测任务相关的特征。

在异常检测任务中,选择合适的特征可以提高模型的准确性和效率。

可以使用相关性分析、信息增益等方法进行特征选择。

3. 特征缩放:特征缩放是指将不同尺度的特征转换为相同的尺度。

在异常检测任务中,特征缩放可以避免某些特征对模型的影响过大。

常用的特征缩放方法包括标准化和归一化等。

二、模型训练在进行异常检测任务之前,需要使用支持向量机对数据进行训练。

模型训练包括选择合适的核函数、调整超参数和训练模型等步骤。

1. 选择核函数:支持向量机可以使用不同的核函数,如线性核函数、多项式核函数和高斯核函数等。

选择合适的核函数可以提高模型的准确性。

在异常检测任务中,常用的核函数是高斯核函数,因为它可以处理非线性的数据。

2. 调整超参数:支持向量机有一些超参数需要调整,如正则化参数和核函数参数等。

通过交叉验证等方法,可以选择合适的超参数,以提高模型的性能。

3. 训练模型:使用经过预处理的数据和调整好的超参数,可以开始训练支持向量机模型。

训练模型的过程是通过最小化目标函数来找到最优的超平面,以将正常样本和异常样本分开。

三、异常检测结果分析在训练好支持向量机模型后,可以使用该模型对新的样本进行异常检测。

如何使用支持向量机进行异常检测

如何使用支持向量机进行异常检测

如何使用支持向量机进行异常检测引言:异常检测是数据分析领域中重要的任务之一,它可以帮助我们发现数据中的异常行为或异常模式。

支持向量机(Support Vector Machine,简称SVM)是一种常用的机器学习算法,可以用于异常检测。

本文将介绍如何使用支持向量机进行异常检测,并探讨其应用和优缺点。

一、支持向量机简介支持向量机是一种监督学习算法,其主要目标是找到一个超平面,将不同类别的数据点分隔开。

在异常检测中,我们可以将异常点看作是一个类别,正常点看作是另一个类别。

支持向量机通过构建一个最优的超平面来划分这两个类别,从而实现异常检测的目的。

二、支持向量机的工作原理支持向量机的工作原理可以简单概括为以下几个步骤:1. 数据预处理:异常检测通常需要对原始数据进行预处理,包括数据清洗、特征选择和特征缩放等。

这些步骤有助于提高异常检测的准确性和效果。

2. 特征提取:支持向量机需要将数据转换为向量形式进行处理。

在异常检测中,我们需要从原始数据中提取有用的特征,以便支持向量机能够更好地区分正常和异常数据。

3. 模型训练:使用标记好的训练数据,通过支持向量机算法进行模型训练。

训练过程中,支持向量机会找到一个最优的超平面,使得正常数据和异常数据之间的间隔最大化。

4. 异常检测:使用训练好的模型对新的数据进行异常检测。

支持向量机通过计算新数据点到超平面的距离来判断其是否为异常点。

距离超过一定阈值的数据点被认为是异常点。

三、支持向量机在异常检测中的应用支持向量机在异常检测中有广泛的应用,以下列举几个常见的领域:1. 金融欺诈检测:支持向量机可以通过分析用户的交易行为,识别出潜在的欺诈行为,帮助金融机构提高风险控制能力。

2. 网络入侵检测:支持向量机可以分析网络流量数据,识别出异常的网络行为,帮助网络管理员及时发现并应对潜在的入侵威胁。

3. 工业生产异常检测:支持向量机可以分析生产过程中的传感器数据,识别出异常的工艺参数,帮助企业提高生产效率和产品质量。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(7)
ε (f ( xi ) − yi )= ⎨
⎧0,|f ( xi ) − yi |< ε ⎩ f ( xi ) − yi | −ε,其他
(3)
为控制函数的复杂性应使线性回归函数尽量 平坦,亦即使w的欧拉范数||w||2最小,并考虑可能 超出精度的拟合误差,引入松弛因子 ξi , ξ ≥ 0 ,以
* i
由此,支持向量机的函数回归问题就可以归结 为二次规划问题。求解该二次规划问题,可以得到 用数据点表* )Φ ( xi )
i =1
l
(8)
处理未满足式(3)的数据点。 根据统计学习理论的结 构风险化准则,支持向量回归方法通过极小化目标 函数来确定式(1)中的 w 和 b,即求下式最小:
f ( x ) = w ⋅ Φ(x )+b, Φ : R n → F,w ∈ F
(6)
(1)
式中b为阈值。由于Φ固定不变,因此影响w的有经 验风险的总和以及使其在高维空间平坦的||w||2,即
将式(6)代入式(5),可以得到对偶优化问题: 1 l min ∑ (α i − α i* )(α j − α * j )(Φ ( xi ) ⋅ Φ ( x j )) − 2 i , j =1
文章编号:0258-8013 (2009) 08-0092-05
基于支持向量机的回归预测和异常数据检测
王雷1,张瑞青1,盛伟1,徐治皋2
(1.沈阳工程学院动力工程系,辽宁省 沈阳市 110136; 2.东南大学能源与环境学院,江苏省 南京市 210096)
Regression Forecast and Abnormal Data Detection Based on Support Vector Regression
R ( w) =
l 1 || w ||2 + ∑ ε (f ( xi ) − yi ) 2 i=1
∑ α i (ε − yi ) − ∑ α i* (ε + yi )
i =1
l
l
l
(2)
i =1
式中:l 表示样本的数目;ε()是损失函数,损失函 数只计算[−ε, ε]以外的样本点,其定义如下:
⎧ * ⎪ (α i − α i ) = 0 s.t. ⎨∑ i =1 ⎪α , α * ∈ [0, C ] ⎩ i i
因,运行过程中不可避免的会出现测量参数失效, 而运行过程中只要有一个参数失效就可能使各种 数学模型中的某些运算无法进行,使得各种运行优 化性能计算系统的现场应用受到限制,从而影响对 设备的运行状态的监测,进而影响操作指导、经济 性分析的准确度,严重的甚至关系到安全性问题。 研究表明,关键参数的测量数据即使发生 1%的漂 移也可能造成非常显著的热耗计算值的变化[1],而 往往这样的偏差是很难被直观地检测出来的,这就 是测量过程中所谓的异常数据现象。由于参数的随 机性很强,异常数据很难避免,因此优化性能计算 系统必须具有数据检测能力,即能对实时测量参数 进行有效检测,从而达到剔除异常数据的目的。 异常数据检测方法已经有很多种,如基于机理 模型的预测方法[2]、统计学方法[3-4]、基于距离的检 测方法[5-6]、神经网络方法[7-8]以及最近刚刚兴起的 支持向量机方法等。基于支持向量机的异常数据检 测方法是一个新兴的研究方向,在电站实时数据检 测中的研究刚刚展开。本文利用支持向量机算法中 结构风险函数较好的平滑性,建立基于支持向量回 归的数据估计模型,实现异常数据的检验和分离。
WANG Lei1, ZHANG Rui-qing1, SHENG Wei1, XU Zhi-gao2
(1. Thermal Power Engineering Department, Shenyang Institute of Engineering, Shenyang 110136, Liaoning Province, China; 2. School of Energy and Environment, Southeast University, Nanjing 210096, Jiangsu Province, China) ABSTRACT: In order to solve the general phenomena that abnormal data existing in the real-time data, based on support vector regression (SVR), a method of detecting abnormal data was presented. The model does not intend to eliminate individual major error while consider the smooth of the regression curve entirety on the whole, and distinguishes the abnormal data by comparing the regression value with the operational data. Main steam flow rate in 300 MW thermal power plant is selected to be the studying object,simulation results show that the method can determine the location and separate the abnormal data from the real-time data correctly, which establishes the foundations for enhancing the precise for the performance of power plant calculation. KEY WORDS: thermal power engineering; abnormal data; real-time data; support vector regression; main steam flow rate 摘要: 针对电站实时数据中普遍存在异常数据的情况, 提出 一种基于支持向量回归的异常数据检测方法。 该方法利用支 持向量回归估计模型不倾向于消除个别大的回归误差, 而是 从整体上考虑回归曲线的平滑程度的特点, 通过比较回归估 计值与实测值之间的残差来识别测量数据中的异常数据。 以 某 300 MW机组的主蒸汽流量为具体对象, 给出了该方法的 算例和检测结果, 计算结果表明该方法能有效地实现异常数 据的定位与分离,为提高电站性能计算的精确性奠定 基础。 关键词:热能动力工程;异常数据;实时数据;支持向量回 归;主蒸汽流量
∑αi (ε + ξi − yi + w ⋅ Φ( xi ) + b) −
i =1
∑αi* (ε + ξi* + yi − w ⋅ Φ( xi ) − b) −
i =1
l
∑ (λi ⋅ ξi + λi* ⋅ ξi* )
i =1
l
(5)
要使式(5)取得最小值,对于参数 w , b, ξi , ξi* 的 偏导都应等于零,即
1 基于支持向量回归的异常数据检测
1.1 支持向量回归算法 支持向量机(support vector machine, SVM)是由 Vapnik[9]最早提出的一种统计学习方法,近年来已 经被成功地应用于语音识别、文字识别、时序数列 预测等领域。该方法具有学习速度快、全局最优和 泛化能力强的优点,其学习结果明显好于其他的回
0 引言
目前,电站的运行性能计算和优化依赖于大量 现场参数的测量值,一些分析优化算法都是以所需 的参数能被准确测量为前提的。但是由于各种原
第8期
王雷等:
基于支持向量机的回归预测和异常数据检测
l ⎧ ∂L = w − ∑ (α i − α i* ) ⋅ Φ( xi ) = 0 ⎪ ∂w i =1 ⎪ l L ∂ ⎪ = (α − α * ) = 0 ∑ i i ⎪ ⎪ ∂b i =1 ⎨ ∂L ⎪ = C − α i − λi = 0 ⎪ ∂ξi ⎪ ∂L * * ⎪ * = C − α i − λi = 0 ⎪ ⎩ ∂ξi
∑ (α i − α i* )K ( x, xi ) + b
i=1
l
(9)
(4)
式中 K ( xi , x ) = Φ (xi ) ⋅ Φ (x ) , K ( xi , x ) 称为核函数。 选择不同形式的核函数就可以生成不同的支持向 量机, 常用的核函数有: 径向基函数、 多项式函数、 感知器(Sigmoid)函数、线性函数等。 1.2 基于支持向量回归的异常数据检测 数据中含有异常值,是造成回归估计不理想的 主要原因。用含有异常值的数据建立回归模型,通 常会在进行回归估计时使回归曲线拉向异常数据, 不仅极大地影响回归曲线拟合的效果,而且此时观 测值(异常数据)和回归值之间残差反而小,难以区 分回归估计值和观测值的孰真孰伪,因而易造成对 设备运行状态的判断的失误。 支持向量回归算法中的结构风险函数具有较 好的平滑性,它并不倾向于消除个别大的回归误 差, 而是通过ε不敏感损失函数(式(3))的作用来控制 异常数据对回归模型的影响,从整体上考虑回归曲 线的平滑性,这样就使异常数据与回归值之间的残
式中 α i 和 α i* 是最小化 R( w ) 的解。由此可求得线性 回归函数:
f ( x ) = w ⋅ Φ (x ) + b = ∑ (α i − α i* )(Φ (xi ) ⋅ Φ (x )) + b =
i=1
l
R( w,ξi ,ξi* ) =
l 1 || w ||2 +C ∑ (ξi + ξi* ) 2 i=1 ⎧ yi − w ⋅ Φ( xi ) − b ≤ ε + ξi ⎪ s.t. ⎨ w ⋅ Φ( xi ) + b − yi ≤ ε + ξi* * ⎪ ⎩ξi ,ξi ≥ 0
相关文档
最新文档