2012-11-29 8 views
5

ich zur Zeit dieser Syntax in Matlab bin mit Fehlklassifizierungsrate in 10-facher Kreuzvalidierung zu erhalten:Wie bekomme ich Fehlklassifizierungsrate in jeder Falte der Kreuzvalidierung?

target = [repmat(1,ntrial,1);repmat(2,ntrial,1)]; 
cvo = cvpartition(target,'k',10); 
func = @(XTRAIN,ytrain,XTEST)(classify(XTEST,XTRAIN,ytrain)); 
mcr = crossval('mcr',pooling,target,'predfun',func,'partition',cvo); 

(wo 'Pooling' ist das 2-Klasse Feature-Set I mit dem Klassifizierer klassifizieren mag)

Von was ich gelesen habe, mcr wird die durchschnittliche Misclassification Rate von 10 Falten zurückgeben. Wenn ich jetzt die Fehlklassifizierungsrate von jeder fold bekommen möchte, was soll ich tun?

Vielen Dank im Voraus.

Antwort

1

Ich würde sagen, dass Sie in diesem Fall etwas mehr Kontrolle über den Trainings-/Validierungsprozess haben möchten. Haben Sie darüber nachgedacht, den Prozess für mehr Kontrolle aufzulösen? Beginnen Sie mit cvpartition, um die 10-fals für die Kreuzvalidierung zu erstellen und dann auf jede Falte getrennt zu wirken.

+0

Ich habe ein kleines Problem damit, den 'crossval' Prozess zu zerlegen, weil ich das Konzept der' cvpartition' Funktion nicht ganz verstehe. Ich fürchte, wenn ich die Partition selbst mache, wird das "geschichtete" Eigentum verletzt? – Neu

+0

@Neu, Sie können versuchen, die High-Level-Funktionalität mit den Low-Level-Funktionen zu simulieren und sehen, ob Sie ähnliche Ergebnisse erhalten ... – Shai

+0

Ich habe es schon, danke für Ihre Hilfe :) – Neu

Verwandte Themen