用支持向量机模型进行数据预测

 利用支持向量机模型进行电力数据预测,其中,平均温度、最高温度、最低温度、相对湿度、星期类型为自变量,24小时的电力数据为因变量,2月15日到3月18日数据为样本数据,3月19日到4月15日为测试数据。

电力数据 

日期平均温度最高温度最低温度相对湿度星期类型0小时1小时2小时3小时4小时5小时6小时7小时8小时9小时10小时11小时12小时13小时14小时15小时16小时17小时18小时19小时20小时21小时22小时23小时
2月15日11.513.510.80.770.355.5251.350.0848.2446.145.9848.7856.8970.9869.9476.2178.4269.2476.9777.4976.979.7279.4780.3181.4578.7675.5667.7561.2
2月16日8.611.26.40.790.753.6652.0449.1248.1249.0847.8150.4561.4578.3986.5589.4591.2380.1886.1587.6488.6491.4688.8389.4890.3887.5682.9875.3166.31
2月17日7.18.46.10.840.857.9454.2852.4351.0252.2252.2354.6365.4983.7592.996.6593.6282.491.5791.490.3594.9191.3392.1591.788.8684.9178.0169.32
2月18日7.88.66.90.930.86358.6256.9255.2854.1655.0956.1265.9885.4793.4897.2896.8185.4995.0894.1894.2595.7792.2590.293.3391.9486.4278.9172.89
2月19日11.415.78.40.910.862.1359.6255.5854.7355.4655.0557.9867.0184.4690.8889.8792.6481.8886.4485.6283.9586.1182.5885.928889.1685.6677.0670.86
2月20日10.614.280.580.862.3660.2157.4654.7753.3753.756.4967.0584.9487.2990.9490.1179.9988.9788.8586.8687.9484.6587.6990.488.5684.3278.3370.17
2月21日9.614.24.90.720.462.7958.3156.2954.5651.8352.2954.6963.4381.4587.1188.588.8374.3983.0283.6183.9887.198985.5988.3286.0582.3776.7269.5
2月22日15.322.810.70.770.362.3758.1155.4853.4152.0852.1552.9160.2876.8781.1183.1782.0470.5376.6678.6576.5378.576.6180.182.981.6579.6972.366.43
2月23日11.413.5100.80.761.1156.9554.2152.5153.035454.7864.1981.888.0491.5891.8677.1389.190.6991.1893.6790.1189.0991.0988.5684.1877.8570.3
2月24日12.715100.890.862.0657.6755.9854.1352.6854.2257.166.580.9486.3689.9285.0272.1781.1283.5580.2888.2786.5686.9289.3186.0784.8775.567.54
2月25日12.615.610.20.830.860.2355.7452.8752.5250.9852.2555.9165.8784.1789.6492.3693.3482.1187.9889.4889.6190.4989.9387.6191.4688.6285.4176.7569.64
2月26日8.710.57.80.830.861.4558.3555.9254.0552.7954.4959.9567.185.7490.9194.2394.6582.3591.4891.0393.1193.2189.7290.6593.4890.3786.1678.7771.21
2月27日8.610.37.40.780.864.0259.3857.5555.7454.7755.5158.2168.5787.2795.6596.9697.8683.2191.2592.8891.8393.0592.590.794.3692.3588.1481.5973.68
2月28日7.38.56.30.750.465.2661.6960.0558.2855.5256.3558.6265.2385.5190.4591.8692.7979.790.2190.3489.892.6891.889.2193.1990.2485.6278.6474.31
3月1日6.99.360.770.364.6860.2356.7955.5252.9452.4553.9360.6475.3882.4486.2384.7176.6884.0283.9584.2585.9686.4887.3790.0188.6985.8875.1370.05
3月2日7.58.46.80.830.761.5957.5455.4851.5852.3152.9155.7266.783.9396.7399.7100.1989.2299.6997.0598.78100.8395.3691.5694.9593.1489.2582.3374.58
3月3日78.84.70.840.865.8261.7859.8458.7457.257.2260.3270.5690.4297.29103.35101.7591.0499.2999.2898.28102.47100.3895.55100.2396.6192.684.274.88
3月4日6.98.75.60.870.869.0463.9960.4258.4158.0458.4762.2772.8290.7699.97101.93101.0891.1699.63100.92100.35103.4599.9697.27100.1296.7792.1785.3976.82
3月5日9.612.37.40.920.867.6863.6261.4758.8360.0558.8561.5369.2890.9299.71103.97105.5391.66100.31100.54100.24102.2797.6893.3497.9795.3784.8983.477.75
3月6日9.110.78.30.640.867.463.6458.8659.0357.4657.0460.369.9390.3399.38101.26103.2588.3798.1298.1397.5597.588.5391.5793.5892.1289.581.8377.55
3月7日6.895.10.740.467.5463.566158.2758.2858.1959.6567.5685.8990.5594.4996.6482.4392.6592.3792.1394.2694.4392.3496.2394.4589.1683.7577.5
3月8日8.313.63.80.790.367.6863.2960.4358.7256.9456.6359.1264.0580.8286.2188.2387.1875.1583.0582.2481.9486.1289.7187.3691.2490.2588.3579.9671.79
3月9日10.916.58.50.790.764.2560.556.9855.3154.7454.0659.3767.4186.5295.0799.3794.9179.7789.5687.4989.0389.3484.7386.2693.5892.1488.9482.2374.08
3月10日10.717.26.20.770.866.6961.7759.1758.6257.3958.360.0671.1789.1491.0785.7589.1677.7785.3686.8886.1889.4586.3685.2488.9189.386.9779.7671.12
3月11日12.213.110.30.780.863.8659.2856.1753.6654.6453.658.7264.0271.0177.1179.4180.4571.2977.2776.3675.4178.1276.984.189.8887.8382.3676.6371.66
3月12日1521.710.80.890.863.3459.5958.3557.0856.7455.7860.0271.3788.6694.6796.2294.1878.7586.0987.0987.3587.758683.7189.7189.4985.6778.472.41
3月13日11.215.55.50.840.864.860.2158.3354.1255.8755.6660.1969.9887.1689.1895.4696.2983.8995.6493.9193.3195.1994.891.0993.6893.1589.6982.7874.83
3月14日7.913.64.10.650.467.363.2259.7358.0257.1257.6560.571.1987.4790.793.1789.4675.884.3384.5385.4285.184.6983.2891.5989.985.9179.4772.4
3月15日9.817.33.10.670.365.7460.9358.8457.0156.154.7959.266.381.0783.9187.2586.5872.582.4382.0581.8582.682.1680.9786.9286.784.4777.1968.51
3月16日13.923.96.20.750.760.0655.6752.8352.0851.1349.4156.7467.8786.0590.9193.3491.6574.8486.3286.4985.6487.884.2681.7488.3188.8785.9678.3368.47
3月17日15.924.99.70.790.861.757.0753.6753.0853.795558.2767.6884.6889.7192.0489.7174.4685.3887.4786.589.5386.0683.6989.6487.6385.0678.1669.96
3月18日18.625.212.80.70.861.1257.6555.452.6252.0654.9659.3567.685.1191.0692.6691.6474.886.4987.7487.789.098885.1190.0388.2285.8275.3767.12
3月19日20.727.617.20.740.861.1455.8353.953.251.2351.9356.9165.7182.8388.4191.4690.9875.9285.6785.6486.4288.8387.7383.5889.9887.5784.9975.868.35
3月20日16.119.912.70.80.859.5856.954.6551.6750.9752.4558.8566.4283.4588.4891.4190.7874.7484.9686.2986.6686.0283.4781.2987.3484.1381.773.2870.8
3月21日16.52012.50.780.462.3456.7456.154.0254.4353.2558.1565.4684.1787.0689.3389.4474.7784.9486.2285.6387.6186.7382.8486.5884.5782.7974.4268.6
3月22日16.725.215.20.810.360.055855.1753.6152.7351.2554.6961.175.9781.3483.281.2669.0278.2978.679.9981.6982.2779.2482.9582.3578.8272.4663.84
3月23日10.715.78.40.740.756.954.0952.4450.8151.5949.5654.9862.6882.1988.0792.5392.4880.3589.4290.6991.6994.0393.5289.6591.6787.7483.9876.1967.88
3月24日10.315.16.90.770.862.557.4957.154.9451.8753.2559.7267.5883.3888.3789.8288.7874.5984.6885.8884.2988.4884.8382.290.2284.8884.8376.6369.14
3月25日11.11670.750.861.3257.7953.453.0151.4752.7160.3866.4981.9786.4988.2286.6872.1882.0384.3283.5485.8683.7281.889.2686.9284.578.9170.27
3月26日13.318.880.690.861.7157.595553.6253.0254.4460.7268.0183.5188.9591.3689.7874.0485.8286.7186.1988.9285.368489.6287.884.0176.1966.87
3月27日12.113.1110.90.859.1755.9554.9752.9252.7852.9557.1862.9980.5687.0489.5389.9276.6886.0384.8586.3987.5185.8683.2386.8385.4381.9174.9767.98
3月28日9.9118.60.860.461.9758.3356.0553.2652.7352.458.4564.0683.7490.0692.8694.7579.2988.1990.5890.2893.7694.3287.3993.2789.8784.7279.0370.25
3月29日9.2117.60.80.363.258.3757.2755.453.5453.9557.5463.3779.2485.3888.8589.7576.886.2487.286.189.2588.7283.8387.5986.5884.4979.6470.43
3月30日11.315.670.690.761.0458.0556.0454.454.2854.0162.1669.0586.4792.1193.3992.5476.0388.390.1388.6291.5788.2286.3891.7988.8886.0979.0669.95
3月31日12.917.39.20.680.860.3758.956.2554.0554.8554.0961.3368.5187.5891.3792.2591.475.0787.8990.8888.9991.1688.1685.8292.3789.9586.9676.9868.77
4月1日11.212.610.30.670.862.3558.3855.253.2251.8451.3858.5668.3286.9293.2394.7296.4680.3788.4390.5990.293.5389.3988.3291.6289.4586.2678.8369.55
4月2日10.3136.80.550.861.5259.5657.4655.7253.9955.361.1569.485.1790.3593.6193.1477.1188.4388.4887.8787.5286.9684.6388.9188.9886.2677.6570.25
4月3日11.514.29.50.830.863.1760.2258.1156.5755.4554.0759.6767.483.8190.4495.1192.5879.7388.9187.3386.3388.2584.1980.4584.482.6980.1573.5966.88
4月4日152012.20.850.158.7255.1954.8851.7349.7950.252.7354.961.9563.3864.4866.0159.4460.961.861.8562.3365.0665.6670.9169.768.6261.4755.14
4月5日1314.411.60.790.149.5346.7944.1542.9242.4542.7347.9656.6169.3375.8878.7179.2569.5676.176.8477.2678.4379.9575.8880.5877.5576.8368.6862.87
4月6日14.320.610.60.610.156.3452.6851.2149.3249.9349.5854.0562.7977.0381.386.2686.0671.7881.0982.9582.9184.4581.3878.8984.7984.7580.9374.3366.54
4月7日1419.39.40.520.859.8758.0754.8452.7851.6853.4458.8567.7679.3686.2991.290.2576.8486.918787.4286.6885.8384.4788.5388.5584.3474.5966.79
4月8日15.120.412.30.660.858.6656.8556.0153.9352.8153.160.168.7185.6389.3292.8392.0776.1485.7886.7988.2889.5986.1482.5588.0987.185.0675.2266.57
4月9日1622.810.50.580.859.1956.8554.5853.252.5552.7655.7162.6676.7884.7988.428171.7782.1383.6184.1684.4781.9479.6387.4286.683.0476.1367.31
4月10日15.520.710.80.70.859.7556.2854.1452.1753.5654.0160.1666.6683.688.1892.2691.2674.0884.2886.6786.9687.7583.4180.4986.985.3782.4475.4667.31
4月11日16.422.213.80.870.459.6155.754.2853.4951.953.0958.7465.0382.0386.7591.0488.3872.5583.184.4485.188583.5382.0886.2184.4581.7274.5266.86
4月12日19.224.116.20.840.359.7355.4154.6753.8151.4151.3955.7662.2577.2880.9184.3584.369.0876.0377.6277.8780.679.4575.6980.5881.9479.2670.3962.79
4月13日22.126.718.90.790.756.4552.8851.2649.9651.3151.3557.5966.5582.590.5688.3590.274.6884.4885.8883.8186.6183.5979.885.8386.5682.5875.1366.66
4月14日19.524.7170.690.857.9756.654.2151.7553.3450.8260.3864.0380.1986.0587.1786.3572.8683.3584.0483.7286.3982.6380.286.5285.7382.5775.7169.25
4月15日19.927.413.90.670.861.0459.2255.654.3953.5852.8461.1866.2781.1987.5490.4787.7673.183.1884.283.884.8380.9876.782.4981.3478.8969.8261.99

程序源代码

clc;           % 清屏
close all;     %清除内存以便加快运算速度
clear all      %关闭当前所有figure图像
C = 30;        
theta = 2;    %C为最小二乘支持向量机的正则化参数,theta为高斯径向基的核函数参数,两个需要进行优化选择调试
NumOfPre = 28;   %预测天数,在此预测本季度最后28天
Time = 24;      % 代表一天24小时的数据
Data = xlsread('C:\Users\Administrator\Desktop\数据汇总\数据.xls'); %此为从excel表格读数据的命令,表示将表格的数据读到Data数组中,省略表格中的第一行第一列文字部分 可输入你要预测的表格名称
[M N] = size(Data); %计算读入数据的行和列 M行N列

for i = 1:3
    maxData = max(Data(:,i));
    minData = min(Data(:,i));
    Data1(:,i) = (Data(:,i) - minData)/(maxData-minData);  %对温度进行归一化处理
end

for i = 4:5
    Data1(:,i) = Data(:,i);
end
for i = 6:N
    Data1(:,i) = log10(Data(:,i)) ;%对负荷进行对数处理 温度和负荷的预处理 可采用不同的方法 可不必拘泥
end


Dim =  M - 2 - NumOfPre;  %训练样本数
Input = zeros(M-2,12,Time);  %预先分配处理后的输入向量空间
y = zeros(Dim,Time);

for i = 3:M 
    for j = 1:Time
        %%选取前一天温度、同一时刻的负荷,前两天的负荷,当天的温度作为输入特征
        x = [Data1(i-1,1:5), Data1(i-1,j+5), Data1(i-2,j+5),Data1(i,1:5)];
        Input(i-2,:,j) = x;
        y(i-2,j) = Data1(i,j+5);
    end
end

Dist = zeros(Dim,Dim,Time);%预先分配距离空间
for i=1:Time
    for j=1:Dim
        for k=1:Dim
            Dist(j,k,i) = (Input(j,:,i) - Input(k,:,i))*(Input(j,:,i) - Input(k,:,i))';
        end
    end
end
Dist1 = exp(-Dist/(2*theta));%RBF

for i=1:Time
    H = Dist1(:,:,i) + eye(Dim)/C;%最小二乘支持向量的H矩阵
    f = -y(1:Dim,i); 
    Aeq = ones(Dim,1)';
    beq = [0];
    option.MaxIter=1000;
    [a,fval]=quadprog(H,f,[],[],Aeq,beq);%,[],[],[],option);
    b = 0;
    for j = 1:Dim
        b(j) = y(j,i) - a(j)/C - a'* Dist1(:,j,i);%求每个输入特征对应的b
    end
    b = sum(b)/Dim;%求平均b,消除误差
    for j = Dim + 1:M-2
        for k = 1:Dim
            K(k) = exp(-(Input(j,:,i) - Input(k,:,i))*(Input(j,:,i) - Input(k,:,i))'/(2*theta));%预测输入特征与训练特征的RBF距离
        end
        Pre(j-Dim,i) = sum(a'*K') + b;  %求解预测值   
    end
end

Len = M  - (Dim + 3) + 1;%预测的天数 取本季度最后Len天
Pre = 10.^Pre;

for i = 1:Len
    figure 
    plot(1:Time,Data(i+Dim+2,6:N),'r-o',1:Time,Pre(i,:),'b--+');%画出每一天的预测值和真实值
     hold on
    legend('真实值','预测值');          % 标注图例
    axis([0 25 0 120]);
    hold off
end


%计算相对误差
r=zeros(Len,Time);
r1=zeros(Len,1);
for i = 1:Len
    for j=1:Time
      r(i,j)=abs((Pre(i,j)-Data(i+Dim+2,5+j))/Data(i+Dim+2,5+j));      % r矩阵存储每天对应24小时的相对误差,一共28天
    end
    r1(i)=sum(r(i,:))/Time;                 % r1矩阵存储28天中,每一天的平均相对误差
end

 程序仿真结果部分展示 

3月19日
3月26日
4月2日
4月9日

  • 4
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MATLAB码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值