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