public override void TrainningModel(TrainningData trainningData) { this.possiveValue = trainningData.PositiveValue; this.negativeValue = trainningData.NegativeValue; HuanLuyenBayes(trainningData.TrainningAttributes.GetLength(0)); }
//public SupportVectorMachine SVM //{ // get { return svm; } // private set { svm = value; } //} public override void TrainningModel(TrainningData trainningData) { ContinuousDataTableAdapter continuousDataTableAdapter = new ContinuousDataTableAdapter(); DataTable continuousDataTable = continuousDataTableAdapter.GetData(); DataTable dataTable = continuousDataTable.DefaultView.ToTable(false, TableMetaData.TestingAttributes); string[] columnNames; double[][] inputs = dataTable.ToArray(out columnNames); int[] outputs = (int[])trainningData.ClassificationAttribute.Clone(); // Create output for SVM (-1 or 1) for (int index = 0; index < outputs.Length; index++) { if (outputs[index] == 0) { outputs[index] = -1; } } // Create a Support Vector Machine for the given inputs //this.svm = new SupportVectorMachine(inputs[0].Length); //// Create a Kernel Support Vector Machine for the given inputs this.svm = new KernelSupportVectorMachine(new Gaussian(0.1), inputs[0].Length); // Instantiate a new learning algorithm for SVMs SequentialMinimalOptimization smo = new SequentialMinimalOptimization(svm, inputs, outputs); // Set up the learning algorithm smo.Complexity = 1.0; // Run the learning algorithm double error = smo.Run(); }
public override void TrainningModel(TrainningData trainningData) { this.possiveValue = trainningData.PositiveValue; this.negativeValue = trainningData.NegativeValue; HuanLuyenBayes(trainningData.TrainningAttributes.GetLength(0)); }
//public SupportVectorMachine SVM //{ // get { return svm; } // private set { svm = value; } //} public override void TrainningModel(TrainningData trainningData) { ContinuousDataTableAdapter continuousDataTableAdapter = new ContinuousDataTableAdapter(); DataTable continuousDataTable = continuousDataTableAdapter.GetData(); DataTable dataTable = continuousDataTable.DefaultView.ToTable(false, TableMetaData.TestingAttributes); string[] columnNames; double[][] inputs = dataTable.ToArray(out columnNames); int[] outputs = (int[])trainningData.ClassificationAttribute.Clone(); // Create output for SVM (-1 or 1) for (int index = 0; index < outputs.Length; index++) { if (outputs[index] == 0) { outputs[index] = -1; } } // Create a Support Vector Machine for the given inputs //this.svm = new SupportVectorMachine(inputs[0].Length); //// Create a Kernel Support Vector Machine for the given inputs this.svm = new KernelSupportVectorMachine(new Gaussian(0.1), inputs[0].Length); // Instantiate a new learning algorithm for SVMs SequentialMinimalOptimization smo = new SequentialMinimalOptimization(svm, inputs, outputs); // Set up the learning algorithm smo.Complexity = 1.0; // Run the learning algorithm double error = smo.Run(); }
public virtual List<ConfusionMatrix> TestModel(TrainningData trainningData) { int[] expected = trainningData.ClassificationAttribute; int[] predicted = ComputeModel(trainningData.TrainningAttributes); int positiveValue = trainningData.PositiveValue; int negativeValue = trainningData.NegativeValue; ConfusionMatrix confusionMatrix = new ConfusionMatrix(predicted, expected, positiveValue, negativeValue); return new List<ConfusionMatrix> { confusionMatrix }; }
public virtual List <ConfusionMatrix> TestModel(TrainningData trainningData) { int[] expected = trainningData.ClassificationAttribute; int[] predicted = ComputeModel(trainningData.TrainningAttributes); int positiveValue = trainningData.PositiveValue; int negativeValue = trainningData.NegativeValue; ConfusionMatrix confusionMatrix = new ConfusionMatrix(predicted, expected, positiveValue, negativeValue); return(new List <ConfusionMatrix> { confusionMatrix }); }
// buttonXCreateModel click event private void buttonXCreateModel_Click(object sender, EventArgs e) { DialogResult dialogResult; DataTable orginalTrainningTable = this.dataGridViewXTrainning.DataSource as DataTable; DataTable tableForTrainning; int numberOfTrainningRows = 0; // Get number of row form percent if (this.comboBoxExTrainningDataPercent.SelectedValue != null) { numberOfTrainningRows = Convert.ToInt32(Math.Truncate( ((int)comboBoxExTrainningDataPercent.SelectedValue * 1.0 * orginalTrainningTable.Rows.Count) / 100)); } // Set trainning data if (numberOfTrainningRows == 0) { tableForTrainning = orginalTrainningTable; } else { var query = orginalTrainningTable.AsEnumerable().Take(numberOfTrainningRows); tableForTrainning = query.CopyToDataTable<DataRow>(); } TrainningData trainningData = new TrainningData(tableForTrainning, this.codification); Properties.Settings.Default.negativeValue = trainningData.NegativeValue; // Ask user what to do when selected model already exists if (this.HaveModel()) { dialogResult = MessageBox.Show("Mô hình này đã có. Bạn có muốn tạo mô hình mới?", "Lỗi", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); if (dialogResult == DialogResult.No || dialogResult == DialogResult.Cancel) { return; } } // Check dictionary already have active model. If not add new model if (!this.modelList.ContainsKey(this.activeLearningAlgorithm)) { this.modelList.Add(this.activeLearningAlgorithm, ClassificationModel.CreateModel(this.activeLearningAlgorithm)); } // Trainning model this.modelList[activeLearningAlgorithm].TrainningModel(trainningData); }
public override List<ConfusionMatrix> TestModel(TrainningData trainningData) { ContinuousDataTableAdapter continuousDataTableAdapter = new ContinuousDataTableAdapter(); DataTable continuousDataTable = continuousDataTableAdapter.GetData(); DataTable dataTable = continuousDataTable.DefaultView.ToTable(false, TableMetaData.TestingAttributes); string[] columnNames; double[][] inputs = dataTable.ToArray(out columnNames); int[] expected = trainningData.ClassificationAttribute; int[] predicted = ComputeModel(inputs); int positiveValue = trainningData.PositiveValue; int negativeValue = trainningData.NegativeValue; ConfusionMatrix confusionMatrix = new ConfusionMatrix(predicted, expected, positiveValue, negativeValue); return new List<ConfusionMatrix> { confusionMatrix }; }
public override void TrainningModel(TrainningData trainningData) { Codification codification = trainningData.CodificationData; int[][] inputs = trainningData.TrainningAttributes.ToInt32(); int[] outputs = trainningData.ClassificationAttribute; int lastIndex = codification.Columns.Count - 1; List<int> symbolCounts = new List<int>(); for (int indexColumn = 0; indexColumn < lastIndex; indexColumn++) { symbolCounts.Add(codification[indexColumn].Symbols); } this.bayes = new NaiveBayes(2, symbolCounts.ToArray()); this.bayes.Estimate(inputs, outputs); }
//public static C45Model CreateC45Model(Codification codification) //{ // int lastIndex = codification.Columns.Count - 1; // List<DecisionVariable> attributes = new List<DecisionVariable>(); // for (int indexColumn = 0; indexColumn < lastIndex; indexColumn++) // { // attributes.Add(new DecisionVariable(codification.Columns[indexColumn].ColumnName, // codification[indexColumn].Symbols)); // } // C45Model model = new C45Model(new DecisionTree(attributes.ToArray(), 2)); // return model; //} //public C45Model(DecisionTree tree) //{ // this.Tree = tree; //} // Trainning decision tree with C4.5 algorithm public override void TrainningModel(TrainningData trainningData) { // Get data for trainning tree Codification codification = trainningData.CodificationData; double[][] inputs = trainningData.TrainningAttributes; int[] outputs = trainningData.ClassificationAttribute; // Create tree this.Tree = this.CreateDecisionTree(codification); //var attributes = DecisionVariable.FromCodebook(codification, inputColumns); //DecisionTree tree = new DecisionTree(attributes, outputClasses: 5); // Creates a new instance of the C4.5 learning algorithm C45Learning c45 = new C45Learning(this.Tree); // Learn the decision tree double error = c45.Run(inputs, outputs); }
public override void TrainningModel(TrainningData trainningData) { Codification codification = trainningData.CodificationData; int[][] inputs = trainningData.TrainningAttributes.ToInt32(); int[] outputs = trainningData.ClassificationAttribute; int lastIndex = codification.Columns.Count - 1; List <int> symbolCounts = new List <int>(); for (int indexColumn = 0; indexColumn < lastIndex; indexColumn++) { symbolCounts.Add(codification[indexColumn].Symbols); } this.bayes = new NaiveBayes(2, symbolCounts.ToArray()); this.bayes.Estimate(inputs, outputs); }
//public static C45Model CreateC45Model(Codification codification) //{ // int lastIndex = codification.Columns.Count - 1; // List<DecisionVariable> attributes = new List<DecisionVariable>(); // for (int indexColumn = 0; indexColumn < lastIndex; indexColumn++) // { // attributes.Add(new DecisionVariable(codification.Columns[indexColumn].ColumnName, // codification[indexColumn].Symbols)); // } // C45Model model = new C45Model(new DecisionTree(attributes.ToArray(), 2)); // return model; //} //public C45Model(DecisionTree tree) //{ // this.Tree = tree; //} // Trainning decision tree with C4.5 algorithm public override void TrainningModel(TrainningData trainningData) { // Get data for trainning tree Codification codification = trainningData.CodificationData; double[][] inputs = trainningData.TrainningAttributes; int[] outputs = trainningData.ClassificationAttribute; // Create tree this.Tree = this.CreateDecisionTree(codification); //var attributes = DecisionVariable.FromCodebook(codification, inputColumns); //DecisionTree tree = new DecisionTree(attributes, outputClasses: 5); // Creates a new instance of the C4.5 learning algorithm C45Learning c45 = new C45Learning(this.Tree); // Learn the decision tree double error = c45.Run(inputs, outputs); }
public override List <ConfusionMatrix> TestModel(TrainningData trainningData) { ContinuousDataTableAdapter continuousDataTableAdapter = new ContinuousDataTableAdapter(); DataTable continuousDataTable = continuousDataTableAdapter.GetData(); DataTable dataTable = continuousDataTable.DefaultView.ToTable(false, TableMetaData.TestingAttributes); string[] columnNames; double[][] inputs = dataTable.ToArray(out columnNames); int[] expected = trainningData.ClassificationAttribute; int[] predicted = ComputeModel(inputs); int positiveValue = trainningData.PositiveValue; int negativeValue = trainningData.NegativeValue; ConfusionMatrix confusionMatrix = new ConfusionMatrix(predicted, expected, positiveValue, negativeValue); return(new List <ConfusionMatrix> { confusionMatrix }); }
public abstract void TrainningModel(TrainningData trainningData);
// buttonXTestModel click event private void buttonXTestModel_Click(object sender, EventArgs e) { int numberOfTrainningRows = 0; DataTable orginalTrainningTable = this.dataGridViewXTrainning.DataSource as DataTable; DataTable testTable; // Get number of row form percent if (this.comboBoxExTrainningDataPercent.SelectedValue != null) { numberOfTrainningRows = Convert.ToInt32(Math.Truncate( ((int)comboBoxExTrainningDataPercent.SelectedValue * 1.0 * orginalTrainningTable.Rows.Count) / 100)); } // Set test data var query = orginalTrainningTable.AsEnumerable().Skip(numberOfTrainningRows); testTable = query.CopyToDataTable<DataRow>(); if (!HaveModel()) { MessageBox.Show("Chưa có mô hình!", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } TrainningData data = new TrainningData(testTable, this.codification); // Show test result dataGridViewXTrainningResult.DataSource = this.modelList[activeLearningAlgorithm].TestModel(data); List<int> hideColumns = new List<int>(new int[] { 9, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 }); for (int indexColum = 0; indexColum < this.dataGridViewXTrainningResult.Columns.Count; indexColum++) { if (hideColumns.Contains(indexColum)) { this.dataGridViewXTrainningResult.Columns[indexColum].Visible = false; } } }
public abstract void TrainningModel(TrainningData trainningData);