DataCollection.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. namespace NeuralNetworkPCL
  5. {
  6. internal class DataCollection
  7. {
  8. DataPoint[] trainingPoints;
  9. DataPoint[] generalisationPoints;
  10. internal DataCollection(String [] _content, int _outputNb, double _trainingRatio)
  11. {
  12. // Read points
  13. int nbLines = _content.Length;
  14. List<DataPoint> points = new List<DataPoint>();
  15. for (int i = 0; i < nbLines; i++)
  16. {
  17. points.Add(new DataPoint(_content[i], _outputNb));
  18. }
  19. // Training set
  20. int nbTrainingPoints = (int) (_trainingRatio * nbLines);
  21. trainingPoints = new DataPoint[nbTrainingPoints];
  22. Random rand = new Random();
  23. for (int i = 0; i < nbTrainingPoints; i++)
  24. {
  25. int index = rand.Next (points.Count);
  26. trainingPoints[i] = points.ElementAt(index);
  27. points.RemoveAt(index);
  28. }
  29. // Generalisation set
  30. generalisationPoints = points.ToArray();
  31. }
  32. internal DataPoint[] Points()
  33. {
  34. return trainingPoints;
  35. }
  36. internal DataPoint[] GeneralisationPoints()
  37. {
  38. return generalisationPoints;
  39. }
  40. }
  41. }