博客
关于我
【预测模型】SVM回归预测算法股票趋势预测【Matlab 010期】
阅读量:712 次
发布时间:2019-03-21

本文共 1395 字,大约阅读时间需要 4 分钟。

1. 简介

支持向量机(Support Vector Machine, SVM)是一种强大的机器学习算法,由 Cortes 和 Vapnik 于 1995 年首次提出。它在小样本、高维、非线性分类问题上表现突出,同时也可扩展到函数拟合等领域,具有广泛的应用价值。

2. 数学基础

2.1 二维空间

在二维空间中,支持向量机通过寻找最大间隔直线将数据分隔开。该直线与训练样本尽可能远,同时只包含极少数支持向量(即该直线上的一点),这是 SVM 中的核心思想。

通过将数据分布绘制出来,可以直观地观察到这一过程。原始数据点分布在平面上,支持向量位于分隔直线上。随着数据分布的变化,分隔直线的位置和方向也会调整,以达到最优 separating hyperplane。

2.2 算法概述

SVM的主要步骤如下:

  • ** loadData**:读取训练数据。
  • Data Preprocessing:对数据进行预处理,例如归一化或标准化。
  • (kernel)Mapping:将数据映射到高维特征空间。
  • ** classify**:在新的特征空间中训练分类器。
  • ** predict**:将新的数据集应用于预训练模型,进行预测。
  • 这一系列步骤确保了 SVM 的鲁棒性和泛化能力。

    3. 源代码解析

    以下是基于 MATLAB 的 SVM 代码示例:

    % 加载数据sh = dlmread('yahoo.csv');sh = flipdim(sh, 1); % 确保时序数据正确[m, n] = size(sh);ts = sh(2:m, 1); % 获取时间序列Tsps = sh(1:m-1, :); % 获取时序特征original = ts(length(sh)*0.7 + 1:end, :); % 提取数据% 绘制原始数据图figure;plot(ts, 'LineWidth', 1);title('Yahoo 股价(1996.4.12-2012.11.16) before Mapping', 'FontSize', 12);grid on;fprintf('展示股票价格前映射图。\n');fprintf('程序暂停,按下回车继续。\n');pause;% 数据预处理ts = ts';Tsps = Tsps'; % 调换维度以满足 libsvm 要求% 执行映射操作[TS, TSps] = mapminmax(ts);TSps.ymin = 1; TSps.ymax = 2;[TS, TSps] = mapminmax(ts, TSps);TS = TS'; % 调换维度% 输出结果fprintf('\n 初始化中.....\n');TS = TS';[TSX, TSXps] = mapminmax(tsx);TSXps.ymin = 1; TSXps.ymax = 2;[TSX, TSXps] = mapminmax(tsx, TSXps);TSX = TSX';

    代码实现了从数据加载、预处理到模型训练的完整流程。通过 mapminmax 逐步归一化数据范围。

    4. 运行结果

    训练完成后,模型对新数据集的分类准确率显著高于其余算法。图表显示结果符合预期,即模型能够准确地从训练集中学习到分类边界。

    5. 备注

    版本:2014a

    完整代码或代写请联系QQ: 912100926

    转载地址:http://bqjrz.baihongyu.com/

    你可能感兴趣的文章
    opencv SVM分类Demo
    查看>>
    OpenCV VideoCapture.get()参数详解
    查看>>
    opencv videocapture读取视频cap.isOpened 输出总是false
    查看>>
    opencv waitKey() 函数理解及应用
    查看>>
    OpenCV 中的图像转换
    查看>>
    OpenCV 人脸识别 C++实例代码
    查看>>
    OpenCV 在 Linux 上的 python 与 anaconda 无法正常工作.收到未实现 cv2.imshow() 的错误
    查看>>
    Opencv 完美配置攻略 2014 (Win8.1 + Opencv 2.4.8 + VS 2013)上
    查看>>
    opencv 模板匹配, 已解决模板过大程序不工作的bug
    查看>>
    OpenCV 错误:(-215)size.width>0 &&函数imshow中的size.height>0
    查看>>
    opencv&Python——多种边缘检测
    查看>>
    opencv&python——高通滤波器和低通滤波器
    查看>>
    OpenCV+Python识别车牌和字符分割的实现
    查看>>
    OpenCV-Python接口、cv和cv2的性能比较
    查看>>
    OpenCV/Python/dlib眨眼检测
    查看>>
    opencv1-加载、修改、保存图像
    查看>>
    opencv10-形态学操作
    查看>>
    opencv11-提取水平直线和垂直直线
    查看>>
    opencv12-图像金字塔
    查看>>
    opencv13-基本阈值操作
    查看>>