- Timestamp:
- 01/29/14 14:34:44 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.Problems.GaussianProcessTuning/GaussianProcessDemo/Form1.cs
r9387 r10422 4 4 using System.Data; 5 5 using System.Drawing; 6 using System.Globalization; 6 7 using System.Linq; 7 8 using System.Text; … … 28 29 29 30 var sum = new CovarianceSum(); 30 var t = new Covariance NeuralNetwork();31 var t = new CovarianceSquaredExponentialIso(); 31 32 sum.Terms.Add(t); 32 sum.Terms.Add(new CovarianceNoise());33 //sum.Terms.Add(new CovarianceNoise()); 33 34 this.covFunction = sum; 34 35 UpdateSliders(); … … 52 53 53 54 private void InitData() { 54 int n = 200;55 int n = 5000; 55 56 data = new List<List<double>>(); 56 data.Add( ValueGenerator.GenerateSteps(0, 1, 1.0 / n).ToList());57 data.Add(Enumerable.Range(0, n).Select(e => e / 200.0).ToList()); 57 58 58 59 // sample from GP 59 60 var normalRand = new NormalDistributedRandom(random, 0, 1); 60 alpha = (from i in Enumerable.Range(0, n + 1)61 alpha = (from i in Enumerable.Range(0, n) 61 62 select normalRand.NextDouble()).ToArray(); 62 63 } … … 72 73 } 73 74 74 var trainingData = new List<List<double>>(); 75 var trainingIndices = RandomEnumerable.SampleRandomWithoutRepetition(Enumerable.Range(0, y.Count), random, 10); 76 var trainingY = trainingIndices.Select(i => y[i]).ToList(); 77 var trainingX = trainingIndices.Select(i => data[0][i]).ToList(); 78 trainingData.Add(trainingY); 79 trainingData.Add(trainingX); 80 81 //chart1.Series[2].Points.Clear(); 82 //foreach (var p in trainingY.Zip(trainingX, (t, x) => new { t, x })) { 83 // chart1.Series[2].Points.AddXY(p.x, p.t); 75 //var trainingData = new List<List<double>>(); 76 //var trainingIndices = RandomEnumerable.SampleRandomWithoutRepetition(Enumerable.Range(0, y.Count), random, 10); 77 //var trainingY = trainingIndices.Select(i => y[i]).ToList(); 78 //var trainingX = trainingIndices.Select(i => data[0][i]).ToList(); 79 //trainingData.Add(trainingY); 80 //trainingData.Add(trainingX); 81 // 82 ////chart1.Series[2].Points.Clear(); 83 ////foreach (var p in trainingY.Zip(trainingX, (t, x) => new { t, x })) { 84 //// chart1.Series[2].Points.AddXY(p.x, p.t); 85 ////} 86 // 87 //var allData = new List<List<double>>(); 88 //allData.Add(y); 89 //allData.Add(data[0]); 90 //var variableNames = new string[] { "y", "x" }; 91 //var fullDataSet = new Dataset(variableNames, allData); 92 //var trainingDataSet = new Dataset(variableNames, trainingData); 93 //var trainingRows = Enumerable.Range(0, trainingIndices.Count()); 94 //var fullRows = Enumerable.Range(0, data[0].Count); 95 //var correctModel = new GaussianProcessModel(fullDataSet, variableNames.First(), variableNames.Skip(1), fullRows, hyp, new MeanZero(), 96 // (ICovarianceFunction)covFunction.Clone()); 97 //var yPred = correctModel.GetEstimatedValues(fullDataSet, fullRows); 98 //chart1.Series[1].Points.Clear(); 99 //foreach (var p in yPred.Zip(data[0], (t, x) => new { t, x })) { 100 // chart1.Series[1].Points.AddXY(p.x, p.t); 84 101 //} 85 86 var allData = new List<List<double>>();87 allData.Add(y);88 allData.Add(data[0]);89 var variableNames = new string[] { "y", "x" };90 var fullDataSet = new Dataset(variableNames, allData);91 var trainingDataSet = new Dataset(variableNames, trainingData);92 var trainingRows = Enumerable.Range(0, trainingIndices.Count());93 var fullRows = Enumerable.Range(0, data[0].Count);94 var correctModel = new GaussianProcessModel(fullDataSet, variableNames.First(), variableNames.Skip(1), fullRows, hyp, new MeanZero(),95 (ICovarianceFunction)covFunction.Clone());96 var yPred = correctModel.GetEstimatedValues(fullDataSet, fullRows);97 chart1.Series[1].Points.Clear();98 foreach (var p in yPred.Zip(data[0], (t, x) => new { t, x })) {99 chart1.Series[1].Points.AddXY(p.x, p.t);100 }101 102 } 102 103 … … 124 125 private string DataToText() { 125 126 var str = new StringBuilder(); 126 foreach (var p in chart1.Series[ 1].Points) {127 str.AppendLine(p.XValue + "\t" + p.YValues.First());127 foreach (var p in chart1.Series[0].Points) { 128 str.AppendLine(p.XValue.ToString(CultureInfo.InvariantCulture) + "\t" + p.YValues.First().ToString(CultureInfo.InvariantCulture)); 128 129 } 129 130 return str.ToString();
Note: See TracChangeset
for help on using the changeset viewer.