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