Christoph Budziszewski commited on 2009-01-28 14:05:49
Zeige 4 geänderte Dateien mit 39 Einfügungen und 16 Löschungen.
git-svn-id: https://svn.discofish.de/MATLAB/spmtoolbox/SVMCrossVal@120 83ab2cfd-5345-466c-8aeb-2b2739fb922d
| ... | ... |
@@ -1,5 +1,6 @@ |
| 1 | 1 |
function plotDecodePerformance(varargin) |
| 2 |
-% plotDecodePerformance(timeline,decodePerformance,nClasses,rawData) |
|
| 2 |
+ |
|
| 3 |
+global CROSSVAL_METHOD_DEF; |
|
| 3 | 4 |
|
| 4 | 5 |
PSTH_AXIS_MIN = -1; |
| 5 | 6 |
PSTH_AXIS_MAX = 1; |
| ... | ... |
@@ -19,7 +20,7 @@ switch nargin |
| 19 | 20 |
SubjectID = inputStruct.SubjectID; |
| 20 | 21 |
smoothed = inputStruct.smoothed; |
| 21 | 22 |
PLOT_METHOD = inputStruct.CROSSVAL_METHOD; |
| 22 |
- CROSSVAL_METHOD_DEF = inputStruct.CROSSVAL_METHOD_DEF; |
|
| 23 |
+% CROSSVAL_METHOD_DEF = inputStruct.CROSSVAL_METHOD_DEF; |
|
| 23 | 24 |
|
| 24 | 25 |
otherwise |
| 25 | 26 |
error('spmtoolbox:SVMCrossVal:plotDecodePerformance:WrongArgument','Wrong Arguments');
|
| ... | ... |
@@ -74,9 +75,23 @@ end |
| 74 | 75 |
|
| 75 | 76 |
hold off; |
| 76 | 77 |
|
| 77 |
- nvoxel = size(psth,2); |
|
| 78 |
+ nSubjects = size(SubjectID,2); |
|
| 79 |
+ nVoxelPerSubject = size(psth,2)/size(SubjectID,2); |
|
| 80 |
+ |
|
| 81 |
+ if strcmp(smoothed,'yes') |
|
| 82 |
+ smoothedString = 'using smoothed data'; |
|
| 83 |
+ else |
|
| 84 |
+ smoothedString = 'using unsmoothed data'; |
|
| 85 |
+ end |
|
| 86 |
+ |
|
| 87 |
+ if nSubjects == 1 |
|
| 88 |
+ subjectName = cell2Mat(SubjectID); |
|
| 89 |
+ title = sprintf('Subject %s, over %g voxel, %s',subjectName,nVoxelPerSubject,smoothedString);
|
|
| 90 |
+ else |
|
| 91 |
+ title = sprintf('%g Subjects, %g Voxel per Subject, %s',nSubjects,nVoxelPerSubject,smoothedString);
|
|
| 92 |
+ end |
|
| 93 |
+ |
|
| 78 | 94 |
|
| 79 |
- title = sprintf('Subject %s, over %g voxel, smoothed %s',SubjectID,nvoxel,smoothed);
|
|
| 80 | 95 |
set(f,'Name',title); |
| 81 | 96 |
display(sprintf('%s',title));
|
| 82 | 97 |
|
| ... | ... |
@@ -1,9 +1,11 @@ |
| 1 | 1 |
% function [decodePerformance rawTimecourse ] = calculateDecodePerformance(des,timeLineStart, timeLineEnd, decodeDuration, svmargs, conditionList, sessionList, voxelList, classList, labelMap,normalize) |
| 2 | 2 |
function outputStruct = calculateDecodePerformance(inputStruct,SubjectID) |
| 3 | 3 |
|
| 4 |
+global CROSSVAL_METHOD_DEF; |
|
| 5 |
+ |
|
| 4 | 6 |
addpath 'libsvm-mat-2.88-1'; |
| 5 | 7 |
|
| 6 |
-CROSSVAL_METHOD_DEF = inputStruct.CROSSVAL_METHOD_DEF; |
|
| 8 |
+% CROSSVAL_METHOD_DEF = inputStruct.CROSSVAL_METHOD_DEF; |
|
| 7 | 9 |
METHOD = inputStruct.CROSSVAL_METHOD; |
| 8 | 10 |
|
| 9 | 11 |
RANDOMIZE_DATAPOINTS = inputStruct.RANDOMIZE; |
| ... | ... |
@@ -1,9 +1,6 @@ |
| 1 | 1 |
function classify(varargin) |
| 2 | 2 |
|
| 3 |
-CROSSVAL_METHOD_DEF.svmcrossval = 'svm crossval'; |
|
| 4 |
-CROSSVAL_METHOD_DEF.classPerformance = 'svm class performance'; |
|
| 5 |
-CROSSVAL_METHOD_DEF.crossSubject = 'svm cross subject testing'; |
|
| 6 |
-CROSSVAL_METHOD_DEF.somTraining = 'som Training'; |
|
| 3 |
+global CROSSVAL_METHOD_DEF; |
|
| 7 | 4 |
|
| 8 | 5 |
switch nargin |
| 9 | 6 |
case 1 |
| ... | ... |
@@ -18,7 +15,7 @@ end |
| 18 | 15 |
% common params |
| 19 | 16 |
calculateParams = struct; |
| 20 | 17 |
|
| 21 |
- calculateParams.CROSSVAL_METHOD_DEF = CROSSVAL_METHOD_DEF; |
|
| 18 |
+% calculateParams.CROSSVAL_METHOD_DEF = CROSSVAL_METHOD_DEF; |
|
| 22 | 19 |
calculateParams.CROSSVAL_METHOD = CROSSVAL_METHOD_DEF.svmcrossval; |
| 23 | 20 |
|
| 24 | 21 |
calculateParams.RANDOMIZE = 0; |
| ... | ... |
@@ -83,7 +80,7 @@ end |
| 83 | 80 |
|
| 84 | 81 |
plotParams = struct; |
| 85 | 82 |
|
| 86 |
- plotParams.CROSSVAL_METHOD_DEF = CROSSVAL_METHOD_DEF; |
|
| 83 |
+% plotParams.CROSSVAL_METHOD_DEF = CROSSVAL_METHOD_DEF; |
|
| 87 | 84 |
plotParams.CROSSVAL_METHOD = calculateParams.CROSSVAL_METHOD; |
| 88 | 85 |
|
| 89 | 86 |
plotParams.psthStart = calculateParams.psthStart; |
| ... | ... |
@@ -95,11 +92,11 @@ end |
| 95 | 92 |
plotParams.decodePerformance = decode.decodePerformance; |
| 96 | 93 |
plotParams.rawTimeCourse = decode.rawTimeCourse; |
| 97 | 94 |
|
| 98 |
- if numel(subjectSelection) == 1 |
|
| 99 |
- plotParams.SubjectID = SubjectID; |
|
| 100 |
- else |
|
| 101 |
- plotParams.SubjectID = 'Multiple'; |
|
| 102 |
- end |
|
| 95 |
+% if numel(subjectSelection) == 1 |
|
| 96 |
+% plotParams.SubjectID = SubjectID; |
|
| 97 |
+% else |
|
| 98 |
+ plotParams.SubjectID = subjectSelection; |
|
| 99 |
+% end |
|
| 103 | 100 |
|
| 104 | 101 |
plotParams.smoothed = boolToYesNoString(calculateParams.smoothed); |
| 105 | 102 |
|
| ... | ... |
@@ -1,4 +1,13 @@ |
| 1 | 1 |
function spm_SVMCrossVal(varargin) |
| 2 |
+ |
|
| 3 |
+%define global constants |
|
| 4 |
+global CROSSVAL_METHOD_DEF; |
|
| 5 |
+ |
|
| 6 |
+CROSSVAL_METHOD_DEF.svmcrossval = 'svm crossval'; |
|
| 7 |
+CROSSVAL_METHOD_DEF.classPerformance = 'svm class performance'; |
|
| 8 |
+CROSSVAL_METHOD_DEF.crossSubject = 'svm cross subject testing'; |
|
| 9 |
+CROSSVAL_METHOD_DEF.somTraining = 'som Training'; |
|
| 10 |
+ |
|
| 2 | 11 |
switch nargin |
| 3 | 12 |
case 0 |
| 4 | 13 |
% project_UI; |
| 5 | 14 |