鱼C论坛

 找回密码
 立即注册
查看: 2047|回复: 4

求一份在python中进行支持向量回归(SVR)模型预测的案例分析

[复制链接]
发表于 2020-4-17 23:05:11 | 显示全部楼层 |阅读模式
36鱼币
具体要求:
(1)基于SVR模型的预测
(2)代码能正确运行
(3)有讲解最好(没有也行)

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-18 08:48:05 | 显示全部楼层
import pandas as pd
from sklearn.svm import SVR
import matplotlib.pyplot as plt
import numpy as np


# 待拟合的函数
def my_func(x):
    return 5*np.array(x)+6


# 返回根据待拟合函数产生的x,y
def gen_x_and_y(x=[0.5, 1., 2., 3., 4., 5.], a=1, fx=my_func, er=0.1):
    X = []
    Y = []
    y = fx(x)
    for i in range(a):
        X = X + x
        fy = y + er*np.random.randn(len(x))
        fy = list(fy)
        Y = Y + fy
    X = np.array(X)[:, np.newaxis]
    Y = np.array(Y)
    return X, Y


X, Y = gen_x_and_y(x=[i*0.1 for i in range(100)])  # 把数据分别给X和Y

model = SVR(kernel='rbf', degree=3, gamma='auto_deprecated', C=1.0, epsilon=0.1)  # 模型参数,我全是乱射的,所以拟合效果不好
model.fit(X, Y)  # 拟合

yp = model.predict(X)  # 为了检查拟合的好坏,画出预测值与实际值的散点图

x = np.linspace(0, 70, 1000)  # 为了进行对比,将y=x这条直线画出,方便对比预测结果
y = x


plt.scatter(Y, yp)  # 画出预测值与实际值散点图
plt.plot(x, y)  # 画出y=x这条直线

plt.show()

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-4-18 19:09:59 | 显示全部楼层
wjhdexiaoxiaoha 发表于 2020-4-18 08:48
import pandas as pd
from sklearn.svm import SVR
import matplotlib.pyplot as plt

大佬,我想请问一下,前面数据如果是Excel表格的形式该怎么处理,比如一个表格内只有两列,一列是日期,另一列是销售额或是客流量之类的,那么我该如何在SVR中导入并处理数据,然后做出测试集的拟合及预测呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-19 09:09:03 | 显示全部楼层
279001911 发表于 2020-4-18 19:09
大佬,我想请问一下,前面数据如果是Excel表格的形式该怎么处理,比如一个表格内只有两列,一列是日期, ...

import pandas as pd

data = pd.read_excel(r'路径', sheet_name=表的名)

X = data.iloc[:, 0]
Y = data.iloc[:, 1]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-4-19 20:08:04 | 显示全部楼层
wjhdexiaoxiaoha 发表于 2020-4-19 09:09
import pandas as pd

data = pd.read_excel(r'路径', sheet_name=表的名)

大佬,能具体一点吗?这一小段和上面给的有点衔接不上呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 16:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表