DataLength = size(MetaDataDS,1)
parfor IFile = 1:NoOfChannels 
       ChanDataDS = MetaDataDS;
       FileName    = strcat(SubDir,'\',FileNames{IFile});       
       ChanDataDS.DaysInPrint = ChanDataDaysInPrint(:,IFile);
       ChanDataDS.Usage = ChanDataUsage(:,IFile);
       a = char(ChannelNames{IFile});
       [fidConfMat, fidRF, fidPlotError,fidPlotImp] = ...
                           createResultFilesTrees(ResultDirSub, a);
       X = double(ChanDataDS(:,{'ORG_CONTENT_OWNER_ID',  'LIST_PRICE', ...
            'PRIMARY_CATEGORY', 'TOTAL_PAGES','DaysInPrint'} ));
       Y = nominal(ChanDataDS.Usage >0.0);
        cv = cvpartition(DataLength,'holdout',holdoutPartition);
       XTrain  = X(cv.training, :);
       XTest   = X(cv.test,:);
       YTrain  = Y(cv.training);
       tb = TreeBagger(nTrees, XTrain, YTrain, 'oobpred','on', ...
              'NVarToSample','all','cat',[1,3], ...
              'oobvarimp','on');
       yp = predict(tb, XTest);
       ConfMat = confusionmat(YTest, nominal(yp))
       ObError = oobError(tb);
       ObError(end)
       PlotErrorImportant(ObError,fidPlotError,fidPlotImp, ...
                    tb.OOBPermutedVarDeltaError,char(ChannelNames{IFile})); 
       testResultSTemp =  evalTreeModel(ConfMat,fidConfMat, ObError(end));
end
 parfor Idir = 1:NoOfRootDirs    
    SubDir = strcat(currDataDir, '\',RootDirNames{Idir}); 
    ResultDirSub = strcat(ResultDir, RootDirNames{Idir});
    [logDir, confMatDir, plotDir, randForestDir] =  ...
                         createResultsDirs (ResultDirSub);
    ListOfFiles  = dir(SubDir);
    IsSub = ~[ListOfFiles(:).isdir]; 
    FileNames = {ListOfFiles(IsSub).name}';
    NoOfChannels = numel(FileNames);
   tic;
    ChannelIdNum = zeros(NoOfChannels,1);
    ChannelNames = cell(NoOfChannels,1);
    ChanDataDaysInPrint = zeros(ndoc,NoOfChannels);
    ChanDataUsage = zeros(ndoc,NoOfChannels);
    for IFile = 1:NoOfChannels
       ChannelId =  FileNames{IFile}(1:strfind(FileNames{IFile},'.')-1);
       ChannelIdNum(IFile) = str2double(ChannelId);
       FileName    = strcat(SubDir,'\',FileNames{IFile});       
       ChanData    = importdata(FileName);
       ChanData  =  sortrows(ChanData,1);
       ChanDataUsage(:,IFile) = ChanData(:,2);
       ChanDataDaysInPrint(:,IFile)  = ChanData(:,3);
       ChannelNames{IFile} = ChannelDS(ismember(ChannelDS.ORG_CHANNEL_ID, ...
       ChannelIdNum(IFile)),:).ORG_CHANNEL_REFERENCE_NAME;
    end     
    ChanDataDS  = MetaDataDS;
 
    DataLength = size(MetaDataDS,1)
    tic;
    paroptions = statset('UseParallel',true);
    for IFile = 1:NoOfChannels 
       ChanDataDS = MetaDataDS;
       FileName    = strcat(SubDir,'\',FileNames{IFile});       
       ChanDataDS.DaysInPrint = ChanDataDaysInPrint(:,IFile);
       ChanDataDS.Usage = ChanDataUsage(:,IFile);
     a = char(ChannelNames{IFile});
     [fidConfMat, fidRF, fidPlotError,fidPlotImp] = ...
                         createResultFilesTrees(ResultDirSub, a);
     X = double(ChanDataDS(:,{'ORG_CONTENT_OWNER_ID',  'LIST_PRICE', ...
          'PRIMARY_CATEGORY', 'TOTAL_PAGES','DaysInPrint'} ));
     Y = nominal(ChanDataDS.Usage >0.0);
      cv = cvpartition(DataLength,'holdout',holdoutPartition);
     XTrain  = X(cv.training, :);
     XTest   = X(cv.test,:);
     YTrain  = Y(cv.training);
     YTest   = Y(cv.test);
  
  
  
     tb = TreeBagger(nTrees, XTrain, YTrain, 'oobpred','on', ...
            'NVarToSample','all','cat',[1,3], ...
            'oobvarimp','on');
  
       yp = predict(tb, XTest);
       ConfMat = confusionmat(YTest, nominal(yp))
       ObError = oobError(tb);
       ObError(end)
       PlotErrorImportant(ObError,fidPlotError,fidPlotImp, ...
                    tb.OOBPermutedVarDeltaError,char(ChannelNames{IFile})); 
       testResultSTemp =  evalTreeModel(ConfMat,fidConfMat, ObError(end));
 
 
 
 
 
    end   
end