public void LoadCSVFileTrainingClass() { var path = parameters.TrainFile; var csvRead = new ReadCSV(new FileStream(path, FileMode.Open), true, CSVFormat.DecimalPoint); var values = new List <double[]>(); var classes = new List <double[]>(); while (csvRead.Next()) { values.Add(new double[2] { csvRead.GetDouble(0), csvRead.GetDouble(1) }); classes.Add(new double[1] { csvRead.GetDouble(2) }); } csvRead.Close(); var min = parameters.FunctionType == FunctionTypeEnum.Unipolar ? 0d : -1d; ArgNormalize = new NormalizedField[2] { new NormalizedField(NormalizationAction.Normalize, "X", values.Max(v => v[0]), values.Min(v => v[0]), 1.0, min), new NormalizedField(NormalizationAction.Normalize, "Y", values.Max(v => v[1]), values.Min(v => v[1]), 1.0, min) }; for (int i = 0; i < values.Count; i++) { for (int argc = 0; argc < values[i].Length; argc++) { values[i][argc] = ArgNormalize[argc].Normalize(values[i][argc]); } } //Normalization(values); classCount = classes.Select(c => c[0]).Distinct().Count(); var normalizeClasses = new List <double[]>(); for (int i = 0; i < classes.Count; ++i) { var newClasses = new double[classCount]; for (int j = 0; j < newClasses.Length; j++) { newClasses[j] = min; } newClasses[(int)classes[i][0] - 1] = 1;// dodoac normalizacje na -1 normalizeClasses.Add(newClasses); } var trainSetCount = (int)((double)values.Count * ((100.0 - 15) / 100)); values.Shuffle(); normalizeClasses.Shuffle(); MyExtensions.ResetStableShuffle(); TrainSet = new BasicNeuralDataSet(values.Take(trainSetCount).ToArray(), normalizeClasses.Take(trainSetCount).ToArray()); ValidationSet = new BasicNeuralDataSet(values.Skip(trainSetCount).ToArray(), normalizeClasses.Skip(trainSetCount).ToArray()); }
public void LoadCSVFileTrainingRegg() { var path = parameters.TrainFile; var csvRead = new ReadCSV(new FileStream(path, FileMode.Open), true, CSVFormat.DecimalPoint); var valuesX = new List <double[]>(); var valuesY = new List <double[]>(); while (csvRead.Next()) { valuesX.Add(new double[1] { csvRead.GetDouble(0) }); valuesY.Add(new double[1] { csvRead.GetDouble(1) }); } csvRead.Close(); var min = parameters.FunctionType == FunctionTypeEnum.Unipolar ? 0d : -1d; ArgNormalize = new NormalizedField[] { new NormalizedField(NormalizationAction.Normalize, "X", valuesX.Max(v => v[0]), valuesX.Min(v => v[0]), 1.0, min) }; YNormalize = new NormalizedField(NormalizationAction.Normalize, "Y", valuesY.Max(v => v[0]), valuesY.Min(v => v[0]), 1.0, min); for (int i = 0; i < valuesX.Count; i++) { valuesX[i][0] = ArgNormalize[0].Normalize(valuesX[i][0]); valuesY[i][0] = YNormalize.Normalize(valuesY[i][0]); } //if(parameters.FunctionType==FunctionTypeEnum.Bipolar) // ansMeans = means[0]; //ansfactor = factor[0]; //ansMIn = Min[0]; var trainSetCount = (int)((double)valuesX.Count * ((100.0 - 15) / 100)); valuesX.Shuffle(); valuesY.Shuffle(); MyExtensions.ResetStableShuffle(); TrainSet = new BasicNeuralDataSet(valuesX.Take(trainSetCount).ToArray(), valuesY.Take(trainSetCount).ToArray()); ValidationSet = new BasicNeuralDataSet(valuesX.Skip(trainSetCount).ToArray(), valuesY.Skip(trainSetCount).ToArray()); }