예제 #1
0
        public void MultivariateScaled(decimal size, int bedroomCount, decimal priceFrom, decimal priceTo)
        {
            //var algorithm = new LinearRegression(_houses, _housePrices, new Settings { InputSplitRatio = InputSplitRatio.No, MaxIterations = 400});
            //the above works - looks like IsConverging isn't working properly
            var algorithm = new LinearRegression(_houses, _housePrices, new Settings { InputSplitRatio = InputSplitRatio.No});

            var house = new House { Size = size, BedroomCount = bedroomCount };
            var price = algorithm.GetPrediction(house);

            Assert.That(price, Is.InRange(priceFrom, priceTo), "Incorrect price prediction for [" + house + "]");
        }
예제 #2
0
        public void PredictCarPrice()
        {
            //var algorithm = new LinearRegression(_cars, _carPrices, new Settings { InputSplitRatio = InputSplitRatio.No, MaxIterations = 425});
            //the above works - looks like IsConverging isn't working properly
            var algorithm = new LinearRegression(_cars, _carPrices, new Settings { InputSplitRatio = InputSplitRatio.No});

            var car = new Car {
                Model = "Mazda MPV",
                EngineSize = 12,
                MaxHorsePower = 12,
                IsManualShift = false
            };
            var price = algorithm.GetPrediction(car);

            Assert.That(price, Is.InRange(15.9, 16.9), "Incorrect price prediction for [" + car + "]");
        }
예제 #3
0
        public void Univariate(decimal population, decimal profitFrom, decimal profitTo)
        {
            var algorithm = new LinearRegression(_cities, _profits, new Settings { ScaleAndNormalize = false, InputSplitRatio = InputSplitRatio.No });

            var city = new City { Population = population };
            var profit = algorithm.GetPrediction(city);

            Assert.That(profit, Is.InRange(profitFrom, profitTo), "Incorrect price prediction for [" + city + "]");
        }