private static (decimal Swing, string Party) GenerateSwing(DateTime forecastDate, DateTime electionDay) { string party = new Random().Next() % 2 == 0 ? "Republican" : "Democratic"; decimal swing = Guassian.Next(0, ((decimal)(electionDay - forecastDate).Days / 90) + 1); return(swing, party); }
public override int Run(string[] remainingArguments) { InitializeArgumentsFromConfinIfItIsNecessary(); var inputs = _dataLoader.LoadCoordinates(_fileName); var normalizedInputs = inputs.Select(_matrixHelpers.Normalize).ToList(); var maxInputOne = normalizedInputs.Select(x => x.At(0, 0)).Max(); var maxInputTwo = normalizedInputs.Select(x => x.At(0, 1)).Max(); var network = new SOMNet(maxInputOne, maxInputTwo, inputs.Count); var rmax = 4; //var neighborhoodFunction = new Guassian(); var neighborhoodFunction = new Guassian(); var teacher = new Teacher(network, neighborhoodFunction, rmax); teacher.Learn(normalizedInputs); var order = new List <int>(); foreach (var input in inputs) { order.Add(network.GetIndexOfTheMostMatchesNeuron(input)); } var saver = new DataSaver(); saver.SaveWeights(network); saver.SaveNormalizedInputs(normalizedInputs); saver.SaveOrder(order); if (shouldVisual) { var orderlinesses = inputs.Select((x, i) => new Orderliness(order[i], x)).ToList(); var bm = _visualizer.Visualize(orderlinesses); bm.Save(ConfigurationManager.AppSettings["Visualization"]); } return(0); }
static int Main(string[] args) { var nf = new Guassian(); for (var i = 0; i < 2; i++) { Console.WriteLine("Wartość guassaina przy i = {0} to {1}", i, nf.GiveValue(i, 1)); } // locate any commands in the assembly (or use an IoC container, or whatever source) var commands = GetCommands(); // then run them. return(ConsoleCommandDispatcher.DispatchCommand(commands, args, Console.Out)); }
private float GenerateGuassianMatrix(uint oct, uint layer) { float sigma = (float)(1.6 * pow(2, oct + ((float)layer / (float)(layers - 3))));//layers-3 to make sure the continues of the Guassian pyrimid uint n = 0; float normalizing = 0; for (int j = 0; j < guassMatrixSize.y; j++) { for (int i = 0; i < guassMatrixSize.x; i++) { Guassian[n] = GuassianFunction(sigma, j, i); normalizing += Guassian[n]; n++; } } for (int i = 0; i < Guassian.Length; i++) { Guassian[i] = Guassian[i] / normalizing; } //normalization Guassian.SetData(Guassian); return(sigma); }//Generate Guassian Matrix Method End
private static (decimal Result, decimal Weight) GetGuassian(Poll poll, string candidateName, DateTime date) { PollResult result = poll.Results.FirstOrDefault(c => c.Candidate == candidateName); if (result != null) { decimal mean = result.Percent; decimal stdDev = ((decimal)(date - poll.Date).Days / 60) + 1; decimal pct = Guassian.Next(mean, stdDev); int denominator = (date - poll.Date).Days; if (denominator == 0) { denominator = 1; } var weight = (decimal)System.Math.Sqrt(1.0 / denominator); return(pct * weight, weight); } return(0.0M, 0.0M); }