SVR与SVM的区别如下图
SVR在线性函数两侧制造了一个“间隔带”,间距为\epsilonϵ(也叫容忍偏差,是一个由人工设定的经验值),对所有落入到间隔带内的样本不计算损失,也就是只有支持向量才会对其函数模型产生影响,最后通过最小化总损失和最大化间隔来得出优化后的模型。
代码实现:
pandas是一个强大的分析结构化数据的工具集;它的使用基础是Numpy(提供高性能的矩阵运算);用于数据挖掘和数据分析,同时也提供数据清洗功能。这里使用pandas读取excel中的数据。
import numpy as np # numpy库
import pandas as pd # 导入pandas
training_data_all = pd.read_excel("Database_Scenario1.xls",sheet_name = "Zigbee")
x_train = training_data_all["x"].copy() # 训练数据集只有因变量x
y_train = training_data_all["y"].copy() # 训练数据集只有因变量y
zigbee_data = training_data_all.drop(["x","y"], axis=1) # 从训练数据集中删除因变量
训练数据如下图,其中RSSI A-C为输入,x,y坐标为输出。
SVR部分:
from sklearn import svm
clf_x = svm.SVR(kernel='rbf',C=10, gamma = 0.01)
clf_y = svm.SVR(kernel=