nightmare011 2022-04-27 17:14 采纳率: 0%
浏览 166
已结题

基于自编码器的电力负荷预测

请问怎么样用Matlab来实现基于自编码器对一个特定电力负荷数据集的预测

  • 写回答

8条回答 默认 最新

  • 不会长胖的斜杠 新星创作者: 后端开发技术领域 2022-04-27 17:34
    关注
    load data.mat
    [numPoints, numFeatures] = size(data);
    
    layers = [
        % 特征输入层
        featureInputLayer(numFeatures);
        % 全连接层-1
        fullyConnectedLayer(15)
        reluLayer
        % 全连接层-2
        fullyConnectedLayer(2)
        reluLayer
        % 全连接层-3
        fullyConnectedLayer(15)
        reluLayer
        % 回归输出层
        fullyConnectedLayer(numFeatures)
        regressionLayer];
    
    % 训练参数设置
    options = trainingOptions('adam', ...
        'ExecutionEnvironment', 'auto', ...
        'MiniBatchSize', 50, ...
        'MaxEpochs', 200, ...
        'Shuffle', 'every-epoch', ...
        'Plots', 'training-progress', ...
        'Verbose', false);
    
    
    net = trainNetwork(data, data, layers, options);
    
    % 可视化网络结构
    analyzeNetwork(net)
    
    
    layer = 'relu_2';
    featuresTrain = activations(net, data, layer, 'OutputAs', 'rows');
    
    figure
    scasize = 32;
    scatter(featuresTrain(:, 1), featuresTrain(:, 2), scasize,...
        'MarkerEdgeColor', 'k',...
        'MarkerFaceColor', [0 0.4470 0.7410])
    title('特征提取结果')
    
    % 数据重构
    dataPred = predict(net, data);
    
    figure
    scatter3(dataPred(:, 1), dataPred(:, 2), dataPred(:, 3), scasize,...
        'MarkerEdgeColor', 'k',...
        'MarkerFaceColor', [0 0.4470 0.7410])
    hold on
    scatter3(data(:, 1), data(:, 2), data(:, 3), scasize,...
        'MarkerEdgeColor', 'k',...
        'MarkerFaceColor', [0.6350 0.0780 0.1840])
    legend({'重构数据', '原始数据'})
    

    可以参考

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月4日
  • 修改了问题 4月27日
  • 创建了问题 4月27日