資源簡介
ELMfunction.rar

代碼片段和文件信息
function?[TrainingTime?TestingTime?TrainingAccuracy?TestingAccuracy]?=?ELM(TrainingData_File?TestingData_File?Elm_Type?NumberofHiddenNeurons?ActivationFunction)
%%?ELM?算法程序
%?調(diào)用方式:?[TrainingTime?TestingTime?TrainingAccuracy?TestingAccuracy]?=?elm(TrainingData_File?TestingData_File?Elm_Type?NumberofHiddenNeurons?ActivationFunction)
%
%?輸入:
%?TrainingData_File?????-?訓(xùn)練數(shù)據(jù)集文件名
%?TestingData_File??????-?測試訓(xùn)練集文件名
%?Elm_Type??????????????-?任務(wù)類型:0?時為回歸任務(wù),1?時為分類任務(wù)
%?NumberofHiddenNeurons?-?ELM的隱層神經(jīng)元數(shù)目
%?ActivationFunction????-?激活函數(shù)類型:
%???????????????????????????‘sig‘?,?Sigmoidal?函數(shù)
%???????????????????????????‘sin‘?,?Sine?函數(shù)
%???????????????????????????‘hardlim‘?,?Hardlim?函數(shù)
%???????????????????????????‘tribas‘?,?Triangular?basis?函數(shù)
%???????????????????????????‘radbas‘?,?Radial?basis?函數(shù)
%?輸出:?
%?TrainingTime??????????-?ELM?訓(xùn)練花費的時間(秒)
%?TestingTime???????????-?測試數(shù)據(jù)花費的時間(秒)
%?TrainingAccuracy??????-?訓(xùn)練的準確率(回歸任務(wù)時為RMSE,分類任務(wù)時為分類正確率)???????????????????????
%?TestingAccuracy???????-?測試的準確率(回歸任務(wù)時為RMSE,分類任務(wù)時為分類正確率)
%
%?調(diào)用示例(回歸):?[TrainingTime?TestingTime?TrainingAccuracy?TestingAccuracy]?=?ELM(‘sinc_train‘?‘sinc_test‘?0?20?‘sig‘)
%?調(diào)用示例(分類):?[TrainingTime?TestingTime?TrainingAccuracy?TestingAccuracy]?=?ELM(‘diabetes_train‘?‘diabetes_test‘?1?20?‘sig‘)
%%?數(shù)據(jù)預(yù)處理
%?定義任務(wù)類型
REGRESSION=0;
CLASSIFIER=1;
%?載入訓(xùn)練數(shù)據(jù)集
train_data=load(TrainingData_File);
T=train_data(:1)‘;???????????????????%?第一列:分類或回歸的期望輸出
P=train_data(:2:size(train_data2))‘;%?第二列到最后一列:不同數(shù)據(jù)的屬性
clear?train_data;?????????????????????%?清除中間變量
%?載入測試數(shù)據(jù)集
test_data=load(TestingData_File);
TV.T=test_data(:1)‘;??????????????????%?第一列:分類或回歸的期望輸出
TV.P=test_data(:2:size(test_data2))‘;%?第二列到最后一列:不同數(shù)據(jù)的屬性
clear?test_data;???????????????????????%?清除中間變量
%?獲取訓(xùn)練、測試數(shù)據(jù)情況
NumberofTrainingData=size(P2);????????%?訓(xùn)練數(shù)據(jù)中分類對象個數(shù)
NumberofTestingData=size(TV.P2);??????%?測試數(shù)據(jù)中分類對象個數(shù)
NumberofInputNeurons=size(P1);????????%?神經(jīng)網(wǎng)絡(luò)輸入個數(shù),訓(xùn)練數(shù)據(jù)的屬性個數(shù)
%%?分類任務(wù)時的數(shù)據(jù)編碼
if?Elm_Type~=REGRESSION
????%?分類任務(wù)數(shù)據(jù)預(yù)處理
????sorted_target=sort(cat(2TTV.T)2);%?將訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)的期望輸出合并成一行,然后按從小到大排序
????label=zeros(11);???????????????????%??Find?and?save?in?‘label‘?class?label?from?training?and?testing?data?sets
????label(11)=sorted_target(11);??????%?存入第一個標簽
????j=1;
????%?遍歷所有數(shù)據(jù)集標簽(期望輸出)得到數(shù)據(jù)集的分類數(shù)目
????for?i?=?2:(NumberofTrainingData+NumberofTestingData)
????????if?sorted_target(1i)?~=?label(1j)
????????????j=j+1;
????????????label(1j)?=?sorted_target(1i);
????????end
????end
????number_class=j;????????????????????%?統(tǒng)計數(shù)據(jù)集(訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù))一共有幾類
????NumberofOutputNeurons=number_class;%?一共有幾類,神經(jīng)網(wǎng)絡(luò)就有幾個輸出
???????
????%?預(yù)定義期望輸出矩陣
????temp_T=zeros(NumberofOutputNeurons?NumberofTrainingData);
????%?遍歷所有訓(xùn)練數(shù)據(jù)的標記,擴充為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
評論
共有 條評論