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

File: <base>/sources/alistairewj_at_gmail.com/entry6/pnBaseFeatures.m (5,210 bytes)
function [ X,header ] = pnBaseFeatures(data)
%PNBASEFEATURES	Extract base features for a given model
%	[ X,header ] = pnBaseFeatures(data,featType) extracts features for the data
%	using the 'Base' method ONLY.
%	
%	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:
%		X		- Double matrix NxD with D features needed for training.
%		header	- Cell array 1xD of labels for each feature used.
%		
%
%	Example
%		bpath = './set-a/';
%		data = pnLoadTextFilesCell(bpath);
%		stat = pnBaseFeatures(data(1,:)) %	
%	See also PNGENERATEFEATURES

%	References:
%		Physionet Challenge 2012

%	Copyright 2012 Alistair Johnson

%	$LastChangedBy: alistair $
%	$LastChangedDate: 2012-08-10 16:38:54 -0400 (Fri, 10 Aug 2012) $
%	$Revision: 148 $
%	Originally written on GLNXA64 by Alistair Johnson, 21-Jun-2012 13:00:48
%	Contact: alistairewj@gmail.com


%=== Extract features of interest across multiple fields
[fields,non_temp_fields] = pnDataDescriptions;
fields = fields(:,1); non_temp_fields = non_temp_fields(:,1);
extractFcns = {'pnFirstValue','pnLastValue','pnLowestValue',...
    'pnHighestValue','pnMedianValue','pnNumRecordings'};

[ data_used ] = pnExtractFeatures(data,extractFcns,fields);

%=== Repeat for non-temporal features (1 value)    
[ tmpData ] = pnExtractFeatures(data,{'pnFirstValue'},non_temp_fields);
data_used = pnImputeField(data_used,tmpData);
    
feats = genFeatsForExtractData;
%=== Extract first data point to X (each label only contains 1 value)
[X,header] = pnExtractDataFinal(data_used,'first',[0 2880],feats);


end

function [feats] = genFeatsForExtractData
feats = {'ALPFirst';'ALPHighest';'ALPLast';'ALPLowest';'ALPMedian';'ALPNumRecordings';'ALTFirst';'ALTHighest';'ALTLast';'ALTLowest';'ALTMedian';'ALTNumRecordings';'ASTFirst';'ASTHighest';'ASTLast';'ASTLowest';'ASTMedian';'ASTNumRecordings';'AgeFirst';'AlbuminFirst';'AlbuminHighest';'AlbuminLast';'AlbuminLowest';'AlbuminMedian';'AlbuminNumRecordings';'BUNFirst';'BUNHighest';'BUNLast';'BUNLowest';'BUNMedian';'BUNNumRecordings';'BilirubinFirst';'BilirubinHighest';'BilirubinLast';'BilirubinLowest';'BilirubinMedian';'BilirubinNumRecordings';'CholesterolFirst';'CholesterolHighest';'CholesterolLast';'CholesterolLowest';'CholesterolMedian';'CholesterolNumRecordings';'CreatinineFirst';'CreatinineHighest';'CreatinineLast';'CreatinineLowest';'CreatinineMedian';'CreatinineNumRecordings';'DiasABPFirst';'DiasABPHighest';'DiasABPLast';'DiasABPLowest';'DiasABPMedian';'DiasABPNumRecordings';'FiO2First';'FiO2Highest';'FiO2Last';'FiO2Lowest';'FiO2Median';'FiO2NumRecordings';'GCSFirst';'GCSHighest';'GCSLast';'GCSLowest';'GCSMedian';'GCSNumRecordings';'GenderFirst';'GlucoseFirst';'GlucoseHighest';'GlucoseLast';'GlucoseLowest';'GlucoseMedian';'GlucoseNumRecordings';'HCO3First';'HCO3Highest';'HCO3Last';'HCO3Lowest';'HCO3Median';'HCO3NumRecordings';'HCTFirst';'HCTHighest';'HCTLast';'HCTLowest';'HCTMedian';'HCTNumRecordings';'HRFirst';'HRHighest';'HRLast';'HRLowest';'HRMedian';'HRNumRecordings';'HeightFirst';'KFirst';'KHighest';'KLast';'KLowest';'KMedian';'KNumRecordings';'LactateFirst';'LactateHighest';'LactateLast';'LactateLowest';'LactateMedian';'LactateNumRecordings';'MAPFirst';'MAPHighest';'MAPLast';'MAPLowest';'MAPMedian';'MAPNumRecordings';'MechVentFirst';'MechVentHighest';'MechVentLast';'MechVentLowest';'MechVentMedian';'MechVentNumRecordings';'MgFirst';'MgHighest';'MgLast';'MgLowest';'MgMedian';'MgNumRecordings';'NIDiasABPFirst';'NIDiasABPHighest';'NIDiasABPLast';'NIDiasABPLowest';'NIDiasABPMedian';'NIDiasABPNumRecordings';'NIMAPFirst';'NIMAPHighest';'NIMAPLast';'NIMAPLowest';'NIMAPMedian';'NIMAPNumRecordings';'NISysABPFirst';'NISysABPHighest';'NISysABPLast';'NISysABPLowest';'NISysABPMedian';'NISysABPNumRecordings';'NaFirst';'NaHighest';'NaLast';'NaLowest';'NaMedian';'NaNumRecordings';'PaCO2First';'PaCO2Highest';'PaCO2Last';'PaCO2Lowest';'PaCO2Median';'PaCO2NumRecordings';'PaO2First';'PaO2Highest';'PaO2Last';'PaO2Lowest';'PaO2Median';'PaO2NumRecordings';'PlateletsFirst';'PlateletsHighest';'PlateletsLast';'PlateletsLowest';'PlateletsMedian';'PlateletsNumRecordings';'RecordIDFirst';'RespRateFirst';'RespRateHighest';'RespRateLast';'RespRateLowest';'RespRateMedian';'RespRateNumRecordings';'SaO2First';'SaO2Highest';'SaO2Last';'SaO2Lowest';'SaO2Median';'SaO2NumRecordings';'SysABPFirst';'SysABPHighest';'SysABPLast';'SysABPLowest';'SysABPMedian';'SysABPNumRecordings';'TempFirst';'TempHighest';'TempLast';'TempLowest';'TempMedian';'TempNumRecordings';'TroponinIFirst';'TroponinIHighest';'TroponinILast';'TroponinILowest';'TroponinIMedian';'TroponinINumRecordings';'TroponinTFirst';'TroponinTHighest';'TroponinTLast';'TroponinTLowest';'TroponinTMedian';'TroponinTNumRecordings';'UrineFirst';'UrineHighest';'UrineLast';'UrineLowest';'UrineMedian';'UrineNumRecordings';'WBCFirst';'WBCHighest';'WBCLast';'WBCLowest';'WBCMedian';'WBCNumRecordings';'WeightFirst';'WeightHighest';'WeightLast';'WeightLowest';'WeightMedian';'WeightNumRecordings';'pHFirst';'pHHighest';'pHLast';'pHLowest';'pHMedian';'pHNumRecordings';};

end