当前位置: 首页 > news >正文

SVR(支持向量机)用法介绍

一、SVR回归介绍

SVR(Support Vector Regression)是支持向量机(SVM)在回归问题中的应用。与SVM分类模型相似,SVR也是一种非概率性算法,通过使用核函数将数据映射到高维空间,并在该空间上寻找最优的超平面与训练数据之间的间隔最大化,得到了回归模型。

与传统回归模型不同,SVR将回归问题转化为寻找一个函数逼近真实函数的过程。在实际应用中,可以使用不同的核函数和超参数来调整模型,以得到更好的拟合效果。

二、SVR回归模型建立

建立SVR回归模型的基本步骤如下:

1.数据预处理
SVR回归模型对数据的要求比较高,需要对数据进行预处理。首先需要对数据进行标准化处理,使其均值为0,方差为1。其次需要将数据进行归一化处理,将数据缩放到[0,1]范围内,以免特征之间的数据差异影响模型训练效果。

X_train = StandardScaler().fit_transform(X_train)
y_train = np.log1p(y_train) # 取对数归一化,提高拟合效果

2.模型训练
可以使用sklearn库中的SVR类来训练模型,其中需要指定核函数和超参数,例如:

clf = SVR(kernel='rbf', C=1, gamma=0.1, epsilon=0.1)
clf.fit(X_train, y_train)

其中,kernel参数是核函数类型,C是正则化参数,gamma是rbf核函数的带宽参数,epsilon是误差容忍度参数。

3.模型评估
可以使用sklearn库中的mean_squared_error函数来计算模型的均方误差(MSE),评估模型的拟合效果,例如:

y_pred = clf.predict(X_test)
mse = mean_squared_error(y_test, y_pred)

可以将mse与均值和标准差进行比较,以评估模型的拟合效果。

三、SVR回归模型调参

在SVR回归中,调参是一个非常重要的过程。常用的调参方法主要有网格搜索法和随机搜索法两种。

1.网格搜索法
网格搜索法通过遍历超参数的所有可能取值,从中选取最佳超参数的组合以获得最优的模型。可以使用sklearn库中的GridSearchCV类来进行网格搜索。

例如,可以定义参数网格,指定不同核函数、C和gamma值,以进行模型训练和评估:

param_grid = {'kernel': ['rbf'], 'C': [0.1, 1, 10], 'gamma': [0.1, 0.01, 0.001]}
grid_search = GridSearchCV(clf, param_grid, cv=5, scoring='neg_mean_squared_error')
grid_search.fit(X_train, y_train)

2.随机搜索法
与网格搜索法不同,随机搜索法是按照概率分布从指定的超参数空间中采样,从而更快地找到最优的超参数组合。可以使用sklearn库中的RandomizedSearchCV类来进行随机搜索。

例如,可以定义超参数分布,指定不同核函数、C和gamma的取值分布,以进行模型训练和评估:

param_distribs = {'kernel': ['rbf'], 'C': reciprocal(20, 200000), 'gamma': expon(scale=1.0)}
rnd_search = RandomizedSearchCV(clf, param_distributions=param_distribs, n_iter=50, cv=5, scoring='neg_mean_squared_error')
rnd_search.fit(X_train, y_train)

四、SVR回归实战应用

SVR回归可以在多个领域中进行应用,例如股票预测、房价预测、人物关系预测等领域。下面以一个简单的房价预测为例,介绍SVR回归的实际应用。

1.数据收集和处理
首先需要收集房屋样本数据,包括房屋面积、房间数、卫生间数、厨房数、地理位置等。对数据进行预处理,包括特征缩放、标准化和分类编码等。

2.模型训练和调参
可以使用sklearn库中的SVR类来训练模型,并使用网格搜索法或随机搜索法调整超参数,以获得最佳的拟合效果。

param_grid = {'kernel': ['rbf'], 'C': [0.1, 1, 10], 'gamma': [0.1, 0.01, 0.001]}
grid_search = GridSearchCV(clf, param_grid, cv=5, scoring='neg_mean_squared_error')
grid_search.fit(X_train, y_train)

3.模型测试和性能评估
使用测试数据对模型进行测试,并使用均方误差(MSE)、R方值等指标来评估模型的性能。可以使用sklearn库中的mean_squared_error和r2_score函数来进行评估:

y_pred = clf.predict(X_test)
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)

五、SVR回归小结

本文从SVR回归的介绍、模型建立、调参和实战应用等方面进行了阐述。SVR回归是一种非常有用的回归模型,在多个领域中具有广泛的应用。

http://www.lryc.cn/news/93424.html

相关文章:

  • 是面试官放水,还是公司实在是太缺人?这都没挂,腾讯原来这么容易进···
  • 算法模板(5):数学(1):数学知识(1)
  • 电子行业 K 公司对接 Nexperia EDI 项目案例
  • chatgpt赋能python:Python如何将英文转化为中文的最佳方法
  • 知道这些英文文档翻译的方式吗
  • 供应链安全
  • 华硕天选4原装Windows11系统带ASUSRECOVERY恢复工厂模式安装
  • 数据库期末复习(8)并发控制
  • 一文说透:低代码开发平台和零代码平台区别是什么?
  • 4.将图神经网络应用于大规模图数据(Cluster-GCN)
  • pymongo更新数据
  • 手机软件测试规范(含具体用例)
  • mysql having的用法
  • 大数据需要学习哪些内容?
  • 【c++】static和const修饰类的成员变量或成员函数
  • DVWA-9.Weak Session IDs
  • Bug序列——容器内给/root目录777权限后无法使用ssh免密登录
  • 华为OD机试真题 JavaScript 实现【服务中心选址】【2023Q1 100分 】
  • <Linux>《OpenSSH 客户端配置文件ssh_config详解》
  • Linux内核中内存管理相关配置项的详细解析8
  • 深入浅出Vite:Vite打包与拆分
  • 大数据ETL工具Kettle
  • 大学物理(上)-期末知识点结合习题复习(4)——质点运动学-动能定理 力做功 保守力与非保守力 势能 机械能守恒定律 完全弹性碰撞
  • 这两个小众的资源搜索工具其实很好用
  • Java设计模式(六)— 单例模式1
  • iOS -- isa指针
  • 【SA8295P 源码分析】14 - Passthrough配置文件 /mnt/vm/images/linux-la.config 内容分析
  • 新型糖基化氨基酸:Fmoc-Thr((Ac4Galβ1-3)Me,Ac4Neu5Acα2-6AcGalNAcα)-OH,化学CAS号174783-92-7
  • 网络安全(黑客)怎么自学?
  • Vue学习 之 MacOS 安装 webpack