private async Task loadFileAndMakeElements(string location) { if (location.EndsWith(".csv")) { weka.core.converters.CSVLoader csvLoader = new weka.core.converters.CSVLoader(); csvLoader.setSource(new java.io.File(location)); insts = csvLoader.getDataSet(); insts.setClassIndex(insts.numAttributes() - 1); } else { insts = new weka.core.Instances(new java.io.FileReader(location)); insts.setClassIndex(insts.numAttributes() - 1); } flowLayoutPanel1.Controls.Clear(); for (int i = 0; i < insts.numAttributes() - 1; i++) { if (insts.attribute(i).isNominal() == true) { if (insts.attribute(i).numValues() > 0) { Label lbl = new Label(); lbl.Text = insts.attribute(i).name().Trim(); lbl.Enabled = true; ComboBox cmbBox = new ComboBox(); cmbBox.Name = insts.attribute(i).name(); for (int m = 0; m < insts.attribute(i).numValues(); m++) { cmbBox.Items.Add(insts.attribute(i).value(m)); } cmbBox.DropDownStyle = ComboBoxStyle.DropDownList; cmbBox.Enabled = true; flowLayoutPanel1.Controls.Add(lbl); flowLayoutPanel1.Controls.Add(cmbBox); } else { } } else if (insts.attribute(i).isNumeric() == true) { Label lbl = new Label(); lbl.Text = insts.attribute(i).name().Trim(); TextBox txtBox = new TextBox(); txtBox.Name = insts.attribute(i).name(); txtBox.KeyPress += new KeyPressEventHandler(txtBox_Keypress); flowLayoutPanel1.Controls.Add(lbl); flowLayoutPanel1.Controls.Add(txtBox); } } }
public void CSV2Arff() { //load csv weka.core.converters.CSVLoader loader = new weka.core.converters.CSVLoader(); //weka.core.converters.TextDirectoryLoader loader = new weka.core.converters.TextDirectoryLoader(); // C:/ Users / DELL / source / repos / WekafromCtest / WekafromCtest / loader.setSource(new java.io.File("D:/final_version/Gesture-Gis-master/GestureGis2/ComparisonFeaturefile.txt")); weka.core.Instances data = loader.getDataSet(); //save arff weka.core.converters.ArffSaver saver = new weka.core.converters.ArffSaver(); saver.setInstances(data); //and save as arff file saver.setFile(new java.io.File("D:/final_version/Gesture-Gis-master/GestureGis2/ComparisonFeaturefile.arff")); saver.writeBatch(); }
public void EMAlgorithm(string Training, string Test) { weka.core.converters.CSVLoader cSVLoader = new weka.core.converters.CSVLoader(); File file = new File(Training); cSVLoader.setSource(file); TrainingSet = cSVLoader.getDataSet(); file = new File(Test); cSVLoader.setSource(file); TestSet = cSVLoader.getDataSet(); eM.setNumClusters(3); eM.setSeed(100); eM.setNumFolds(10); eM.setMaxIterations(100); eM.setMaximumNumberOfClusters(-1); eM.setNumExecutionSlots(1); eM.setNumKMeansRuns(10); System.Console.WriteLine("Building Cluster"); eM.buildClusterer(TrainingSet); System.Console.WriteLine("Done Building Cluster"); }
protected void Button1_Click(object sender, EventArgs e) { try { string path = Server.MapPath(".") + "\\datasets\\" + dataset.Text + ".csv"; string fname = path; File.Delete("d:\\train.arff"); weka.core.converters.CSVLoader loader = new weka.core.converters.CSVLoader(); loader.setSource(new java.io.File(fname)); weka.core.Instances inst2 = loader.getDataSet(); weka.core.converters.ArffSaver saver = new weka.core.converters.ArffSaver(); saver.setInstances(inst2); saver.setFile(new java.io.File("d:\\train.arff")); saver.writeBatch(); // Response.Write("<html><script>alert('File Converted..');</script></html>"); } catch (Exception ex) { /// Response.Write("<html><script>alert('" + ex.Message.ToString() + "');</script></html>"); } // weka.core.Instances data = new weka.core.Instances(new java.io.FileReader("d:\\train.arff")); // data.setClassIndex(data.numAttributes() - 1); // weka.classifiers.Classifier cls = new weka.classifiers.bayes.NaiveBayes(); //// weka.classifiers.functions.supportVector.SMOset(); // int runs = 1; // int folds = 10; // //string sq = "delete from nbresults"; // //dbc.execfn(sq); // // perform cross-validation // for (int i = 0; i < runs; i++) // { // // randomize data // int seed = i + 1; // java.util.Random rand = new java.util.Random(seed); // weka.core.Instances randData = new weka.core.Instances(data); // randData.randomize(rand); // if (randData.classAttribute().isNominal()) // randData.stratify(folds); // weka.classifiers.Evaluation eval = new weka.classifiers.Evaluation(randData); // for (int n = 0; n < folds; n++) // { // weka.core.Instances train = randData.trainCV(folds, n); // weka.core.Instances test = randData.testCV(folds, n); // // build and evaluate classifier // weka.classifiers.Classifier clsCopy = weka.classifiers.Classifier.makeCopy(cls); // clsCopy.buildClassifier(train); // eval.evaluateModel(clsCopy, test); // } // preci_value.Text = eval.precision(0).ToString(); // recall_value.Text = eval.recall(0).ToString(); // acc_value.Text = eval.fMeasure(0).ToString(); // string s = "NB"; // string str = "insert into evaluation values('" + instid.Text + "','" + courid.Text.ToString() + "','" + preci_value.Text.ToString() + "','" + recall_value.Text.ToString() + "','" + acc_value.Text.ToString() + "','"+ s+ "' )"; // dbc.execfn(str); // MessageBox.Show("saved"); // } // } }
public void trainSMOUsingWeka(string wekaFile, string modelName) { try { weka.core.converters.CSVLoader csvLoader = new weka.core.converters.CSVLoader(); csvLoader.setSource(new java.io.File(wekaFile)); weka.core.Instances insts = csvLoader.getDataSet(); //weka.core.Instances insts = new weka.core.Instances(new java.io.FileReader(wekaFile)); insts.setClassIndex(insts.numAttributes() - 1); cl = new weka.classifiers.functions.SMO(); cl.setBatchSize("100"); cl.setCalibrator(new weka.classifiers.functions.Logistic()); cl.setKernel(new weka.classifiers.functions.supportVector.PolyKernel()); cl.setEpsilon(1.02E-12); cl.setC(1.0); cl.setDebug(false); cl.setChecksTurnedOff(false); cl.setFilterType(new SelectedTag(weka.classifiers.functions.SMO.FILTER_NORMALIZE, weka.classifiers.functions.SMO.TAGS_FILTER)); System.Console.WriteLine("Performing " + percentSplit + "% split evaluation."); //randomize the order of the instances in the dataset. // weka.filters.Filter myRandom = new weka.filters.unsupervised.instance.Randomize(); //myRandom.setInputFormat(insts); // insts = weka.filters.Filter.useFilter(insts, myRandom); int trainSize = insts.numInstances() * percentSplit / 100; int testSize = insts.numInstances() - trainSize; weka.core.Instances train = new weka.core.Instances(insts, 0, trainSize); java.io.File path = new java.io.File("/models/"); cl.buildClassifier(train); saveModel(cl, modelName, path); #region test whole set int numCorrect = 0; for (int i = 0; i < insts.numInstances(); i++) { weka.core.Instance currentInst = insts.instance(i); if (i == 12) { array = new List <float>(); foreach (float value in currentInst.toDoubleArray()) { array.Add(value); } } double predictedClass = cl.classifyInstance(currentInst); if (predictedClass == insts.instance(i).classValue()) { numCorrect++; } } System.Console.WriteLine(numCorrect + " out of " + testSize + " correct (" + (double)((double)numCorrect / (double)testSize * 100.0) + "%)"); #endregion } catch (java.lang.Exception ex) { ex.printStackTrace(); } }