Python实现基于高斯核函数,线性核函数和多项式核函数的SVR(支持向量回归)及预测算法

#(SVR)支持向量回归算法
import numpy as np
from sklearn.svm import SVR
import matplotlib.pyplot as plt
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['SimHei']

X=np.sort(5*np.random.rand(40,1),axis=0) #生成40组数据,按列排列
y=np.sin(X).ravel() #生成40组数据,ravel表示转换为行

svr_rbf=SVR(kernel='rbf',C=1e3,gamma=0.1) #rbf高斯核函数
svr_lin=SVR(kernel='linear',C=1e3) #linear线性核函数
svr_poly=SVR(kernel='poly',C=1e3,degree=2) #poly多项式核函数
y_rbf=svr_rbf.fit(X, y).predict(X) 
y_lin=svr_lin.fit(X, y).predict(X)
y_poly=svr_poly.fit(X,y).predict(X)

plt.scatter(X,y,label="原始数据") #原始数据
plt.scatter(X,y_rbf,label="高斯核")
plt.scatter(X,y_lin,label="线性核")
plt.scatter(X,y_poly,label="多项式核")
plt.legend()
plt.show()

在这里插入图片描述

  • 3
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中,rbf核函数(径向基函数)通常被用于支持向量机(SVM)和高斯过程回归(GPR)等机器学习算法中。具体而言,rbf核函数是一种用于计算两个样本之间的相似度的函数,其形式为: K(x, y) = exp(-gamma * ||x - y||^2) 其中,x和y是样本向量,||x - y||表示欧氏距离,gamma是一个可调节的参数,控制了样本相似度的衰减速度。在SVM中,rbf核函数通常用于非线性分类问题,将样本映射到高维特征空间中,使得线性不可分的样本点在新的特征空间中变得线性可分。 在Python中,你可以使用scikit-learn库来实现rbf核函数。下面是一个示例代码: ```python from sklearn.svm import SVC from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split # 加载数据集 iris = load_iris() X, y = iris.data, iris.target # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 创建SVC模型,并使用rbf核函数 svm = SVC(kernel='rbf') # 拟合模型 svm.fit(X_train, y_train) # 在测试集上进行预测 y_pred = svm.predict(X_test) # 输出预测结果 print(y_pred) ``` 在这个示例中,我们使用了鸢尾花数据集(iris)作为示例数据,创建了一个SVC模型,并将核函数设置为rbf。然后,我们使用训练集对模型进行拟合,并在测试集上进行预测。最后,打印预测结果。 希望这个回答能够帮到你!如果你有更多问题,请随时问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值