青桔甘苦 2019-11-14 15:13 采纳率: 0%
浏览 1221

应用SVR对负荷数据进行回归分析,测试集出来的数为一条直线?

应用SVR对负荷数据进行回归分析,测试集出来的数为一条直线?

import numpy as np
from sklearn.svm import SVR
import pandas as pd
import matplotlib.pyplot as plt
import xlrd
# 打开指定路径中的xls文件,得到book对象
xls_file = "bb.xls"
#打开指定文件
book = xlrd.open_workbook(xls_file)
# 通过sheet索引获得sheet对象
sheet1 = book.sheet_by_index(0)
# # 获得指定索引的sheet名
# sheet1_name = book.sheet_names()[0]
# print(sheet1_name)
# # 通过sheet名字获得sheet对象
# sheet1 = book.sheet_by_name(sheet1_name)
# 获得行数和列数
# 总行数
nrows = sheet1.nrows
#总列数
ncols = sheet1.ncols
# 遍历打印表中的内容
row_list=[]
for i in range(nrows):
  for j in range(ncols):
    cell_value = sheet1.cell_value(i, j)
    row_list.append (cell_value)#append函数的用处为往一个空矩阵添加元素

x=range(1,156)  #绘制横坐标时间数据
 #提取Excel表里的数据cell_value即是y值

x1=np.array(x)
X=x1.reshape((len(x1),1))##reshape用于转置
y=np.array(row_list)

X_train=np.array(X[0:123])  #训练集124
X_test=np.array(X[124:154])
y_train=np.array(y[0:123]) #测试集31
y_test=np.array(y[124:154])

svr_rbf=SVR(kernel='rbf',C=1e3,gamma=0.1)  #使用 rbf核进行拟合
clf=svr_rbf.fit(X_train,y_train)            #训练得到分类器#中括号的用途
y_rbf=clf.predict(X)                           #预测的输出

ax=plt.subplot(111)
ax.scatter(X_train,y_train,c='r',label='train')                 #训练集真实值的散点图
ax.scatter(X_test,y_test,c='g',label='test')                   #测试集真实值的散点图
ax.plot(X,y_rbf,c='b',label='RBF model')                        #训练集的拟合结果 #测试集的结果为一常值,是因为数据集未进行归一化处理

plt.xlabel('day')
plt.ylabel('target')
plt.title('Support Vector Regression')
plt.legend()
plt.show()

程序运行结果如下:

```![图片说明](https://img-ask.csdn.net/upload/201911/14/1573715524_788157.png)

请各位大佬指点!!


  • 写回答

1条回答 默认 最新

  • AdolphPrice 2021-07-02 16:01
    关注

    我也遇到了这个问题,博主解决了吗?

    评论

报告相同问题?

悬赏问题

  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序
  • ¥15 onvif+openssl,vs2022编译openssl64
  • ¥15 iOS 自定义输入法-第三方输入法
  • ¥15 很想要一个很好的答案或提示