Predicting Mortality of ICU Patients: The PhysioNet/Computing in Cardiology Challenge 2012 1.0.0
(1,783 bytes)
function [prob,died]=physionet2012_B(tm,category,val)
% [prob,died]=physionet2012(tm,category,val)
% Submission A for the PhysioNet 2012 Challenge.
%
% Inputs:
% tm - (Nx1 Cell Array) Cell array containing time of measurement
% category- (Nx1 Cell Array) Cell array containing type (category)
% measurement
% value - (Nx1 Cell Array) Cell array containing value of measurement
%
% Outputs:
% prob - (Scalar) Probability value of the patient dying in the hospital
% died - (Logical) Binary classification if the patient is going to die
% on the hospital (1 - Died, 0 - Survived)
%
% Example
% [prob,died]=physionet2012(tm,category,val)
% Copyright 2012 Alistair Johnson
% $LastChangedBy: alistair $
% $LastChangedDate: 2012-04-25 01:27:43 +0100 (Wed, 25 Apr 2012) $
% $Revision: 345 $
% Originally written on GLNXA64 by Alistair Johnson, 24-Apr-2012 14:02:25
% Contact: alistairewj@gmail.com
%=== Miscellanious default values
T=0.5; % Mortality threshold
%=======================%
%=== PREPROCESS DATA ===%
%=======================%
%=== Put into expected format for function
% Convert time from string to numeric minutes
tm = cellfun(@(x) str2double(x(1:2)), tm)*60 + cellfun(@(x) str2double(x(4:5)),tm);
data = [{1},{tm},{category},{val}];
[ data ] = pnPreprocess(data);
%=====================%
%=== LOAD FEATURES ===%
%=====================%
[ X ] = pniExtractFeaturesB(data);
%===================%
%=== CLASSIFY ======%
%===================%
%=== Load trained rf
mdl=load('ModelB.mat');
[~,pred] = predict(mdl.rf,X);
prob = pred(:,2);
%===================%
%=== SET OUTPUTS ===%
%===================%
died = prob >= T; % Thresholded probability to maximize PPV/Sens
end