private void ELM() { this.Invoke((MethodInvoker) delegate { groupLatih.Enabled = false; groupOpsiLatih.Enabled = false; groupPemakaian.Enabled = false; }); Console.WriteLine(_neuronHidden); Console.WriteLine(_minRand); Console.WriteLine(_maxRand); Network net = new Network(_neuronHidden, _minRand, _maxRand); enn = new ExtremeNeuralNetwork(net, Activation.SigmoidBiner); _error = enn.teach(_arrayFitur, _arrayKelas); tbMape.Invoke((MethodInvoker) delegate { tbMape.Text = _error + ""; }); DialogResult dialogres; string _filename = ""; do { dialogres = Tmp.InputBox("Form Nama", "Masukkan nama model Training: ", ref _filename); if (dialogres == DialogResult.Cancel) { break; } } while ((_filename == "" && dialogres == DialogResult.OK)); if (dialogres.ToString() == "Cancel") { } else { saveFile(enn.Weight, "weight", _filename); saveFile(enn.BetaHatt, "betaHatt", _filename); updateAktivitas("Save File Model"); } this.Invoke((MethodInvoker) delegate { groupLatih.Enabled = true; groupOpsiLatih.Enabled = true; groupPemakaian.Enabled = true; }); }
static void MainProsesAuto(int iterasi, int i, int j, int k, int l, int m, int n, int[] PersenData, int[][] KombinasiChannels, Activation[] FungsiAktivasi, int[] JumlahNeuron, double[] NilaiRandomAlpha, double[,] trainingFeature, double[] trainingKelas, double[,] testingFeature, double[] testingKelas, int total, string date, int[] kelasNonDupe) { string name = iterasi + "_" + "ke-" + n + ", percentTraining " + PersenData[i] + ", KombinasiChannels " + string.Join(", ", KombinasiChannels[j]) + ", Neuron-" + JumlahNeuron[l] + ", Alpha-" + NilaiRandomAlpha[m] + ", " + DateTime.Now.ToString("hh_mm_ss"); Console.WriteLine(name); Network net = new Network(JumlahNeuron[l], -NilaiRandomAlpha[m], NilaiRandomAlpha[m]); enn = new ExtremeNeuralNetwork(net, FungsiAktivasi[k]); var kelas2DTraining = enn.ConvertTo2DArrayKelas(kelasNonDupe, trainingKelas); var kelas2DTesting = enn.ConvertTo2DArrayKelas(kelasNonDupe, testingKelas); var accTrainingData = enn.teach(trainingFeature, kelas2DTraining); var YHattTraining = enn.YHattTraining2D; var forecast = enn.testing(testingFeature, enn.Weight, enn.BetaHatt2D, FungsiAktivasi[k]); var accTesting = enn.Accuration(forecast, kelas2DTesting); //var errorTrainingData = enn.teach(trainingFeature, trainingKelas); //var accurationTrainingData = enn.Acc; //var YHattTraining = enn.YHattTraining; saveFile(enn.Weight, "weight", name); saveFile(enn.BetaHatt2D, "betaHatt", name); saveFile(YHattTraining, kelas2DTraining, "comparasionTraining", name); saveFile(forecast, kelas2DTesting, "comparasionTesting", name); //var forecast = enn.testing(testingFeature, FungsiAktivasi[k]); //var errorTestingData = enn.MAPEEval(forecast, testingKelas); //var accurationTestingData = enn.Accuration(forecast, testingKelas); //saveFile(YHattTraining, trainingKelas, "comparasionTraining", name); //saveFile(forecast, testingKelas, "comparasionTesting", name); var rows = new string[] { iterasi + ";" + n + ";" + PersenData[i] + ";" + string.Join(", ", KombinasiChannels[j]) + ";" + JumlahNeuron[l] + ";" + NilaiRandomAlpha[m] + ";" + accTrainingData + ";" + accTesting + "\n" }; Console.WriteLine("Iterasi Ke-" + iterasi + "; Percobaan Ke-" + n + "; PersenDataTraining : " + PersenData[i] + "; Kombinasi Channels" + string.Join(", ", KombinasiChannels[j]) + "; Jumlah Neuron " + JumlahNeuron[l] + ";" + NilaiRandomAlpha[m] + "; Akurasi Kepada Training Data " + accTrainingData + "; Akurasi Kepada Testing Data " + accTesting); File.AppendAllText(date + ".csv", rows[0]); }
static void Main(string[] args) { double[,] input = new double[, ] { { 5.1, 3.5, 1.4, 0.2 }, { 4.9, 3.0, 1.4, 0.2 }, { 4.7, 3.2, 1.3, 0.2 }, { 4.6, 3.1, 1.5, 0.2 }, { 5.0, 3.6, 1.4, 0.2 }, { 5.4, 3.9, 1.7, 0.4 }, { 4.6, 3.4, 1.4, 0.3 }, { 5.0, 3.4, 1.5, 0.2 }, { 4.4, 2.9, 1.4, 0.2 }, { 4.9, 3.1, 1.5, 0.1 }, { 5.4, 3.7, 1.5, 0.2 }, { 4.8, 3.4, 1.6, 0.2 }, { 4.8, 3.0, 1.4, 0.1 }, { 4.3, 3.0, 1.1, 0.1 }, { 5.8, 4.0, 1.2, 0.2 }, { 5.7, 4.4, 1.5, 0.4 }, { 5.4, 3.9, 1.3, 0.4 }, { 5.1, 3.5, 1.4, 0.3 }, { 5.7, 3.8, 1.7, 0.3 }, { 5.1, 3.8, 1.5, 0.3 }, { 5.4, 3.4, 1.7, 0.2 }, { 5.1, 3.7, 1.5, 0.4 }, { 4.6, 3.6, 1.0, 0.2 }, { 5.1, 3.3, 1.7, 0.5 }, { 4.8, 3.4, 1.9, 0.2 }, { 5.0, 3.0, 1.6, 0.2 }, { 5.0, 3.4, 1.6, 0.4 }, { 5.2, 3.5, 1.5, 0.2 }, { 5.2, 3.4, 1.4, 0.2 }, { 4.7, 3.2, 1.6, 0.2 }, { 4.8, 3.1, 1.6, 0.2 }, { 5.4, 3.4, 1.5, 0.4 }, { 5.2, 4.1, 1.5, 0.1 }, { 5.5, 4.2, 1.4, 0.2 }, { 4.9, 3.1, 1.5, 0.1 }, { 5.0, 3.2, 1.2, 0.2 }, { 5.5, 3.5, 1.3, 0.2 }, { 4.9, 3.1, 1.5, 0.1 }, { 4.4, 3.0, 1.3, 0.2 }, { 5.1, 3.4, 1.5, 0.2 }, { 5.0, 3.5, 1.3, 0.3 }, { 4.5, 2.3, 1.3, 0.3 }, { 4.4, 3.2, 1.3, 0.2 }, { 5.0, 3.5, 1.6, 0.6 }, { 5.1, 3.8, 1.9, 0.4 }, { 4.8, 3.0, 1.4, 0.3 }, { 5.1, 3.8, 1.6, 0.2 }, { 4.6, 3.2, 1.4, 0.2 }, { 5.3, 3.7, 1.5, 0.2 }, { 5.0, 3.3, 1.4, 0.2 }, { 7.0, 3.2, 4.7, 1.4 }, { 6.4, 3.2, 4.5, 1.5 }, { 6.9, 3.1, 4.9, 1.5 }, { 5.5, 2.3, 4.0, 1.3 }, { 6.5, 2.8, 4.6, 1.5 }, { 5.7, 2.8, 4.5, 1.3 }, { 6.3, 3.3, 4.7, 1.6 }, { 4.9, 2.4, 3.3, 1.0 }, { 6.6, 2.9, 4.6, 1.3 }, { 5.2, 2.7, 3.9, 1.4 }, { 5.0, 2.0, 3.5, 1.0 }, { 5.9, 3.0, 4.2, 1.5 }, { 6.0, 2.2, 4.0, 1.0 }, { 6.1, 2.9, 4.7, 1.4 }, { 5.6, 2.9, 3.6, 1.3 }, { 6.7, 3.1, 4.4, 1.4 }, { 5.6, 3.0, 4.5, 1.5 }, { 5.8, 2.7, 4.1, 1.0 }, { 6.2, 2.2, 4.5, 1.5 }, { 5.6, 2.5, 3.9, 1.1 }, { 5.9, 3.2, 4.8, 1.8 }, { 6.1, 2.8, 4.0, 1.3 }, { 6.3, 2.5, 4.9, 1.5 }, { 6.1, 2.8, 4.7, 1.2 }, { 6.4, 2.9, 4.3, 1.3 }, { 6.6, 3.0, 4.4, 1.4 }, { 6.8, 2.8, 4.8, 1.4 }, { 6.7, 3.0, 5.0, 1.7 }, { 6.0, 2.9, 4.5, 1.5 }, { 5.7, 2.6, 3.5, 1.0 }, { 5.5, 2.4, 3.8, 1.1 }, { 5.5, 2.4, 3.7, 1.0 }, { 5.8, 2.7, 3.9, 1.2 }, { 6.0, 2.7, 5.1, 1.6 }, { 5.4, 3.0, 4.5, 1.5 }, { 6.0, 3.4, 4.5, 1.6 }, { 6.7, 3.1, 4.7, 1.5 }, { 6.3, 2.3, 4.4, 1.3 }, { 5.6, 3.0, 4.1, 1.3 }, { 5.5, 2.5, 4.0, 1.3 }, { 5.5, 2.6, 4.4, 1.2 }, { 6.1, 3.0, 4.6, 1.4 }, { 5.8, 2.6, 4.0, 1.2 }, { 5.0, 2.3, 3.3, 1.0 }, { 5.6, 2.7, 4.2, 1.3 }, { 5.7, 3.0, 4.2, 1.2 }, { 5.7, 2.9, 4.2, 1.3 }, { 6.2, 2.9, 4.3, 1.3 }, { 5.1, 2.5, 3.0, 1.1 }, { 5.7, 2.8, 4.1, 1.3 }, { 6.3, 3.3, 6.0, 2.5 }, { 5.8, 2.7, 5.1, 1.9 }, { 7.1, 3.0, 5.9, 2.1 }, { 6.3, 2.9, 5.6, 1.8 }, { 6.5, 3.0, 5.8, 2.2 }, { 7.6, 3.0, 6.6, 2.1 }, { 4.9, 2.5, 4.5, 1.7 }, { 7.3, 2.9, 6.3, 1.8 }, { 6.7, 2.5, 5.8, 1.8 }, { 7.2, 3.6, 6.1, 2.5 }, { 6.5, 3.2, 5.1, 2.0 }, { 6.4, 2.7, 5.3, 1.9 }, { 6.8, 3.0, 5.5, 2.1 }, { 5.7, 2.5, 5.0, 2.0 }, { 5.8, 2.8, 5.1, 2.4 }, { 6.4, 3.2, 5.3, 2.3 }, { 6.5, 3.0, 5.5, 1.8 }, { 7.7, 3.8, 6.7, 2.2 }, { 7.7, 2.6, 6.9, 2.3 }, { 6.0, 2.2, 5.0, 1.5 }, { 6.9, 3.2, 5.7, 2.3 }, { 5.6, 2.8, 4.9, 2.0 }, { 7.7, 2.8, 6.7, 2.0 }, { 6.3, 2.7, 4.9, 1.8 }, { 6.7, 3.3, 5.7, 2.1 }, { 7.2, 3.2, 6.0, 1.8 }, { 6.2, 2.8, 4.8, 1.8 }, { 6.1, 3.0, 4.9, 1.8 }, { 6.4, 2.8, 5.6, 2.1 }, { 7.2, 3.0, 5.8, 1.6 }, { 7.4, 2.8, 6.1, 1.9 }, { 7.9, 3.8, 6.4, 2.0 }, { 6.4, 2.8, 5.6, 2.2 }, { 6.3, 2.8, 5.1, 1.5 }, { 6.1, 2.6, 5.6, 1.4 }, { 7.7, 3.0, 6.1, 2.3 }, { 6.3, 3.4, 5.6, 2.4 }, { 6.4, 3.1, 5.5, 1.8 }, { 6.0, 3.0, 4.8, 1.8 }, { 6.9, 3.1, 5.4, 2.1 }, { 6.7, 3.1, 5.6, 2.4 }, { 6.9, 3.1, 5.1, 2.3 }, { 5.8, 2.7, 5.1, 1.9 }, { 6.8, 3.2, 5.9, 2.3 }, { 6.7, 3.3, 5.7, 2.5 }, { 6.7, 3.0, 5.2, 2.3 }, { 6.3, 2.5, 5.0, 1.9 }, { 6.5, 3.0, 5.2, 2.0 }, { 6.2, 3.4, 5.4, 2.3 }, { 5.9, 3.0, 5.1, 1.8 } }; double[] output = new double[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 }; Network net = new Network(10, -1.0, 1.0); ExtremeNeuralNetwork enn = new ExtremeNeuralNetwork(net, Activation.SigmoidBiner); var error = enn.teach(input, output); Console.WriteLine(error); Console.WriteLine(enn.Accuration(enn.YHattTraining, output) + "\n"); //Console.WriteLine(string.Join("\n", enn.YHattTraining)); Console.ReadKey(); }