function [ pred ] = pniClassifyC(data, mdl, D1var) %PNILOUIS Louis's initial entry - severity of illness score % [ pred ] = pniLouis(data) calculates a mortality prediction for each % each row (observation/subject) in data % % The score uses the following variables: % urine, platelets, BUN, creatinine, PaFi ratio, PaO2, PaCO2, pH, % heart_rate, temperature, BP, and age. % % Inputs: % data - Cell array of data. % Column 1 - Subject IDs % Column 2 - Time stamp vectors for each subject % Column 3 - Feature name vectors for each subject % Column 4 - Data value vectors for each subject % % Outputs: % pred - Column vector of predictions % % Example % %=== Load data in % load('data_processed_cell.mat'); % % %=== Calculate score % [ score ] = pniAndrew(data); % % See also PNMAIN PNPREPROCESSDATA % References: % Physionet Challenge 2012 % http://physionet.org/challenge/2012/ % % Copyright 2012 Alistair Johnson % $LastChangedBy: alistair $ % $LastChangedDate: 2012-04-25 01:26:50 +0100 (Wed, 25 Apr 2012) $ % $Revision: 344 $ % Originally written on GLNXA64 by Alistair Johnson, 15-Apr-2012 14:40:13 % Contact: alistairewj@gmail.com D2var = find(D1var==0); %=== Hard-coded model b_surv=mdl.b_surv; b_Nsurv=mdl.b_Nsurv; test_pred_surv=zeros(size(data,1),sum(D1var)); test_pred_Nsurv=zeros(size(data,1),sum(D1var)); for v = 1:length(D2var) test_pred_surv(:,v) = [ones(size(data,1),1) data(:,D1var)]*b_surv(:,v) ; test_pred_Nsurv(:,v) = [ones(size(data,1),1) data(:,D1var)]*b_Nsurv(:,v) ; end % Look at distance between actual Day-2 data and the predicted D2-data Diff_surv = sum(abs(test_pred_surv - data(:,D2var)),2); Diff_Nsurv = sum(abs(test_pred_Nsurv - data(:,D2var)),2); % Prediction is a ration of distances pred = Diff_Nsurv ./ (Diff_surv + Diff_Nsurv) ; end