コード例 #1
0
        public void LoadData(String filePath)
        {
            if (!"".Equals(filePath) && filePath != null)
            {
                _data = null;

                try
                {
                    // open selected file
                    using (TextReader stream = new StreamReader(filePath))
                    using (CsvReader reader = new CsvReader(stream, true))
                    {
                        // data format:
                        // Date || X(SMA, EMA, Prices,...)
                        var table = reader.ToTable();
                        table.Columns.RemoveAt(0);
                        _data = table.ToMatrix(CultureInfo.InvariantCulture).GetColumn(0).Reverse().ToArray(); // get 'X' values

                        attributeName = table.Columns[0].ToString();
                    }

                }
                catch (Exception e)
                {
                    Debug.WriteLine("Failed reading the file");
                    Debug.WriteLine(e.Message + "\n" + e.StackTrace);
                    return;
                }
            }
        }
コード例 #2
0
        public void ZeroLambdaTest()
        {
            double[,] data = null;

            // open selected file
            using (TextReader stream = new StringReader(Properties.Resources.ZeroLambda))
            using (CsvReader reader = new CsvReader(stream, false))
            {
                data = reader.ToTable().ToMatrix();
            }

            // number of learning samples
            int samples = data.GetLength(0);

            var ranges = data.Range(dimension: 0);

            Assert.AreEqual(2, ranges.Length);

            var rangeX = ranges[0];
            var rangeY = ranges[1];

            // data transformation factor
            double yFactor = 1.7 / rangeY.Length;
            double yMin = rangeY.Min;
            double xFactor = 2.0 / rangeX.Length;
            double xMin = rangeX.Min;

            // prepare learning data
            double[][] input = new double[samples][];
            double[][] output = new double[samples][];

            for (int i = 0; i < samples; i++)
            {
                input[i] = new double[1];
                output[i] = new double[1];

                input[i][0] = (data[i, 0] - xMin) * xFactor - 1.0; // set input
                output[i][0] = (data[i, 1] - yMin) * yFactor - 0.85; // set output
            }

            // create multi-layer neural network
            ActivationNetwork network = new ActivationNetwork(
                new BipolarSigmoidFunction(5),
                1, 12, 1);

            // create teacher
            LevenbergMarquardtLearning teacher = new LevenbergMarquardtLearning(network, true);

            teacher.LearningRate = 1;

            // iterations
            int iteration = 1;
            int iterations = 2000;

            // solution array
            double[,] solution = new double[samples, 2];
            double[] networkInput = new double[1];

            bool needToStop = false;

            double learningError = 0;

            // loop
            while (!needToStop)
            {
                Assert.AreNotEqual(0, teacher.LearningRate);

                // run epoch of learning procedure
                double error = teacher.RunEpoch(input, output) / samples;

                // calculate solution
                for (int j = 0; j < samples; j++)
                {
                    networkInput[0] = (solution[j, 0] - xMin) * xFactor - 1.0;
                    solution[j, 1] = (network.Compute(networkInput)[0] + 0.85) / yFactor + yMin;
                }


                // calculate error
                learningError = 0.0;
                for (int j = 0; j < samples; j++)
                {
                    networkInput[0] = input[j][0];
                    learningError += Math.Abs(data[j, 1] - ((network.Compute(networkInput)[0] + 0.85) / yFactor + yMin));
                }

                // increase current iteration
                iteration++;

                // check if we need to stop
                if ((iterations != 0) && (iteration > iterations))
                    break;
            }

            Assert.IsTrue(learningError < 0.13);
        }
コード例 #3
0
ファイル: Approximation.cs プロジェクト: RLaumeyer/framework
        // Load data
        private void loadDataButton_Click(object sender, System.EventArgs e)
        {
            // show file selection dialog
            if (openFileDialog.ShowDialog() == DialogResult.OK)
            {
                data = null;

                try
                {
                    // open selected file
                    using (TextReader stream = new StreamReader(openFileDialog.FileName))
                    using (CsvReader reader = new CsvReader(stream, false))
                    {
                        data = reader.ToTable().ToMatrix(CultureInfo.InvariantCulture);
                    }

                }
                catch (Exception)
                {
                    MessageBox.Show("Failed reading the file", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                DoubleRange[] ranges = data.Range(dimension: 0);

                xRange = ranges[0];
                yRange = ranges[1];

                // update list and chart
                UpdateDataListView();
                chart.RangeX = new Range((float)ranges[0].Min, (float)ranges[0].Max);
                chart.UpdateDataSeries("data", data);
                chart.UpdateDataSeries("solution", null);

                // enable "Start" button
                startButton.Enabled = true;
            }
        }
コード例 #4
0
 /// <summary>
 ///   Reads the specified file or stream into a table.
 /// </summary>
 /// 
 public DataTable Read(Stream stream)
 {
     var reader = new CsvReader(new StreamReader(stream), true);
     return reader.ToTable();
 }
コード例 #5
0
ファイル: TimeSeries.cs プロジェクト: accord-net/framework
        // Load data
        private void loadDataButton_Click(object sender, System.EventArgs e)
        {
            // show file selection dialog
            if (openFileDialog.ShowDialog() == DialogResult.OK)
            {
                data = null;

                try
                {
                    // open selected file
                    using (TextReader stream = new StreamReader(openFileDialog.FileName))
                    using (CsvReader reader = new CsvReader(stream, false))
                    {
                        data = reader.ToTable().ToMatrix(CultureInfo.InvariantCulture).GetColumn(0);
                    }

                }
                catch (Exception)
                {
                    MessageBox.Show("Failed reading the file", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                dataToShow = Matrix.Stack(Vector.Range(0, data.Length).ToDouble(), data).Transpose();

                // update list and chart
                UpdateDataListView();
                chart.RangeX = new Range(0, data.Length - 1);
                chart.UpdateDataSeries("data", dataToShow);
                chart.UpdateDataSeries("solution", null);

                // set delimiters
                UpdateDelimiters();

                // enable "Start" button
                startButton.Enabled = true;
            }
        }
        public static DataTable Load(Stream stream, TableFormat format)
        {
            switch (format)
            {
            case TableFormat.SerializedXml:
            {
                XmlSerializer serializer = new XmlSerializer(typeof(DataTable));
                return((DataTable)serializer.Deserialize(stream));
            }

            case TableFormat.SerializedBin:
            {
                BinaryFormatter serializer = new BinaryFormatter();
                return((DataTable)serializer.Deserialize(stream));
            }

            case TableFormat.OctaveMatFile:
            {
                MatReader reader = new MatReader(stream);
                return(reader.Fields.First().Value.GetValue <double[, ]>().ToTable());
            }

            case TableFormat.OpenDocument:
            {
                ExcelReader reader = new ExcelReader(stream, true);
                string      ws     = reader.GetWorksheetList().First();
                return(reader.GetWorksheet(ws));
            }

            case TableFormat.OlderExcel:
            {
                ExcelReader reader = new ExcelReader(stream, false);
                string      ws     = reader.GetWorksheetList().First();
                return(reader.GetWorksheet(ws));
            }

            case TableFormat.Csv:
            {
                CsvReader reader = new CsvReader(stream, true);
                return(reader.ToTable());
            }

            case TableFormat.Tsv:
            {
                CsvReader reader = new CsvReader(stream, true, '\t');
                return(reader.ToTable());
            }

            case TableFormat.LibSVM:
            {
                SparseReader reader = new SparseReader(stream);
                return(reader.ToTable());
            }

            case TableFormat.Idx:
            {
                IdxReader reader = new IdxReader(stream);
                return(reader.ReadToEndAsVectors().ToTable());
            }

            case TableFormat.CSharp:
                throw new NotSupportedException();
            }
        }
コード例 #7
0
        public static DataTable Load(Stream stream, TableFormat format)
        {
            switch (format)
            {
                case TableFormat.SerializedXml:
                    {
                        XmlSerializer serializer = new XmlSerializer(typeof(DataTable));
                        return (DataTable)serializer.Deserialize(stream);
                    }

                case TableFormat.SerializedBin:
                    {
                        BinaryFormatter serializer = new BinaryFormatter();
                        return (DataTable)serializer.Deserialize(stream);
                    }

                case TableFormat.OctaveMatFile:
                    {
                        MatReader reader = new MatReader(stream);
                        return reader.Fields.First().Value.GetValue<double[,]>().ToTable();
                    }

                case TableFormat.OpenDocument:
                    {
                        ExcelReader reader = new ExcelReader(stream, true);
                        string ws = reader.GetWorksheetList().First();
                        return reader.GetWorksheet(ws);
                    }

                case TableFormat.OlderExcel:
                    {
                        ExcelReader reader = new ExcelReader(stream, false);
                        string ws = reader.GetWorksheetList().First();
                        return reader.GetWorksheet(ws);
                    }

                case TableFormat.Csv:
                    {
                        CsvReader reader = new CsvReader(stream, true);
                        return reader.ToTable();
                    }

                case TableFormat.Tsv:
                    {
                        CsvReader reader = new CsvReader(stream, true, '\t');
                        return reader.ToTable();
                    }

                case TableFormat.LibSVM:
                    {
                        SparseReader reader = new SparseReader(stream);
                        return reader.ToTable();
                    }

                case TableFormat.Idx:
                    {
                        IdxReader reader = new IdxReader(stream);
                        return reader.ReadToEndAsVectors().ToTable();
                    }

                case TableFormat.CSharp:
                    throw new NotSupportedException();
            }
        }