# All of the below jobs take the original LVTS payments data and generate a loan dataset
# bsub -pack original_furfine_jobs


# Baseline Furfine with closest to target duplicate criterion, non-parallel implementation

-o output.BaselineFurfine.%J -app MATLAB -J BaselineFurf  /product/matlab/matlab714/bin/matlab -nodisplay -r "lvtsdatafile = 'Inputs/LVTS_2005-2011ordered.mat'; load(lvtsdatafile); Nchunks= 150; nMatSlaves = 8; min_loansize = 10^6; min_sentime = 60000; bpsl = 0.5; , bpsh = 0.5; refinement = 'None'; methodTreatDuplicates='Hendry'; Simulation = 0; ControlSyntheticForParticipants = 1; Parallel = 0; addpath('/scratch/remm/LVTS/ImprovingOvernightLoanIdentification/KNN'); FurfineControlScript; save('FurfineOutput/BaselineOriginalFurfineOutput.mat', 'Loans', 'LOANS');"

-o output.ExRoundBP.%J -app MATLAB -J ExRoundBP  /product/matlab/matlab714/bin/matlab -nodisplay -r "lvtsdatafile = 'Inputs/LVTS_2005-2011ordered.mat'; load(lvtsdatafile); Nchunks= 150; nMatSlaves = 8; min_loansize = 10^6; min_sentime = 60000; bpsl = 0.5; bpsh = 0.5; refinement = 'IntRoundExact'; methodTreatDuplicates='Hendry'; Simulation = 0; ControlSyntheticForParticipants = 1; Parallel = 0; addpath('/scratch/remm/LVTS/ImprovingOvernightLoanIdentification/KNN'); FurfineControlScript; save('FurfineOutput/RoundedBPexactFurfineOutput.mat', 'Loans', 'LOANS');"

-o output.RoundBP.%J -app MATLAB -J RoundBP -q normal /product/matlab/matlab714/bin/matlab -nodisplay -r "lvtsdatafile = 'Inputs/LVTS_2005-2011ordered.mat'; load(lvtsdatafile); Nchunks= 150; nMatSlaves = 8; min_loansize = 10^6; min_sentime = 60000; bpsl = 0.5; bpsh = 0.5; refinement = 'IntRound'; methodTreatDuplicates='Hendry'; Simulation = 0; ControlSyntheticForParticipants = 1; Parallel = 1;  matlabpool('open', 'lsf', num2str(nMatSlaves)); pctRunOnAll addpath('/scratch/remm/LVTS/ImprovingOvernightLoanIdentification/KNN'); pctRunOnAll rng(192654); FurfineControlScript; save('FurfineOutput/RoundBPFurfineOutput.mat', 'Loans', 'LOANS');"

-o output.EndOfDay.%J -app MATLAB -J EndOfDay  /product/matlab/matlab714/bin/matlab -nodisplay -r "lvtsdatafile = 'Inputs/LVTS_2005-2011ordered.mat'; load(lvtsdatafile); Nchunks= 150; nMatSlaves = 8; min_loansize = 10^6; min_sentime = 60000; bpsl = 0.5; bpsh = 0.5; refinement = 'EndOfDay'; endofdaythreshold=160000; methodTreatDuplicates='Hendry'; Simulation = 0; ControlSyntheticForParticipants = 1; Parallel = 0; addpath('/scratch/remm/LVTS/ImprovingOvernightLoanIdentification/KNN'); FurfineControlScript; save('FurfineOutput/EndOfDayFurfineOutput.mat', 'Loans', 'LOANS');"



# k-NN variant, parallelized (LVTS_Partitions must have been created?)
# bsub -o ... runs this job individually
-o output.RemOriginal.%J -app MATLAB -q normal -J RemOrig  /product/matlab/matlab714/bin/matlab -nodisplay -r "lvtsdatafile = 'Inputs/LVTS_2005-2011ordered.mat'; load(lvtsdatafile); ModelTrainingData = 1; Nchunks = 64; nMatSlaves = 5; min_loansize = 10^6; min_sentime = 60000;  bpsl = 0.5; bpsh = 0.5; refinement = 'None'; methodTreatDuplicates='Rempel'; Simulation = 0; ControlSyntheticForParticipants = 1; useReturnLegCharacteristics = 1; methodDup2 = 'Hendry'; useDANN=0; klossWeighted=1; choiceK=15; Xpaythreshold=10^5;  Parallel = 1; matlabpool('open', 'lsf', num2str(nMatSlaves)); pctRunOnAll addpath('/scratch/remm/LVTS/ImprovingOvernightLoanIdentification/KNN'); pctRunOnAll rng(192654); FurfineControlScript; save('FurfineOutput/kNNrefinedFurfineOutput.mat', 'Loans', 'LOANS');"

# k-NN with Interest rate rounded criterion
-o output.RemOriginal.%J -app MATLAB -q normal -J RemOrig  /product/matlab/matlab714/bin/matlab -nodisplay -r "lvtsdatafile = 'Inputs/LVTS_2005-2011ordered.mat'; load(lvtsdatafile); ModelTrainingData = 1; Nchunks = 64; nMatSlaves = 5; min_loansize = 10^6; min_sentime = 60000;  bpsl = 0.5; bpsh = 0.5; refinement = 'IntRound'; methodTreatDuplicates='Rempel'; Simulation = 0; ControlSyntheticForParticipants = 1; useReturnLegCharacteristics = 1; methodDup2 = 'Hendry'; useDANN=0; klossWeighted=1; choiceK=15; Xpaythreshold=10^5;  Parallel = 1; matlabpool('open', 'lsf', num2str(nMatSlaves)); pctRunOnAll addpath('/scratch/remm/LVTS/ImprovingOvernightLoanIdentification/KNN'); pctRunOnAll rng(192654); FurfineControlScript; save('FurfineOutput/kNNrefinedIntRoundFurfineOutput.mat', 'Loans', 'LOANS');"

# k-NN with Interest rate rounded criterion
-o output.RemOriginal.%J -app MATLAB -q normal -J RemOrig  /product/matlab/matlab714/bin/matlab -nodisplay -r "lvtsdatafile = 'Inputs/LVTS_2005-2011ordered.mat'; load(lvtsdatafile); ModelTrainingData = 1; Nchunks = 64; nMatSlaves = 5; min_loansize = 10^6; min_sentime = 60000;  bpsl = 0.5; bpsh = 0.5; refinement = 'IntRoundExact'; methodTreatDuplicates='Rempel'; Simulation = 0; ControlSyntheticForParticipants = 1; useReturnLegCharacteristics = 1; methodDup2 = 'Hendry'; useDANN=0; klossWeighted=1; choiceK=15; Xpaythreshold=10^5;  Parallel = 1; matlabpool('open', 'lsf', num2str(nMatSlaves)); pctRunOnAll addpath('/scratch/remm/LVTS/ImprovingOvernightLoanIdentification/KNN'); pctRunOnAll rng(192654); FurfineControlScript; save('FurfineOutput/kNNrefinedIntRoundFurfineOutput.mat', 'Loans', 'LOANS');"



