예제 #1
0
 public void GetMultipleRegressionModelInfo(out double[] coefficients, out string qualityParameterName, out string[] inputParameterNames, out string rmse, out bool normalizeValues)
 {
     coefficients         = _inputParameters.Select(item => item.Coefficient).ToArray();
     qualityParameterName =
         XMLWork.FindNameWithID(_outputParameter.Id.Value, Properties.Settings.Default.Languages);
     inputParameterNames = _inputParameters
                           .Select(item => XMLWork.FindNameWithID(item.Id.Value, Properties.Settings.Default.Languages)).ToArray();
     rmse            = RMSEString;
     normalizeValues = NormalizeValues;
 }
예제 #2
0
 public void GetLinearRegressionModelInfo(out string modelText, out string xAxisTitle, out string yAxisTitle, out double[] coefficients, out double minX, out double maxX, out string rmse, out bool normalizeValues)
 {
     modelText =
         $"{XMLWork.FindNameWithID(_outputParameter.Id.Value, Properties.Settings.Default.Languages)} = {Math.Round(_inputParameters[0].Coefficient, EquationSignificantDigitsCount)} {(_inputParameters[1].Coefficient < 0 ? "-" : "+")} {Math.Abs(Math.Round(_inputParameters[1].Coefficient, EquationSignificantDigitsCount))} · {XMLWork.FindNameWithID(_inputParameters[1].Id.Value, Properties.Settings.Default.Languages)}";
     coefficients    = new[] { _inputParameters[0].Coefficient, _inputParameters[1].Coefficient };
     xAxisTitle      = XMLWork.FindNameWithID(_inputParameters[1].Id.Value, Properties.Settings.Default.Languages);
     yAxisTitle      = XMLWork.FindNameWithID(_outputParameter.Id.Value, Properties.Settings.Default.Languages);
     minX            = _inputParameters[1].LowerBound.Value;
     maxX            = _inputParameters[1].UpperBound.Value;
     rmse            = RMSEString;
     normalizeValues = NormalizeValues;
 }
        private void ShowRegressionModel()
        {
            if (_currentIndex < 0 || _currentIndex >= _regressionModels.Count)
            {
                return;
            }
            var currentModel = _regressionModels[_currentIndex];

            labelRegressionModelId.Text           = currentModel.Id.HasValue ? currentModel.Id.Value.ToString() : string.Empty;
            labelRegressionModelCreationDate.Text = currentModel.CreationDate.ToString("yy-MMM-dd ddd");
            labelRegressionModelName.Text         = currentModel.Name;
            labelOutputParameterName.Text         = XMLWork.FindNameWithID(currentModel.OutputParameter.Id.Value,
                                                                           Properties.Settings.Default.Languages);
            labelCalculatedRMSEValue.Text = currentModel.RMSEString;
            labelNormalizeValues.Text     = currentModel.NormalizeValues ? "Yes" : "No";
            CreateInputParametersTable(currentModel);
            CheckButtonsEnabled(_currentIndex);
        }
        private void CreateInputParametersTable(RegressionModelEquation model)
        {
            DataTable table = new DataTable();

            table.Columns.Add("ParamId", typeof(string));
            table.Columns.Add("ParamName", typeof(string));
            table.Columns.Add("ParamCoefficient", typeof(double));
            table.Columns.Add("ParamUpperBound", typeof(string));
            table.Columns.Add("ParamLowerBound", typeof(string));

            foreach (var parameter in model.InputParameters)
            {
                table.Rows.Add(parameter.Id.HasValue ? parameter.Id.Value.ToString() : string.Empty,
                               parameter.Id.HasValue
                        ? XMLWork.FindNameWithID(parameter.Id.Value, Properties.Settings.Default.Languages)
                        : "free term", Math.Round(parameter.Coefficient, EquationSignificantDigitsCount),
                               parameter.UpperBound.HasValue ? Math.Round(parameter.UpperBound.Value, EquationSignificantDigitsCount).ToString() : string.Empty,
                               parameter.LowerBound.HasValue ? Math.Round(parameter.LowerBound.Value, EquationSignificantDigitsCount).ToString() : string.Empty);
            }

            dataGridViewInputParametersInfo.DataSource = table;
        }