clc clear % Load data load 'C:\Aorda\PSG\MATLAB\CS_Logistic_Regression\Problem_4\problem_LOGEXPSUM_CrossValidation_Data.mat' 'matrix_allscenarios_data' 'matrix_allscenarios_vars' 'matrix_allscenarios_benchmark' % Pack data to PSG Toolbox matrix format toolboxstruc_arr=tbpsg_matrix_pack('allscenarios',matrix_allscenarios_data,matrix_allscenarios_vars,matrix_allscenarios_benchmark); % Create problem statement problem_statement = sprintf('%s\n',... 'for {matrix_fact_in, matrix_fact_out, num} = crossvalidation(4, matrix_allscenarios)',... 'Problem: problem_num, maximize',... ' logexp_sum(matrix_fact_in)',... ' ',... 'Value:',... ' logistic_in_num(matrix_fact_in)',... ' logistic_out_num(matrix_fact_out)',... ' logexp_sum(matrix_fact_out)',... 'end for',... ''); % Solve an optimization problem [solution_str,outargstruc_arr] = tbpsg_run(problem_statement, toolboxstruc_arr); % Extract from solution report headers (names of variables) of optimal points optim_points_vars = tbpsg_point_vars(solution_str, outargstruc_arr); optim_points_vars = optim_points_vars(1,:); % Extract from solution report data of optimal points optim_points_data = tbpsg_point_data(solution_str, outargstruc_arr); % Extract from solution report values of objectives objective_values = tbpsg_objective(solution_str, outargstruc_arr); % Extract from solution sructure values of function logexp_sum(matrix_fact_out) [output_structure] = tbpsg_solution_struct(solution_str, outargstruc_arr); func_values = output_structure.function_value([2,4,6,8]); % Reports fprintf('\n'); fprintf('Table 1. Optimal points:\n'); fprintf('%26s\t %18s\t %18s\t %18s\n ',' In-Sample1',' In-Sample2',' In-Sample3',' In-Sample4 '); all_points=[optim_points_data{1}',optim_points_data{2}',optim_points_data{3}',optim_points_data{4}']; fprintf('\n'); for i=1:size(optim_points_vars,2) fprintf('%4s\t %18g\t %18g\t %18g\t %18g\n',optim_points_vars{i},all_points(i,1),all_points(i,2),all_points(i,3),all_points(i,4)); end fprintf('\n'); fprintf('\n'); fprintf('Table 2. Value of log-likelihood function for logistic regression:\n'); loc1 = {' In-Sample1',' In-Sample2',' In-Sample3',' In-Sample4','Out-of-Sample1','Out-of-Sample2','Out-of-Sample3','Out-of-Sample4'}; loc2 = [objective_values;func_values]; for i=1:8 fprintf('%10s\t %40g\n',loc1{i},loc2(i)) end