private List <Entity> binarizationValues(List <Entity> values, int paramId, int newSelectionId, int parameterPosition) { DataHelper helper = new DataHelper(); List <Entity> selectionRows = SelectionRow.where (new Query("SelectionRow").addTypeQuery(TypeQuery.select) .addCondition("SelectionID", "=", newSelectionId.ToString()), typeof(SelectionRow)); List <Entity> listValues = new List <Entity>(); List <string> valueStr = new List <string>(); foreach (Entity value in values) { valueStr.Add(((ValueParameter)value).Value); } EnumeratedParameter p = new EnumeratedParameter(valueStr); int index = 0; foreach (string value in valueStr) { int i = p.GetInt(value); string val = binarization(parameterPosition == i); listValues.Add(helper.addValueParameter(selectionRows[index].ID, paramId, val)); index++; } DatabaseManager.SharedManager.insertMultipleEntities(listValues); return(listValues); }
private void normalizeValues(List <Entity> values, IParameter p, int paramId, int newSelectionId, string prepType) { List <Entity> listValues = new List <Entity>(); DataHelper helper = new DataHelper(); List <Entity> selectionRows = SelectionRow.where (new Query("SelectionRow").addTypeQuery(TypeQuery.select) .addCondition("SelectionID", "=", newSelectionId.ToString()), typeof(SelectionRow)); int index = 0; foreach (Entity value in values) { string val; switch (prepType) { case "Линейная нормализация 1 (к float)": val = normalize(1, value, p); break; case "Нелинейная нормализация 2 (к float)": val = normalize(2, value, p); break; case "нормализация 3 (к int)": val = normalize(3, value, p); break; default: val = ""; break; } listValues.Add(helper.addValueParameter(selectionRows[index].ID, paramId, val)); index++; } DatabaseManager.SharedManager.insertMultipleEntities(listValues); }
private void saveSolutions() { Selection selection = (Selection)Selection.where (new Query("Selection").addTypeQuery(TypeQuery.select) .addCondition("Name", "=", SelectedSolution), typeof(Selection))[0]; models.TaskTemplate template = (models.TaskTemplate)models.TaskTemplate.getById(selection.TaskTemplateID, typeof(models.TaskTemplate)); models.Parameter parameter = (models.Parameter)models.Parameter.where (new Query("Parameter").addTypeQuery(TypeQuery.select) .addCondition("TaskTemplateID", "=", Convert.ToString(template.ID)), typeof(models.Parameter))[0]; for (int i = 0; i < SolvingList.Count; i++) { var item = SolvingList[i]; SelectionRow sr = new SelectionRow() { SelectionID = selection.ID, Number = i }; sr.save(); List <string> values = new List <string>(); values.AddRange(item.X.Select(x => x.Value)); values.Add(outputValues[i]); foreach (string value in values) { TaskSLAnswer vp = new TaskSLAnswer() { SelectionRowID = sr.ID, Value = value, ParameterID = parameter.ID, LearnedSolverID = this.SelectedLearning.LearnedSolver.ID }; vp.save(); } } }
public List <string> getAppropriateValues(List <string> obtainedValues, int selectionId, int parameterId) { // // float valueDec = Convert.ToSingle(value.Replace(".", ",")); //Формируем выборку для заданного параметра List <Entity> selectionRows = SelectionRow.where (new Query("SelectionRow").addTypeQuery(TypeQuery.select) .addCondition("SelectionID", "=", selectionId.ToString()), typeof(SelectionRow)); List <float> valuesForCurrParameter = new List <float>(); foreach (Entity selRow in selectionRows) { int selectionRowId = selRow.ID; List <Entity> valueForParamFromRow = ValueParameter.where (new Query("ValueParameter").addTypeQuery(TypeQuery.select) .addCondition("ParameterID", "=", parameterId.ToString()) .addCondition("SelectionRowID", "=", selectionRowId.ToString()), typeof(ValueParameter)); string numberStr = ((ValueParameter)valueForParamFromRow[0]).Value; float number = Convert.ToSingle(numberStr.Replace(".", ",")); valuesForCurrParameter.Add(number); } valuesForCurrParameter.Sort(); //находим в выборке соответсвующее значение для value (переданного аргумента) и присваиваем его appropriateValue float step = 0; List <string> appropriateValues = new List <string>(); for (int j = 0; j < obtainedValues.Count; j++) { float obtainedValue = Convert.ToSingle(obtainedValues[j].Replace(".", ",")); float prev = valuesForCurrParameter[0]; for (int i = 1; i < valuesForCurrParameter.Count; i++) { float next = valuesForCurrParameter[i]; step = Math.Abs(next - prev); if ((obtainedValue - prev) <= (step / 2)) { appropriateValues.Add(prev.ToString()); break; } prev = next; } //проверка на выод за границу диапозона значений в выборке ??? if (appropriateValues[j].Equals("")) { float firstVal = valuesForCurrParameter[0]; float lastVal = valuesForCurrParameter[valuesForCurrParameter.Count - 1]; if (obtainedValue >= lastVal) { appropriateValues[j] = lastVal.ToString(); } else if (obtainedValue <= firstVal) { appropriateValues[j] = firstVal.ToString(); } } } return(appropriateValues); }
public SelectionRow addSelectionRow(int selectionId, int rowNumber) { SelectionRow entity = new SelectionRow(); entity.SelectionID = selectionId; entity.Number = rowNumber; return(entity); }
private void updateTable(int taskTemplateId) { //рисуем заголовки List <Entity> parameters = models.Parameter.where (new Query("Parameter").addTypeQuery(TypeQuery.select) .addCondition("TaskTemplateID", "=", taskTemplateId.ToString()), typeof(models.Parameter)); originalColumns = new string[parameters.Count]; for (int i = 0; i < parameters.Count; i++) { models.Parameter parameter = (models.Parameter)parameters[i]; originalColumns[i] = parameter.Name; } //рисуем содержимое int rows = 100; if (CountRows < 100) { rows = CountRows; } originalData = new string[rows][]; for (int i = 0; i < rows; i++) { originalData[i] = new string[parameters.Count]; } List <Entity> sels = Selection.where (new Query("Selection").addTypeQuery(TypeQuery.select) .addCondition("TaskTemplateID", "=", taskTemplateId.ToString()) .addCondition("Name", "=", SelectionName), typeof(Selection)); if (sels.Count != 0) { List <Entity> selectionRows = SelectionRow.where (new Query("SelectionRow").addTypeQuery(TypeQuery.select) .addCondition("SelectionID", "=", sels[0].ID.ToString()), typeof(SelectionRow)); int stepRow = 0; foreach (Entity selRow in selectionRows) { List <Entity> valueParam = new List <Entity>(); int selectionRowId = selRow.ID; int stepParam = 0; foreach (Entity param in parameters) { int paramId = param.ID; List <Entity> value = ValueParameter.where (new Query("ValueParameter").addTypeQuery(TypeQuery.select) .addCondition("ParameterID", "=", paramId.ToString()). addCondition("SelectionRowID", "=", selectionRowId.ToString()), typeof(ValueParameter)); originalData[stepRow][stepParam] = ((ValueParameter)value[0]).Value; stepParam++; } stepRow++; if (stepRow >= rows) { break; } } } }
public AddTodoTaskPage(TodoList todoList) : base("AddTodoTaskPage") { Subscribe <NewTodoTaskEvent>(TodoTask); AddTitleRow("Title"); AddHeaderRow("TodoList"); var selectionList = new SelectionItemList <TodoList>(); foreach (var serviceNode in ServiceNodeManager.Current.ServiceNodes) { var todo = TodoApp.Current.GetTodo(serviceNode); if (todo != null) { foreach (var list in todo.TodoLists) { selectionList.Add(new SelectionItem <TodoList>(list, TodoApp.GetTodoListName(list))); } } } _listSelection = AddSelectionRows(selectionList, todoList); _listSelection.SelectionChanged = SelectionChanged; Status.Add(T("ListStatus"), (sv) => { return(_listSelection.Selection != null); }); AddFooterRow(); _editor = AddEditorRow("", "Text"); _editor.SetDetailViewIcon(Icons.Pencil); FocusElement = _editor.Edit; Status.Add(_editor.Edit, T("TextStatus"), (sv, edit, newText, oldText) => { return(!string.IsNullOrWhiteSpace(newText) && newText.Length >= 2); }); AddSubmitRow("Submit", Submit); AddHeaderRow("Common.SubmitAccount"); _submitAccount = AddRow(new SubmitAccountButtonRow <TodoListSubmitAccount>(null, this, SelectSubmitAccount)); AddInfoRow("Common.SubmitAccountInfo"); AddFooterRow(); SelectionChanged(todoList); Status.Add(T("SubmitAccountStatus"), (sv) => { return(_submitAccount.SubmitAccount != null); }); }
public void deleteSelection(Entity selection) { List <Entity> listForDelete = new List <Entity>(); int templateId = ((Selection)selection).TaskTemplateID; TaskTemplate template = ((TaskTemplate)services.DatabaseManager.SharedManager.entityById(templateId, typeof(TaskTemplate))); List <Entity> taskTemplates = TaskTemplate.where (new Query("TaskTemplate").addTypeQuery(TypeQuery.select) .addCondition("TaskID", "=", template.TaskID.ToString()), typeof(TaskTemplate)); List <Entity> selections = new List <Entity>(); foreach (Entity entity in taskTemplates) { List <Entity> sels = TaskTemplate.where (new Query("Selection").addTypeQuery(TypeQuery.select) .addCondition("TaskTemplateId", "=", entity.ID.ToString()) .addCondition("Name", "=", ((Selection)selection).Name), typeof(Selection)); if (sels.Count == 0) { continue; } else { listForDelete = listForDelete.Concat(sels).ToList(); selections = selections.Concat(sels).ToList(); } } foreach (Entity sel in selections) { List <Entity> selectionRows = SelectionRow.where (new Query("SelectionRow").addTypeQuery(TypeQuery.select) .addCondition("SelectionID", "=", sel.ID.ToString()), typeof(SelectionRow)); listForDelete = listForDelete.Concat(selectionRows).ToList(); for (int i = 0; i < selectionRows.Count; i++) { List <Entity> values = ValueParameter.where (new Query("ValueParameter").addTypeQuery(TypeQuery.select) .addCondition("SelectionRowID", "=", selectionRows[i].ID.ToString()), typeof(ValueParameter)); listForDelete = listForDelete.Concat(values).ToList(); } List <Entity> learnedSolverList = LearnedSolver.where (new Query("LearnedSolver").addTypeQuery(TypeQuery.select) .addCondition("SelectionID", "=", sel.ID.ToString()), typeof(LearnedSolver)); listForDelete = listForDelete.Concat(learnedSolverList).ToList(); foreach (Entity lSolver in learnedSolverList) { List <Entity> learningQualityList = LearningQuality.where (new Query("LearningQuality").addTypeQuery(TypeQuery.select) .addCondition("LearnedSolverID", "=", lSolver.ID.ToString()), typeof(LearningQuality)); listForDelete = listForDelete.Concat(learningQualityList).ToList(); } } DatabaseManager.SharedManager.deleteMultipleEntities(listForDelete); }
public List <List <Object> > getListValues(int selectionId) { Selection selection = ((Selection)dms.services.DatabaseManager.SharedManager.entityById(selectionId, typeof(Selection))); int taskTemplateId = selection.ID; List <Entity> parameters = dms.models.Parameter.where (new Query("Parameter").addTypeQuery(TypeQuery.select) .addCondition("TaskTemplateID", "=", taskTemplateId.ToString()), typeof(dms.models.Parameter)); List <Entity> selectionRows = SelectionRow.where (new Query("SelectionRow").addTypeQuery(TypeQuery.select) .addCondition("SelectionID", "=", selectionId.ToString()), typeof(SelectionRow)); List <List <Object> > values = new List <List <Object> >(); int stepRow = 0; foreach (Entity selRow in selectionRows) { int selectionRowId = selRow.ID; int stepParam = 0; foreach (Entity param in parameters) { TypeParameter type = ((dms.models.Parameter)param).Type; int paramId = param.ID; List <Entity> value = ValueParameter.where (new Query("ValueParameter").addTypeQuery(TypeQuery.select) .addCondition("ParameterID", "=", paramId.ToString()). addCondition("SelectionRowID", "=", selectionRowId.ToString()), typeof(ValueParameter)); switch (type) { case TypeParameter.Real: values[stepRow][stepParam] = Convert.ToDouble((((ValueParameter)value[0]).Value).Replace(".", ",")); break; case TypeParameter.Int: values[stepRow][stepParam] = Convert.ToInt32(((ValueParameter)value[0]).Value); break; case TypeParameter.Enum: values[stepRow][stepParam] = ((ValueParameter)value[0]).Value; break; default: break; } stepParam++; } stepRow++; } return(values); }
public void deleteTask(Entity task) { List <Entity> listForDelete = new List <Entity>(); listForDelete.Add(task); List <Entity> templates = TaskTemplate.where (new Query("TaskTemplate").addTypeQuery(TypeQuery.select) .addCondition("TaskID", "=", task.ID.ToString()), typeof(TaskTemplate)); listForDelete = listForDelete.Concat(templates).ToList(); foreach (Entity template in templates) { List <Entity> parameters = models.Parameter.where (new Query("Parameter").addTypeQuery(TypeQuery.select) .addCondition("TaskTemplateID", "=", template.ID.ToString()), typeof(models.Parameter)); listForDelete = listForDelete.Concat(parameters).ToList(); List <Entity> selections = Selection.where (new Query("Selection").addTypeQuery(TypeQuery.select) .addCondition("TaskTemplateID", "=", template.ID.ToString()), typeof(Selection)); listForDelete = listForDelete.Concat(selections).ToList(); foreach (Entity selection in selections) { List <Entity> selectionRows = SelectionRow.where (new Query("SelectionRow").addTypeQuery(TypeQuery.select) .addCondition("SelectionID", "=", selection.ID.ToString()), typeof(SelectionRow)); listForDelete = listForDelete.Concat(selectionRows).ToList(); for (int i = 0; i < selectionRows.Count; i++) { List <Entity> values = ValueParameter.where (new Query("ValueParameter").addTypeQuery(TypeQuery.select) .addCondition("SelectionRowID", "=", selectionRows[i].ID.ToString()), typeof(ValueParameter)); listForDelete = listForDelete.Concat(values).ToList(); } List <Entity> learnedSolverList = LearnedSolver.where (new Query("LearnedSolver").addTypeQuery(TypeQuery.select) .addCondition("SelectionID", "=", selection.ID.ToString()), typeof(LearnedSolver)); listForDelete = listForDelete.Concat(learnedSolverList).ToList(); foreach (Entity lSolver in learnedSolverList) { List <Entity> learningQualityList = LearningQuality.where (new Query("LearningQuality").addTypeQuery(TypeQuery.select) .addCondition("LearnedSolverID", "=", lSolver.ID.ToString()), typeof(LearningQuality)); listForDelete = listForDelete.Concat(learningQualityList).ToList(); } } } DatabaseManager.SharedManager.deleteMultipleEntities(listForDelete); }
private void processWithoutPreprocessing(List <Entity> values, int paramId, int newSelectionId) { DataHelper helper = new DataHelper(); List <Entity> selectionRows = SelectionRow.where (new Query("SelectionRow").addTypeQuery(TypeQuery.select) .addCondition("SelectionID", "=", newSelectionId.ToString()), typeof(SelectionRow)); int index = 0; List <Entity> listValues = new List <Entity>(); foreach (Entity value in values) { string val = withoutPreprocessing(value); listValues.Add(helper.addValueParameter(selectionRows[index].ID, paramId, val)); index++; } DatabaseManager.SharedManager.insertMultipleEntities(listValues); }
public int addNewEntitiesForPreprocessing(string selectionName, int countRows, int taskTemplateId) { DataHelper helper = new DataHelper(); string type = "develop"; int selectionId = helper.addSelection(selectionName, taskTemplateId, countRows, type); List <Entity> listSelRow = new List <Entity>(countRows); for (int i = 0; i < countRows; i++) { SelectionRow entity = helper.addSelectionRow(selectionId, i + 1); listSelRow.Add(entity); } DatabaseManager.SharedManager.insertMultipleEntities(listSelRow); return(selectionId); }
public List <string> getClasses(int oldSelectionId, int newTemplateId, int oldParamId) { models.Parameter oldParam = ((models.Parameter)services.DatabaseManager.SharedManager.entityById(oldParamId, typeof(models.Parameter))); List <Entity> oldSelectionRows = SelectionRow.where (new Query("SelectionRow").addTypeQuery(TypeQuery.select) .addCondition("SelectionID", "=", oldSelectionId.ToString()), typeof(SelectionRow)); List <string> oldValuesForOldParamId = new List <string>(); foreach (Entity selRow in oldSelectionRows) { int selectionRowId = selRow.ID; List <Entity> value = ValueParameter.where (new Query("ValueParameter").addTypeQuery(TypeQuery.select) .addCondition("ParameterID", "=", oldParamId.ToString()). addCondition("SelectionRowID", "=", selectionRowId.ToString()), typeof(ValueParameter)); oldValuesForOldParamId.Add(((ValueParameter)value[0]).Value); } EnumeratedParameter p = new EnumeratedParameter(oldValuesForOldParamId); List <string> classes = p.getClasses(); return(classes); }
private void addParameters(string filePath, char delimiter, ParameterCreationViewModel[] parameters, int selectionId, int taskTemplateId, bool isUsingExitingTemplate) { using (StreamReader sr = new StreamReader(filePath)) { DataHelper helper = new DataHelper(); int rowStep = 0; string line = sr.ReadLine(); if (line != "" && HasHeader) { line = sr.ReadLine(); } int paramCount = parameters.Length; List <Entity> listSelRow = new List <Entity>(countRows); List <Entity> listParams = new List <Entity>(paramCount * countRows); List <ValueParameter> listValParams = new List <ValueParameter>(paramCount * countRows); while (line != "" && line != null) { rowStep++; SelectionRow entity = helper.addSelectionRow(selectionId, rowStep); listSelRow.Add(entity); string[] values = line.Split(delimiter); int index = -1; foreach (string value in values) { index++; string parameterName = parameters[index].Name; string comment = parameters[index].Comment == null ? "" : parameters[index].Comment; int isOutput = getIsOutput(parameters[index].KindOfParameter); TypeParameter type = getTypeParameter(parameters[index].Type); if (rowStep == 1) { dms.models.Parameter parameter = helper.addParameter(parameterName, comment, taskTemplateId, index, isOutput, type); listParams.Add(parameter); } listValParams.Add(helper.addValueParameter(entity.ID, -1 /*parameter.ID*/, value)); } line = sr.ReadLine(); } DatabaseManager.SharedManager.insertMultipleEntities(listSelRow); if (!isUsingExitingTemplate) { DatabaseManager.SharedManager.insertMultipleEntities(listParams); } else { listParams = dms.models.Parameter.where (new Query("Parameter").addTypeQuery(TypeQuery.select) .addCondition("TaskTemplateID", "=", taskTemplateId.ToString()), typeof(dms.models.Parameter)); } List <Entity> list = new List <Entity>(countRows * paramCount); int selRowId = 0; for (int i = 0; i < paramCount * countRows; i++) { if (i % paramCount == 0) { selRowId = i == 0 ? listSelRow[0].ID : listSelRow[i / paramCount].ID; } int paramId = listParams[i % paramCount].ID; ValueParameter param = listValParams[i]; param.ParameterID = paramId; param.SelectionRowID = selRowId; list.Add(param); } DatabaseManager.SharedManager.insertMultipleEntities(list); } }
private void learnSolver() { foreach (LearningModel learningModel in LearningList) { TaskTemplate taskTemplate = (TaskTemplate)TaskTemplate.where (new Query("TaskTemplate").addTypeQuery(TypeQuery.select) .addCondition("Name", "=", learningModel.SelectedPreprocessing), typeof(TaskTemplate))[0]; Selection selection = (Selection)Selection.where (new Query("Selection").addTypeQuery(TypeQuery.select) .addCondition("TaskTemplateID", "=", taskTemplate.ID.ToString()) .addCondition("Name", "=", learningModel.SelectedSelection), typeof(Selection))[0]; int countRows = selection.RowCount; LearningScenario learningScenario = (LearningScenario)LearningScenario.where (new Query("LearningScenario").addTypeQuery(TypeQuery.select) .addCondition("Name", "=", learningModel.SelectedScenario), typeof(LearningScenario))[0]; List <Entity> selectionRows = SelectionRow.where (new Query("SelectionRow").addTypeQuery(TypeQuery.select) .addCondition("SelectionID", "=", selection.ID.ToString()), typeof(SelectionRow)); List <Entity> parameters = dms.models.Parameter.where (new Query("Parameter").addTypeQuery(TypeQuery.select) .addCondition("TaskTemplateID", "=", selection.TaskTemplateID.ToString()), typeof(dms.models.Parameter)); int stepRow = 0; float[][] inputData = new float[countRows][]; float[] outputData = new float[countRows]; for (int i = 0; i < countRows; i++) { inputData[i] = new float[parameters.Count - 1]; } int outputParam = 0; for (int i = 0; i < parameters.Count; i++) { if (((models.Parameter)parameters[i]).IsOutput == 1) { outputParam = parameters[i].ID; } } string[][] vals = Selection.valuesOfSelectionId(selection.ID); float[][] fvals = new float[selection.RowCount][]; for (int i = 0; i < selection.RowCount; i++) { fvals[i] = new float[parameters.Count]; for (int j = 0; j < parameters.Count - 1; j++) { inputData[i][j] = float.Parse(vals[i][j].Replace(".", ",")); } outputData[i] = float.Parse(vals[i][parameters.Count - 1].Replace(".", ",")); } ISolver isolver = null; if (Solver.Description is PerceptronTopology) { PerceptronTopology topology = Solver.Description as PerceptronTopology; isolver = new PerceptronManaged(topology); } else if (Solver.Description is ConvNNTopology) { ConvNNTopology topology = Solver.Description as ConvNNTopology; isolver = new ConvNNManaged(topology); } else if (Solver.Description is WardNNTopology) { WardNNTopology topology = Solver.Description as WardNNTopology; isolver = new WardNNManaged(topology); } else if (Solver.Description is KohonenNNTopology) { KohonenNNTopology topology = Solver.Description as KohonenNNTopology; isolver = new KohonenManaged(topology); } else if (Solver.Description is TreeDescription) { TreeDescription topology = Solver.Description as TreeDescription; isolver = new DecisionTree(topology); } else if (Solver.Description is TreeDescriptionC4_5) { TreeDescriptionC4_5 topology = Solver.Description as TreeDescriptionC4_5; isolver = new DecisionTreeC4_5(topology); } else { throw new EntryPointNotFoundException(); } SeparationOfDataSet s = new SeparationOfDataSet(isolver, learningScenario, inputData, outputData); LearnedSolver ls = new LearnedSolver() { SelectionID = selection.ID, LearningScenarioID = learningScenario.ID, TaskSolverID = Solver.ID, Soul = s.separationAndLearn(selection.ID, outputParam) }; ls.save(); LearningQuality lq = new LearningQuality() { LearnedSolverID = ls.ID, MistakeTrain = Convert.ToInt32(s.MistakeTrain), MistakeTest = Convert.ToInt32(s.MistakeTest), ClosingError = s.ClosingError }; lq.save(); } OnClose?.Invoke(this, null); }
private void learnSolver() { foreach (LearningModel learningModel in LearningList) { TaskTemplate taskTemplate = (TaskTemplate)TaskTemplate.where (new Query("TaskTemplate").addTypeQuery(TypeQuery.select) .addCondition("Name", "=", learningModel.SelectedPreprocessing), typeof(TaskTemplate))[0]; Selection selection = (Selection)Selection.where (new Query("Selection").addTypeQuery(TypeQuery.select) .addCondition("TaskTemplateID", "=", taskTemplate.ID.ToString()) .addCondition("Name", "=", learningModel.SelectedSelection), typeof(Selection))[0]; int countRows = selection.RowCount; LearningScenario learningScenario = (LearningScenario)LearningScenario.where (new Query("LearningScenario").addTypeQuery(TypeQuery.select) .addCondition("Name", "=", learningModel.SelectedScenario), typeof(LearningScenario))[0]; List <Entity> selectionRows = SelectionRow.where (new Query("SelectionRow").addTypeQuery(TypeQuery.select) .addCondition("SelectionID", "=", selection.ID.ToString()), typeof(SelectionRow)); List <Entity> parameters = dms.models.Parameter.where (new Query("Parameter").addTypeQuery(TypeQuery.select) .addCondition("TaskTemplateID", "=", selection.TaskTemplateID.ToString()), typeof(dms.models.Parameter)); int stepRow = 0; float[][] inputData = new float[countRows][]; float[] outputData = new float[countRows]; for (int i = 0; i < countRows; i++) { inputData[i] = new float[parameters.Count - 1]; } int outputParam = 0; foreach (Entity selRow in selectionRows) { int selectionRowId = selRow.ID; int stepParam = 0; foreach (Entity param in parameters) { int paramId = param.ID; List <Entity> value = ValueParameter.where (new Query("ValueParameter").addTypeQuery(TypeQuery.select) .addCondition("ParameterID", "=", paramId.ToString()). addCondition("SelectionRowID", "=", selectionRowId.ToString()), typeof(ValueParameter)); if (((dms.models.Parameter)param).IsOutput == 1) { outputParam = param.ID; string outputValue = ((ValueParameter)value[0]).Value; float outputFloat; if (float.TryParse(outputValue, out outputFloat)) { outputData[stepRow] = outputFloat; } } else { inputData[stepRow][stepParam] = float.Parse(((ValueParameter)value[0]).Value, CultureInfo.InvariantCulture.NumberFormat); } stepParam++; } stepRow++; } ISolver isolver = null; if (Solver.Description is PerceptronTopology) { PerceptronTopology topology = Solver.Description as PerceptronTopology; isolver = new PerceptronManaged(topology); } else if (Solver.Description is ConvNNTopology) { ConvNNTopology topology = Solver.Description as ConvNNTopology; isolver = new ConvNNManaged(topology); } else if (Solver.Description is WardNNTopology) { WardNNTopology topology = Solver.Description as WardNNTopology; isolver = new WardNNManaged(topology); } else if (Solver.Description is TreeDescription) { TreeDescription topology = Solver.Description as TreeDescription; isolver = new DecisionTree(topology); } else { throw new EntryPointNotFoundException(); } SeparationOfDataSet s = new SeparationOfDataSet(isolver, learningScenario, inputData, outputData); LearnedSolver ls = new LearnedSolver() { SelectionID = selection.ID, LearningScenarioID = learningScenario.ID, TaskSolverID = Solver.ID, Soul = s.separationAndLearn(selection.ID, outputParam) }; ls.save(); LearningQuality lq = new LearningQuality() { LearnedSolverID = ls.ID, MistakeTrain = Convert.ToInt32(s.MistakeTrain), MistakeTest = Convert.ToInt32(s.MistakeTest), ClosingError = s.ClosingError }; lq.save(); } OnClose?.Invoke(this, null); }
public PurchasePage(ChainPage chainPage, List <ChainItem <PurchaseInfo> > purchases) : base("PurchasePage") { _chainPage = chainPage; AddTitleRow("Title"); AddHeaderRow("Type"); _type = AddSelectionRows(new SelectionItem <PurchaseTypes>[] { new SelectionItem <PurchaseTypes>(PurchaseTypes.Feature, Tr.Get("PurchaseTypes.Feature")), new SelectionItem <PurchaseTypes>(PurchaseTypes.Subscription, Tr.Get("PurchaseTypes.Subscription")) }, PurchaseTypes.Feature); AddFooterRow(); AddHeaderRow("Ids"); _purchaseId = AddEntryRow(null, "PurchaseId"); _purchaseId.SetDetailViewIcon(Icons.CreditCardFront); _groupId = AddEntryRow(null, "GroupId"); _groupId.SetDetailViewIcon(Icons.LayerGroup); AddFooterRow("IdsInfo"); AddHeaderRow("Info"); _description = AddEntryRow(null, "Description"); _description.SetDetailViewIcon(Icons.AlignLeft); _price = AddEntryRow(null, "Price"); _price.SetDetailViewIcon(Icons.MoneyBillAlt, 22); _duration = AddEntryRow(null, "Duration"); _duration.SetDetailViewIcon(Icons.Stopwatch); AddFooterRow(); Status.Add(_purchaseId.Edit, T("PurchaseIdStatus"), (sv, entry, newText, oldText) => { if (int.TryParse(newText, out var id)) { foreach (var p in purchases) { if (p.Item.PurchaseItemId == id) { return(false); } } return(true); } if (!newText.IsNullOrEmpty()) { entry.Text = oldText; } return(false); }).Add(_groupId.Edit, T("GroupIdStatus"), (sv, entry, newText, oldText) => { if (short.TryParse(newText, out var id)) { foreach (var p in purchases) { if (p.Item.PurchaseGroupId == id && _type.Selection != p.Item.PurchaseType) { return(false); } } return(true); } if (!newText.IsNullOrEmpty()) { entry.Text = oldText; } return(false); }).Add(_description.Edit, T("DescriptionStatus"), (sv, entry, newText, oldText) => { return(!string.IsNullOrWhiteSpace(newText)); }).Add(_price.Edit, T("PriceStatus"), StatusValidators.HeleusCoinValidator). Add(_duration.Edit, T("DurationStatus"), (sv, entry, newText, oldText) => { if (_type.Selection == PurchaseTypes.Feature) { if (!newText.IsNullOrEmpty()) { entry.Text = oldText; } return(true); } return(StatusValidators.PositiveNumberValidator(sv, entry, newText, oldText)); }); _type.SelectionChanged = (item) => { Status.ReValidate(); return(Task.CompletedTask); }; AddSubmitRow("Submit", Submit); }
public Dictionary <List <Entity>, IParameter> executePreprocessing(int newSelectionId, int oldSelectionId, int oldParamId, string prepType, int parameterPosition, int newParamId) { models.Parameter oldParam = ((models.Parameter)DatabaseManager.SharedManager.entityById(oldParamId, typeof(models.Parameter))); TypeParameter type; switch (prepType) { case "Линейная нормализация 1 (к float)": type = TypeParameter.Real; break; case "Нелинейная нормализация 2 (к float)": type = TypeParameter.Real; break; case "нормализация 3 (к int)": type = TypeParameter.Int; break; case "бинаризация": type = TypeParameter.Int; break; case "без предобработки": type = oldParam.Type; break; default: type = TypeParameter.Real; break; } List <string> values = new List <string>(); List <Entity> valueParam = new List <Entity>(); List <Entity> oldSelectionRows = SelectionRow.where (new Query("SelectionRow").addTypeQuery(TypeQuery.select) .addCondition("SelectionID", "=", oldSelectionId.ToString()), typeof(SelectionRow)); int index = 0; foreach (Entity entity in oldSelectionRows) { int selectionRowId = entity.ID; List <Entity> list = ValueParameter.where (new Query("ValueParameter").addTypeQuery(TypeQuery.select) .addCondition("ParameterID", "=", oldParamId.ToString()). addCondition("SelectionRowID", "=", selectionRowId.ToString()), typeof(ValueParameter)); valueParam = valueParam.Concat(list).ToList(); values.Add(((ValueParameter)valueParam[index]).Value); index++; } List <Entity> valuesForParameter = new List <Entity>(); IParameter p = null; switch (prepType) { case "Линейная нормализация 1 (к float)": case "Нелинейная нормализация 2 (к float)": case "нормализация 3 (к int)": if (oldParam.Type == TypeParameter.Real) { p = new RealParameter(values); valuesForParameter = normalizeValues(valueParam, p, newParamId, newSelectionId, prepType); } else if (oldParam.Type == TypeParameter.Int) { p = new IntegerParameter(values); valuesForParameter = normalizeValues(valueParam, p, newParamId, newSelectionId, prepType); } else if (oldParam.Type == TypeParameter.Enum) { p = new EnumeratedParameter(values); valuesForParameter = normalizeValues(valueParam, p, newParamId, newSelectionId, prepType); } break; case "бинаризация": valuesForParameter = binarizationValues(valueParam, newParamId, newSelectionId, parameterPosition); break; case "без предобработки": valuesForParameter = processWithoutPreprocessing(valueParam, newParamId, newSelectionId); break; } Dictionary <List <Entity>, IParameter> res = new Dictionary <List <Entity>, IParameter>(); res.Add(valuesForParameter, p); return(res); }
public SelectionRowChangeEvent(SelectionRow row, global::System.Data.DataRowAction action) { this.eventRow = row; this.eventAction = action; }
public TodoTaskPage(TodoList todoList, TodoTask task) : base("TodoTaskPage") { Subscribe <NewTodoTaskEvent>(TodoItem); Subscribe <TodoTaskStatusEvent>(TodoItemStatus); _todoList = todoList; _task = task; AddTitleRow("Title"); AddHeaderRow("StatusHeader"); var statusItems = new SelectionItemList <TodoTaskStatusTypes> { new SelectionItem <TodoTaskStatusTypes>(TodoTaskStatusTypes.Open, Tr.Get("ItemStatusTypes.Open")), new SelectionItem <TodoTaskStatusTypes>(TodoTaskStatusTypes.Closed, Tr.Get("ItemStatusTypes.Closed")) }; _status = AddSelectionRows(statusItems, task.Status); _status.SelectionChanged = StatusChanged; _statusButton = AddSubmitButtonRow("SubmitStatus", StatusButton); _statusButton.RowStyle = Theme.SubmitButton; _statusButton.IsEnabled = false; _status.Buttons[0].SetDetailViewIcon(Icons.Circle); _status.Buttons[1].SetDetailViewIcon(Icons.CircleCheck); foreach (var b in _status.Buttons) { Status.AddBusyView(b); } Status.AddBusyView(_statusButton); AddFooterRow(); if (task.Status == TodoTaskStatusTypes.Open) { AddHeaderRow("ItemHeader"); _text = AddEditorRow(task.Text, "Text"); _text.SetDetailViewIcon(Icons.Pencil); _text.Edit.TextChanged += Edit_TextChanged; _textButton = AddSubmitButtonRow("SubmitText", Submit); _textButton.RowStyle = Theme.SubmitButton; _textButton.IsEnabled = false; Status.AddBusyView(_text.Edit); Status.AddBusyView(_textButton); AddFooterRow(); } _history = AddHeaderRow("HistoryHeader"); AddFooterRow(); _transactionInfo = AddHeaderRow("TransactionInfo"); AddFooterRow(); AddHeaderRow("Common.SubmitAccount"); _submitAccount = AddRow(new SubmitAccountButtonRow <GroupSubmitAccount>(this, () => todoList.ServiceNode.GetSubmitAccounts <GroupSubmitAccount>(todoList.Index), todoList.ListId.ToString())); AddInfoRow("Common.SubmitAccountInfo"); AddFooterRow(); AddHeaderRow("DeleteHeader"); var delete = AddButtonRow("SubmitDelete", Delete); delete.RowStyle = Theme.CancelButton; delete.SetDetailViewIcon(Icons.TrashAlt); Status.AddBusyView(delete); AddFooterRow(); _ = BuildHistory(); }
public InvitationPage(ServiceNode serviceNode, long todoListId, long accountId = 0) : base("InvitationPage") { Subscribe <TodoListInvitationSentEvent>(InvitationResult); EnableStatus(); AddTitleRow("Title"); var todo = TodoApp.Current.GetTodo(serviceNode); if (todo.TodoLists.Count == 0) { AddInfoRow("NoLists"); return; } AddHeaderRow("List"); TodoList @default = null; var listSelection = new SelectionItemList <TodoList>(); foreach (var list in todo.TodoLists) { listSelection.Add(new SelectionItem <TodoList>(list, TodoApp.GetTodoListName(list))); if (list.ListId == todoListId) { @default = list; } } _listSelection = AddSelectionRows(listSelection, @default); _listSelection.SelectionChanged = SelectionChanged; Status.Add(T("ListStatus"), (sv) => { return(_listSelection.Selection != null); }); AddFooterRow(); AddHeaderRow("AccountId"); _accountId = AddEntryRow(accountId > 0 ? accountId.ToString() : null, "AccountId"); Status.Add(_accountId.Edit, T("AccountStatus"), (sv, edit, n, o) => { var valid = StatusValidators.PositiveNumberValidator(sv, edit, n, o); if (_profile != null) { _profile.IsEnabled = valid; if (valid) { _profile.AccountId = long.Parse(n); } else { _profile.AccountId = 0; } } return(valid); }); _profile = AddRow(new ProfileButtonRow(0, Profile)); _profile.IsEnabled = accountId > 0; Status.AddBusyView(_profile); AddFooterRow(); AddIndex = AddSubmitRow("Submit", Submit); AddIndexBefore = true; _password = AddPasswordRow("", "Password"); Status.Add(_password.Edit, T("PasswordStatus"), (sv, edit, newtext, oldtext) => true); AddIndex = null; AddIndexBefore = false; AddHeaderRow("Common.SubmitAccount"); _submitAccount = AddRow(new SubmitAccountButtonRow <GroupSubmitAccount>(null, this, SelectSubmitAccount)); AddInfoRow("Common.SubmitAccountInfo"); AddFooterRow(); Status.Add(T("SubmitAccountStatus"), (sv) => { return(_submitAccount.SubmitAccount != null); }); SelectionChanged(@default); }
public RegisterPage() : base("RegisterPage") { EnableStatus(); Subscribe <CoreAccountRegisterEvent>(AccountRegistered); AddTitleRow("Title"); AddHeaderRow("NewAccount"); _name = AddEntryRow("", "Name"); _name.SetDetailViewIcon(Icons.Pencil); _password1 = AddPasswordRow("", "Password1"); var password2 = AddPasswordRow("", "Password2"); Status.Add(_password1.Edit, T("PasswordStatus", WalletApp.MinPasswordLength), (sv, entry, newText, oldText) => { var pw1 = _password1.Edit.Text; var pw2 = password2.Edit.Text; return(WalletApp.IsValidPassword(pw1) && WalletApp.IsValidPassword(pw2) && pw1 == pw2); }). AddBusyView(password2); AddFooterRow(); AddHeaderRow(); AddLinkRow("Common.DataLicence", Tr.Get("Link.DataLicence")); var _agree = AddSwitchRow("Agree", Tr.Get("Common.DataLicence")); AddFooterRow(); Status. Add(_agree.Switch, T("AgreeStatus", Tr.Get("Common.DataLicence")), StatusValidators.IsToggled); password2.Edit.TextChanged += (sender, e) => { Status.ReValidate(); }; AddSubmitRow("Register", Register); AddHeaderRow("SignatureKeyInfo"); _selectionRow = AddSelectionRows(new SelectionItemList <AuthorizeType> { new SelectionItem <AuthorizeType>(AuthorizeType.Random, Tr.Get("AuthorizeType.Random")), new SelectionItem <AuthorizeType>(AuthorizeType.Passphrase, Tr.Get("AuthorizeType.Passphrase")) }, AuthorizeType.Random); _selectionRow.SelectionChanged = SecretTypeChanged; AddSeparatorRow(); _keyRow = AddEditorRow("", "SignatureKey"); _keyRow.SetDetailViewIcon(Icons.Key); Status.Add(_keyRow.Edit, T("AuthorizeAccountPage.KeyStatus"), (sv, edit, newText, oldText) => { return(StatusValidators.HexValidator(64, sv, edit, newText, oldText)); }); AddInfoRow("AuthorizeAccountPage.SignatureKeyInfo"); AddFooterRow(); AddHeaderRow(); AddLinkRow("Common.TermsOfUse", Tr.Get("Link.TermsOfUse")); AddLinkRow("Common.Privacy", Tr.Get("Link.Privacy")); AddFooterRow(); IsBusy = true; Update(); }
public Object[][] getValues(int selectionId) { Selection selection = ((Selection)dms.services.DatabaseManager.SharedManager.entityById(selectionId, typeof(Selection))); int taskTemplateId = selection.ID; List <Entity> parameters = dms.models.Parameter.where (new Query("Parameter").addTypeQuery(TypeQuery.select) .addCondition("TaskTemplateID", "=", taskTemplateId.ToString()), typeof(dms.models.Parameter)); List <Entity> inputParams = new List <Entity>(); List <Entity> outputParams = new List <Entity>(); foreach (Entity param in parameters) { models.Parameter p = (models.Parameter)param; if (p.IsOutput == 0) { inputParams.Add(param); } else { outputParams.Add(param); } } List <Entity> selectionRows = SelectionRow.where (new Query("SelectionRow").addTypeQuery(TypeQuery.select) .addCondition("SelectionID", "=", selectionId.ToString()), typeof(SelectionRow)); Object[][] valuesX = new Object[selectionRows.Count][]; Object[][] valuesY = new Object[selectionRows.Count][]; int stepRow = 0; foreach (Entity selRow in selectionRows) { for (int i = 0; i < 2; i++) { if (i == 0) { valuesX[stepRow] = new Object[inputParams.Count]; parameters = inputParams; } else { valuesY[stepRow] = new Object[outputParams.Count]; parameters = outputParams; } int selectionRowId = selRow.ID; int stepParam = 0; foreach (Entity param in parameters) { TypeParameter type = ((dms.models.Parameter)param).Type; int paramId = param.ID; List <Entity> value = ValueParameter.where (new Query("ValueParameter").addTypeQuery(TypeQuery.select) .addCondition("ParameterID", "=", paramId.ToString()). addCondition("SelectionRowID", "=", selectionRowId.ToString()), typeof(ValueParameter)); if (i == 0) { switch (type) { case TypeParameter.Real: valuesX[stepRow][stepParam] = Convert.ToDouble((((ValueParameter)value[0]).Value).Replace(".", ",")); break; case TypeParameter.Int: valuesX[stepRow][stepParam] = Convert.ToInt32(((ValueParameter)value[0]).Value); break; case TypeParameter.Enum: valuesX[stepRow][stepParam] = ((ValueParameter)value[0]).Value; break; default: break; } } else { switch (type) { case TypeParameter.Real: valuesY[stepRow][stepParam] = Convert.ToDouble((((ValueParameter)value[0]).Value).Replace(".", ",")); break; case TypeParameter.Int: valuesY[stepRow][stepParam] = Convert.ToInt32(((ValueParameter)value[0]).Value); break; case TypeParameter.Enum: valuesY[stepRow][stepParam] = ((ValueParameter)value[0]).Value; break; default: break; } } stepParam++; } } stepRow++; } return(null);//values; }