static void crossValidation() { //load data Console.WriteLine("reading cross validation data..."); Global.swLog.WriteLine("reading cross validation data..."); List <dataSet> XList = new List <dataSet>(); List <dataSet> XXList = new List <dataSet>(); loadDataForCV(XList, XXList); //start cross validation foreach (double r in Global.regList)//do CV for each different regularizer r (sigma) { Global.swLog.WriteLine("\ncross validation. r={0}", r); Console.WriteLine("\ncross validation. r={0}", r); if (Global.rawResWrite) { Global.swResRaw.WriteLine("% cross validation. r={0}", r); } for (int i = 0; i < Global.nCV; i++) { Global.swLog.WriteLine("\n#validation={0}", i + 1); Console.WriteLine("\n#validation={0}", i + 1); if (Global.rawResWrite) { Global.swResRaw.WriteLine("% #validation={0}", i + 1); } Global.reg = r; dataSet Xi = XList[i]; if (Global.runMode.Contains("rich")) { toolboxRich tb = new toolboxRich(Xi); basicTrain(XXList[i], tb); } else { toolbox tb = new toolbox(Xi); basicTrain(XXList[i], tb); } resSummarize.write(); if (Global.rawResWrite) { Global.swResRaw.WriteLine(); } } if (Global.rawResWrite) { Global.swResRaw.WriteLine(); } } }
public static double test() { dataSet X = new dataSet(Global.fFeatureTrain, Global.fGoldTrain); dataSet XX = new dataSet(Global.fFeatureTest, Global.fGoldTest); Global.swLog.WriteLine("data size (test): {0}", XX.Count); //load model for testing toolboxRich tb = new toolboxRich(X, false); List <double> scoreList = tb.test(XX, 0); double score = scoreList[0]; Global.scoreListList.Add(scoreList); resSummarize.write(); return(score); }
public static double train() { //load data Console.WriteLine("\nreading training & test data..."); Global.swLog.WriteLine("\nreading training & test data..."); dataSet X, XX; if (Global.runMode.Contains("tune")) { dataSet origX = new dataSet(Global.fFeatureTrain, Global.fGoldTrain); X = new dataSet(); XX = new dataSet(); MainClass.dataSplit(origX, Global.tuneSplit, X, XX); } else { X = new dataSet(Global.fFeatureTrain, Global.fGoldTrain); XX = new dataSet(Global.fFeatureTest, Global.fGoldTest); MainClass.dataSizeScale(X); } Global.swLog.WriteLine("data sizes (train, test): {0} {1}", X.Count, XX.Count); double score = 0; foreach (double r in Global.regList) { Global.reg = r; Global.swLog.WriteLine("\nr: " + r.ToString()); Console.WriteLine("\nr: " + r.ToString()); if (Global.rawResWrite) { Global.swResRaw.WriteLine("\n%r: " + r.ToString()); } toolboxRich tb = new toolboxRich(X); score = MainClass.basicTrain(XX, tb); resSummarize.write(); //save model if (Global.save == 1) { tb.Model.save(Global.fModel); } } return(score); }