Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
初级会员
注册日期: 2015-04-27
年龄: 32
帖子: 4
声望力: 0 ![]() |
![]()
从网上下了一个RankBoost的实现源码,但是不知道输入输出,也找不到readme文件,所以很头疼啊。毕设最后一步,要把这个源码跑通,并且套用自己的数据,求大神指导。
贴上这个function的代码,后面有些注释是我加的,不知道对不对 %这个.m文件应该算是RankBoost算法的主文件,通过调用其他六个function文件,完成RankBoost算法的功能 clear all; close all; disp('RankBoostt'); %-------------------------------------------------------------------------- % Ranking parameters %-------------------------------------------------------------------------- T=50; % number of boosting rounds verbose=1;%定义变量verbose,并赋初值为1 plot_enable=1; graph_type='full';%graph_type是意思是图类型? %-------------------------------------------------------------------------- % Load a sample data set %-------------------------------------------------------------------------- disp('Loading the Burges data set ...'); addpath G:\matlab\RankBoost %将文件夹添加到工作路径下 d=1;%d表示dimensionality,维数 S=6;%S表示Class,类数 N_train=100;%训练样本数为100个 N_test=94;%测试样本数为94个 N=N_train+N_test;%样本总数为训练样本与测试样本之和 [X,y]=Burges_data_1(d,N,S); %Burges_data_1?将Burges_data_1转成[X,y],也就是需要的数据格式。将Burges_data_1中第一行,第六页的N存入[X,y]中。 %个人认为,其中X是一个二维矩阵,y是一个一维矩阵,两者共同构成三维矩阵,接收Burges_data_1的值。 %[X,y]=Burges_data_2(d,N,S); %-------------------------------------------------------------------------- % Split it into training and test set. %--------------------------------------------------------------------------样本总数 disp('Splitting it into training and test set ...'); %将数据导入训练序列和测试序列 X_train=X(:,1:N_train);%将X中每行1到N_train列的值赋给X_train y_train=y(:,1:N_train);%将y中每行1到N_train列的值赋给y_train X_test=X(:,N_train+1:N);%将X中每行剩余的值赋给X_test y_test=y(:,N_train+1:N);%将y中每行剩余的值赋给y_test clear X;%Clear为清除变量 clear y; %-------------------------------------------------------------------------- % Standardize the training data %-------------------------------------------------------------------------- addpath ..\..\Data\%将文件夹添加到工作路径下,但是添加的是上一部分路径的上一目录,何解? disp('Normalizing the data ...');%规范数据 whiten=1; [X_train,mean_vector,A]=data_standardization(X_train,whiten,plot_enable);%标准化数据 %-------------------------------------------------------------------------- % Standardize the test data %-------------------------------------------------------------------------- [X_test]=data_standardization_test_data(X_test,mean_vector,A,plot_enable); %-------------------------------------------------------------------------- % Convert the data to a format which my code understands %-------------------------------------------------------------------------- disp('Formatting the training data ...');%格式化数据 [data_train]=convert_data_to_ranking_format(X_train,y_train,graph_type);%将数据转成标准输入格式 clear X_train; clear y_train; disp('Formatting the test data ...'); [data_test]=convert_data_to_ranking_format(X_test,y_test,graph_type); clear X_test; clear y_test; %-------------------------------------------------------------------------- % Train the model %-------------------------------------------------------------------------- disp('Training using RankBoost ...'); [model,time_taken]=RankBoost_train(data_train,T,verbose,plot_enable);%进行训练 disp(sprintf('Time taken =%f seconds',time_taken)); %-------------------------------------------------------------------------- % Test the performance on the training set %-------------------------------------------------------------------------- disp('Evaluating the performance on the training set ...');%在训练序列上进行性能评价 [o_train]=RankBoost_ranking_function(data_train.X_raw,T,model); [WMW_train]=compute_WMW(data_train,o_train,1); disp(sprintf('WMW of the training set =%f',WMW_train)); %-------------------------------------------------------------------------- % Test the performance on the test set %-------------------------------------------------------------------------- disp('Evaluating the performance on the test set ...');%在测试序列上进行性能评价 [o_test]=RankBoost_ranking_function(data_test.X_raw,T,model); [WMW_test]=compute_WMW(data_test,o_test,1); disp(sprintf('WMW of the test set =%f',WMW_test)); %-------------------------------------------------------------------------- % Plot to see the ranking function learnt %-------------------------------------------------------------------------- figure; subplot(2,2,1); plot(data_train.X_raw(1, ![]() hold on; plot(data_train.X_raw(1, ![]() title('Training data'); subplot(2,2,2); plot(data_test.X_raw(1, ![]() hold on; plot(data_test.X_raw(1, ![]() title('Test data'); |
![]() |
![]() |