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