private async Task <DialogTurnResult> FinishDialogAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken)
        {
            stepContext.Values["OceanProximity"] = stepContext.Result;

            var stepValues = stepContext.Values;

            var housingData = new HousingData
            {
                Longitude        = float.Parse(stepValues["Longitude"].ToString()),
                Latitude         = float.Parse(stepValues["Latitude"].ToString()),
                HousingMedianAge = float.Parse(stepValues["MedianAge"].ToString()),
                TotalRooms       = float.Parse(stepValues["TotalRooms"].ToString()),
                TotalBedrooms    = float.Parse(stepValues["TotalBedrooms"].ToString()),
                Population       = float.Parse(stepValues["Population"].ToString()),
                Households       = float.Parse(stepValues["Households"].ToString()),
                MedianIncome     = float.Parse(stepValues["MedianIncome"].ToString()),
                OceanProximity   = ((FoundChoice)stepValues["OceanProximity"]).Value
            };

            var prediction = _predictionEnginePool.Predict(housingData);

            await stepContext.Context.SendActivityAsync($"House value prediction is {prediction.PredictedHouseValue.ToString("C")}");

            return(await stepContext.EndDialogAsync(stepContext.Values, cancellationToken : cancellationToken));
        }
        /// <summary>
        /// This method recieves an HousingDataDto model that we expect to delete based off of the primary key
        /// </summary>
        /// <param name="oldData"></param>
        /// <returns>Task<bool></returns>
        public async Task <bool> DeleteHousingData(HousingDataDto oldData)
        {
            HousingData housingDataVnM = new HousingData();

            //validate the incoming DTO first before converting into DAO
            //STILL NEED TO VALIDATE


            return(await graceService.DeleteHousingDataAsync(housingDataVnM.MapToDao(oldData)));
        }
        /// <summary>
        ///  This method calls the soap service and awaits on the get
        /// </summary>
        /// <returns>  List<HousingDataDto> </returns>
        public async Task <List <HousingDataDto> > HousingDataGetAll()
        {
            HousingData housingDataVnM = new HousingData();
            var         daoDatas       = await graceService.GetHousingDataAsync();

            var dtoDatas = housingDataVnM.getDtoList(daoDatas);

            //STILL NEED TO VALIDATE
            return(dtoDatas);
        }
Beispiel #4
0
        public bool Validate(HousingData housing)
        {
            if (val.PrimaryKeyValidate(housing.AssociateID) &&
                val.ForeignKeyValidate(housing.StatusID) &&
                val.ForeignKeyValidate(housing.RoomID))
            {
                return(true);
            }


            return(false);
        }
Beispiel #5
0
        static void Main(string[] args)
        {
            Helper.PrintLine("使用的单独的数据准备和模型管道");
            MLContext mlContext = new MLContext();

            Helper.PrintLine("准备训练数据集...");
            HousingData[] housingData = new HousingData[]
            {
                new HousingData
                {
                    Size             = 600f,
                    HistoricalPrices = new float[] { 100000f, 125000f, 122000f },
                    CurrentPrice     = 170000f
                },
                new HousingData
                {
                    Size             = 1000f,
                    HistoricalPrices = new float[] { 200000f, 250000f, 230000f },
                    CurrentPrice     = 225000f
                },
                new HousingData
                {
                    Size             = 1000f,
                    HistoricalPrices = new float[] { 126000f, 130000f, 200000f },
                    CurrentPrice     = 195000f
                }
            };
            IDataView data = mlContext.Data.LoadFromEnumerable(housingData);

            Helper.PrintLine("准备数据处理管道...");
            IEstimator <ITransformer> dataPrepEstimator =
                mlContext.Transforms.Concatenate("Features", new string[] { "Size", "HistoricalPrices" })
                .Append(mlContext.Transforms.NormalizeMinMax("Features"));

            Helper.PrintLine("训练数据处理管道...");
            ITransformer dataPrepTransformer = dataPrepEstimator.Fit(data);

            Helper.PrintLine("准备神经网络模型...");
            var sdcaEstimator = mlContext.Regression.Trainers.Sdca();

            Helper.PrintLine("训练神经网络模型...");
            IDataView transformedData = dataPrepTransformer.Transform(data);
            RegressionPredictionTransformer <LinearRegressionModelParameters> trainedModel = sdcaEstimator.Fit(transformedData);

            Helper.PrintLine("训练神经网络完成");

            Helper.PrintLine("保存数据处理管道和神经网络模型...");
            mlContext.Model.Save(dataPrepTransformer, data.Schema, DataPipelinePath);
            mlContext.Model.Save(trainedModel, transformedData.Schema, ModelPath);

            Helper.Exit(0);
        }
        public ActionResult Score(HousingData data)
        {
            var result = _session.Run(new List <NamedOnnxValue>
            {
                NamedOnnxValue.CreateFromTensor("float_input", data.AsTensor())
            });
            Tensor <float> score      = result.First().AsTensor <float>();
            var            prediction = new Prediction {
                PredictedValue = score.First() * 100000
            };

            result.Dispose();
            return(Ok(prediction));
        }
        /// <summary>
        /// this method inserts a new housingData by calling on the soap service.
        /// The "graceService.insert" returns a bool value so we just return
        /// that since it depends on its pass or fail
        /// </summary>
        /// <param name="newData"></param>
        /// <returns>Task<bool></returns>
        public async Task <bool> AddHousingData(HousingDataDto newData)
        {
            try
            {
                HousingData housingDataVnM = new HousingData();

                //validate the incoming DTO first before converting into DAO
                //STILL NEED TO VALIDATE

                return(await graceService.InsertHousingDataAsync(housingDataVnM.MapToDao(newData)));
            }
            catch (Exception)
            {
                return(false);
            }
        }
Beispiel #8
0
        public async Task <double> GetEstimate([FromBody] Property house)
        {
            apiKey = "";
            var housingData = new HousingData();

            housingData.age_of_property = Convert.ToInt32((DateTime.Now - new DateTime(house.YearConstructed, 1, 1)).TotalDays / 30);
            housingData.bathroom_count  = house.Bathrooms;
            housingData.bedroom_count   = house.Bedrooms;
            housingData.built_up_area   = Convert.ToInt32(house.BuiltUpArea);
            housingData.pincode         = house.Pincode == null ? "500027" : house.Pincode;
            housingData.date_of_pricing = DateTime.UtcNow;
            housingData.floor_count     = house.FloorCount;
            housingData.floor_number    = house.FloorNumber;
            housingData.id                 = 0;
            housingData.latitude           = house.LatLng.Lat;
            housingData.longitude          = house.LatLng.Lng;
            housingData.under_construction = house.UnderConstruction;
            var featureVector = Utils.HousingFeatures(housingData).ToArray();
            var value         = await ServiceCall.InvokeRequestResponseService(featureVector, apiKey);

            return(Convert.ToInt32(1000 * (Convert.ToInt32(value * housingData.built_up_area / 1000))));
        }
        /// <summary>
        /// This method updates the HousingDataDto
        /// </summary>
        /// <param name="fixData"></param>
        /// <returns>Task<bool></returns>
        public async Task <bool> UpdateHousingData(HousingDataDto fixData)
        {
            HousingData dataVnM = new HousingData();

            return(await graceService.UpdateHousingDataAsync(dataVnM.MapToDao(fixData)));
        }
Beispiel #10
0
 public HousingController(HousingMaster housingMaster, HousingConfig housingConfig, HousingData housingData)
 {
     this.housingMaster = housingMaster;
     this.housingConfig = housingConfig;
     this.housingData   = housingData;
 }
Beispiel #11
0
        public HousingDataDao MapToService(HousingData hdata)
        {
            var mapper = HousingDataMapper.CreateMapper();

            return(mapper.Map <HousingDataDao>(hdata));
        }