• 大小: 0.11M
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-12
  • 语言: 其他
  • 标签: 其他  

资源简介

ELMfunction.rar

资源截图

代码片段和文件信息

function [TrainingTime TestingTime TrainingAccuracy TestingAccuracy] = ELM(TrainingData_File TestingData_File Elm_Type NumberofHiddenNeurons ActivationFunction)
%% ELM 算法程序
% 调用方式: [TrainingTime TestingTime TrainingAccuracy TestingAccuracy] = elm(TrainingData_File TestingData_File Elm_Type NumberofHiddenNeurons ActivationFunction)
%
% 输入:
% TrainingData_File     - 训练数据集文件名
% TestingData_File      - 测试训练集文件名
% Elm_Type              - 任务类型:0 时为回归任务,1 时为分类任务
% NumberofHiddenNeurons - ELM的隐层神经元数目
% ActivationFunction    - 激活函数类型:
%                           ‘sig‘ , Sigmoidal 函数
%                           ‘sin‘ , Sine 函数
%                           ‘hardlim‘ , Hardlim 函数
%                           ‘tribas‘ , Triangular basis 函数
%                           ‘radbas‘ , Radial basis 函数
% 输出: 
% TrainingTime          - ELM 训练花费的时间(秒)
% TestingTime           - 测试数据花费的时间(秒)
% TrainingAccuracy      - 训练的准确率(回归任务时为RMSE,分类任务时为分类正确率)                       
% TestingAccuracy       - 测试的准确率(回归任务时为RMSE,分类任务时为分类正确率)
%
% 调用示例(回归): [TrainingTime TestingTime TrainingAccuracy TestingAccuracy] = ELM(‘sinc_train‘ ‘sinc_test‘ 0 20 ‘sig‘)
% 调用示例(分类): [TrainingTime TestingTime TrainingAccuracy TestingAccuracy] = ELM(‘diabetes_train‘ ‘diabetes_test‘ 1 20 ‘sig‘)


%% 数据预处理

% 定义任务类型
REGRESSION=0;
CLASSIFIER=1;

% 载入训练数据集
train_data=load(TrainingData_File);
T=train_data(:1)‘;                   % 第一列:分类或回归的期望输出
P=train_data(:2:size(train_data2))‘;% 第二列到最后一列:不同数据的属性
clear train_data;                     % 清除中间变量

% 载入测试数据集
test_data=load(TestingData_File);
TV.T=test_data(:1)‘;                  % 第一列:分类或回归的期望输出
TV.P=test_data(:2:size(test_data2))‘;% 第二列到最后一列:不同数据的属性
clear test_data;                       % 清除中间变量

% 获取训练、测试数据情况
NumberofTrainingData=size(P2);        % 训练数据中分类对象个数
NumberofTestingData=size(TV.P2);      % 测试数据中分类对象个数
NumberofInputNeurons=size(P1);        % 神经网络输入个数,训练数据的属性个数

%% 分类任务时的数据编码
if Elm_Type~=REGRESSION
    % 分类任务数据预处理
    sorted_target=sort(cat(2TTV.T)2);% 将训练数据和测试数据的期望输出合并成一行,然后按从小到大排序
    label=zeros(11);                   %  Find and save in ‘label‘ class label from training and testing data sets
    label(11)=sorted_target(11);      % 存入第一个标签
    j=1;
    % 遍历所有数据集标签(期望输出)得到数据集的分类数目
    for i = 2:(NumberofTrainingData+NumberofTestingData)
        if sorted_target(1i) ~= label(1j)
            j=j+1;
            label(1j) = sorted_target(1i);
        end
    end
    number_class=j;                    % 统计数据集(训练数据和测试数据)一共有几类
    NumberofOutputNeurons=number_class;% 一共有几类,神经网络就有几个输出
       
    % 预定义期望输出矩阵
    temp_T=zeros(NumberofOutputNeurons NumberofTrainingData);
    % 遍历所有训练数据的标记,扩充为num_class*NumberofTraingData的矩阵 
    for i = 1:NumberofTrainingData
        for j = 1:number_class
            if label(1j) == T(1i)
                break; 
            end
        end
        temp_T(ji)=1;                %一个矩阵,行是分类,列是对象,如果该对象在此类就置1

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      19200  2004-04-17 21:18  ELM function\diabetes_test

     文件      57600  2004-04-17 21:18  ELM function\diabetes_train

     文件       8080  2019-06-06 23:02  ELM function\ELM.m

     文件       2708  2019-06-06 23:12  ELM function\iris.txt

     文件       3690  2019-06-07 14:38  ELM function\iris_test.txt

     文件       8610  2019-06-07 14:38  ELM function\iris_train.txt

     文件        807  2019-06-07 14:20  ELM function\run_ELM1.m

     文件        243  2019-06-07 14:34  ELM function\run_ELM2.m

     文件     114277  2004-04-17 23:00  ELM function\sinc_test

     文件     114566  2004-04-17 23:00  ELM function\sinc_train

     目录          0  2019-06-07 14:38  ELM function

----------- ---------  ---------- -----  ----

               329781                    11


评论

共有 条评论