public void WriteFile(List <List <string> > numericDataset, string file, List <string> atrNames, List <string> targetValues, bool isTargetNumeric) { weka.core.FastVector targetVals = new weka.core.FastVector(); weka.core.Instances dataRel; for (int i = 0; i < targetValues.Count; i++) { targetVals.addElement(targetValues[i]); } weka.core.Instances data; weka.core.FastVector atts = new weka.core.FastVector(); // fill and prepare the dataset for the arrf file for (int j = 0; j < insts.numAttributes(); j++) { if (j == insts.numAttributes() - 1 && isTargetNumeric == false) // target value can be nominal { atts.addElement(new weka.core.Attribute(atrNames[j], targetVals)); } else { atts.addElement(new weka.core.Attribute(atrNames[j])); } } data = new weka.core.Instances("MyRelation", atts, 0); for (int i = 0; i < insts.numInstances(); i++) { double[] vals = new double[insts.numAttributes()]; for (int j = 0; j < insts.numAttributes(); j++) { if (j == insts.numAttributes() - 1 && isTargetNumeric == false) // target value can be nominal { vals[j] = targetVals.indexOf(numericDataset[j][i]); } else { vals[j] = Convert.ToDouble(numericDataset[j][i]); } } data.add(new weka.core.DenseInstance(1.0, vals)); } if (File.Exists(file)) { File.Delete(file); } var saver = new weka.core.converters.ArffSaver(); saver.setInstances(data); saver.setFile(new java.io.File(file)); // files are saved into {AppFolder}/bin/Debug folder. You can find two files in this path. saver.writeBatch(); }
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(); }
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"); // } // } }