python svr回归_SVR入门介绍(Python代码)

python svr回归_SVR入门介绍(Python代码)一.SVR原理简述在前面的文章中详细讨论过关于线性回归的公式推导,线性回归传送站。线性回归的基本模型为:,从某方面说这和超平面的的表达式:有很大的相似性。但SVR认为只要与不要偏离太大即算预测正确,为拟合精度控制参数。如图所示:SVR示意图从图例中分析,支持向量机回归与线性回归相比,支持向量回归表示只要在虚线内部的值都可认为是预测正确,只要计算虚线外部的值的损失即可。考虑到S…

大家好,欢迎来到IT知识分享网。

一. SVR原理简述

在前面的文章中详细讨论过关于线性回归的公式推导,线性回归传送站。线性回归的基本模型为:

python svr回归_SVR入门介绍(Python代码) ,从某方面说这和超平面的的表达式:

python svr回归_SVR入门介绍(Python代码) 有很大的相似性。但SVR认为只要

python svr回归_SVR入门介绍(Python代码)

python svr回归_SVR入门介绍(Python代码) 不要偏离太大即算预测正确,

python svr回归_SVR入门介绍(Python代码) 为拟合精度控制参数。如图所示:python svr回归_SVR入门介绍(Python代码)SVR 示意图

从图例中分析,支持向量机回归与线性回归相比,支持向量回归表示只要在虚线内部的值都可认为是预测正确,只要计算虚线外部的值的损失即可。考虑到SVM中线性不可分的情形,在引入松弛变量

python svr回归_SVR入门介绍(Python代码) 最终得出支持向量机回归的最优化问题:

python svr回归_SVR入门介绍(Python代码) s.t

python svr回归_SVR入门介绍(Python代码) ;

python svr回归_SVR入门介绍(Python代码) ;

python svr回归_SVR入门介绍(Python代码) ;

python svr回归_SVR入门介绍(Python代码)

引入拉格朗日乘数,经过一系列求解与对偶,求的线性拟合函数为:

python svr回归_SVR入门介绍(Python代码) ;

python svr回归_SVR入门介绍(Python代码) 为拉格朗日朗日乘子。

引入核函数,则得:

python svr回归_SVR入门介绍(Python代码)

二. python函数介绍

这里面涉及到的核函数等其它知识可参考:svm通俗讲解。

sklearn.svm.SVR(

kernel =’rbf’,

degree = 3,

gamma =’auto_deprecated’,

coef0 = 0.0,

tol = 0.001,

C = 1.0,

epsilon = 0.1,

shrinking = True,

cache_size = 200,

verbose = False,

max_iter = -1

)

”’kernel:指定要在算法中使用的内核类型。它必须是’linear’,’poly’,’rbf’, ‘sigmoid’,’precomputed’或者callable之一。degree: int,可选(默认= 3)多项式核函数的次数(‘poly’)。被所有其他内核忽略。gamma : float,(默认=’auto’),’rbf’,’poly’和’sigmoid’的核系数。当前默认值为’auto’,它使用1 / n_features。coef0 : float,(默认值= 0.0)核函数中的独立项。它只在’poly’和’sigmoid’中很重要。tol : float,(默认值= 1e-3)容忍停止标准。C : float,可选(默认= 1.0)错误术语的惩罚参数C.epsilon : float,optional(默认值= 0.1)epsilon在epsilon-SVR模型中。它指定了epsilon-tube,其中训练损失函数中没有惩罚与在实际值的距离epsilon内预测的点。shrinking : 布尔值,可选(默认= True)是否使用收缩启发式。cache_size : float,可选,指定内核缓存的大小(以MB为单位)。verbose : bool,默认值:False 启用详细输出。请注意,此设置利用libsvm中的每进程运行时设置,如果启用,则可能无法在多线程上下文中正常运行。max_iter : int,optional(默认值= -1) 求解器内迭代的硬限制,或无限制的-1”’

三. 示例代码https://github.com/zx3305/tennis/blob/master/svm/svr_test.py​github.com

import matplotlib.pyplot as plt

import numpy as np

import pandas as pd

from sklearn.model_selection import train_test_split

from sklearn.svm import SVR

from sklearn.metrics import r2_score

np.random.seed(0)

x = np.random.randn(80, 2)

y = x[:, 0] + 2*x[:, 1] + np.random.randn(80)

clf = SVR(kernel=’linear’, C=1.25)

x_tran,x_test,y_train,y_test = train_test_split(x, y, test_size=0.25)

clf.fit(x_tran, y_train)

y_hat = clf.predict(x_test)

print(“得分:”, r2_score(y_test, y_hat))

r = len(x_test) + 1

print(y_test)

plt.plot(np.arange(1,r), y_hat, ‘go-‘, label=”predict”)

plt.plot(np.arange(1,r), y_test, ‘co-‘, label=”real”)

plt.legend()

plt.show()python svr回归_SVR入门介绍(Python代码)结果示意图

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/12729.html

(0)
上一篇 2024-03-11 11:00
下一篇 2024-03-12 09:15

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信