初勘数据处理之预测算法(支持向量机SVM)附matlab源码

初勘数据处理之预测算法(支持向量机SVM)附matlab源码

  1. 机器学习
    从人类诞生幵始,人们就不断地尝试探求各种方式方法来简化或代替人类劳动。随着计算机技术的产生、发展,让人们开始寻求一个可以模拟人类思考的系统,进而代替人们去完成某项特定的工作。这个系统必须具有专业的知识或技能,而这些专业的知识和技能就需要通过机器学习来获取。
    任何的计算机程序在完成一项任务的时候得到经验,通过这个经验来不断改进自身表现,这就叫机器学习。机器学习是研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,它主要使用归纳、综合而不是演绎。机器学习本质上就是通过计算机对某个问题建立一个假设的模型,利用假设的模型对真实模型进行逼近。
    机器学习模型通常由产生器、训练器和学习机三部分组成,如图:
    初勘数据处理之预测算法(支持向量机SVM)附matlab源码_第1张图片
    是学习,就会存在“失误”,而对于机器学习的“失误”在此称作风险。所谓风险就是实际输出和预测计算结果的差别。不同的模型存在的风险是不同的。
    所以,机器学习的目的就是对于样本观测值 {(x1,y1),(x2,y2),…(xn,yn)},从一组函数,中求出一个最优的函数,使得训练器的期望风险最小。

  2. 支持向量机(SVM)
    世纪年代,贝尔实验室提出了支持量机理论。该理论具有训练样本小、泛化能力强以及易得到全局最优解等优点,被广泛应用于屯力、经济、医学的话多领域。支持向量机主要具有个基本功能:模式识别、回归预测、概率密度估计。

  3. 支持向量机(SVM)应用案例
    应用背景:随着交通基础设置建设和智能运输系统的发展,交通规划和交通诱导巳成为交通领域研究的热点 对于交通规划和交通诱导来说,准确的交通流量预测是其实现的前提和关键通流量预测根据时间跨度可以分为长期交通流量预测和短期交通流量预测:长期交通流量预测以小时、天、月甚至年为时间单位,是宏观意义上的预测;短时交通流量预测一般的时间跨度不超过 15 分钟,是微观意义上的预测。短时交通流量预测是智能运输系统的核心内容,智能运输系统中多个子系统的功能实现都以其为基础。短时交通流量预测具有高度非线性和不确定性等特点,并且同时间相关性较强,可以看成是时间序列预测问题,比较常用的方法包括多元钱性回归预测、AR 模型预测、ARMA 模型预测、指数平滑预测等。
    数据集:traffic_flux 《MATLAB神经网络43个案例分析 chapter 32 小波神经网络预测交通流量》

matlab实现代码:


%% 清空环境
clc
clear all

%% 数据集加载
load traffic_flux input output input_test output_test
train=input;
train_label=output;
test=input_test;
test_label=output_test;

%%
[X_scale,temp] = scaleForSVM(train,test,1,2);
X_scale
%%
tic
[bestmse,bestc,bestg] =SVMcgForRegress(train_label,train)   %回归寻优
toc
cmd = ['-c ',num2str(bestc),' -g ',num2str(bestg),' -s 3 -p 0.01'];

% -c cost: 设置C-SVC, e -SVR和v-SVR的参数(损失函数)(默认1);

% -g r(gama): 核函数中的gamma函数设置(针对多项式/rbf/sigmoid核函数)(默认1/ k);

% -s 设置svm类型:
%  0 – C-SVC
%  1 – v-SVC
%  2 – one-class-SVM
%  3 – ε-SVR
%  4 – n – SVR

% -p p: 设置e -SVR 中损失函数p的值(默认0.1);

%% SVM网络训练
model = svmtrain(train_label, train, cmd);
 
%% SVM网络预测
tempzero = zeros(92,1) ;
[predict_label] = svmpredict(tempzero, test, model);

%% 结果分析
    figure(1)
    plot(predict_label,'r*:')
    hold on
    plot(test_label,'bo--')
    title('预测值','fontsize',12)
    legend({'预测值', '实际值'})
    xlabel('时间点')
    ylabel('交通流量')

效果图:
初勘数据处理之预测算法(支持向量机SVM)附matlab源码_第2张图片
初勘数据处理之预测算法(支持向量机SVM)附matlab源码_第3张图片
初勘数据处理之预测算法(支持向量机SVM)附matlab源码_第4张图片

你可能感兴趣的:(matlab)