Predicting Mortality of ICU Patients: The PhysioNet/Computing in Cardiology Challenge 2012 1.0.0

File: <base>/sources/alistairewj_at_gmail.com/entry1/pniClassifyC.m (1,946 bytes)
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