private void PreprocessToWorkTreeRandomForest(TrainData trainedData, TrainData checkData, Dictionary <int, string> analysParameter) { int numberOfForest = Convert.ToInt32(numberOfForests.Value); RandForests = new List <DM.DecisionTree.TreeNode>(); //double accuracy = 0.0; //do //{ //Random rand = new Random((int) (DateTime.Now.Ticks)); //DivideSet(rand, trainData, trainedData, checkData); List <DM.DecisionTree.TreeNode> rndForests = new List <DM.DecisionTree.TreeNode>(); int parameterID = XMLWork.FindIDWithName(parameterCondition.SelectedItem.ToString(), Properties.Settings.Default.Languages); int restrictCountOfParameters = Convert.ToInt32(Math.Sqrt(analysParameter.Count)) + 1; Dictionary <int, string> newParameters = new Dictionary <int, string>(); for (int forestsCount = 0; forestsCount < numberOfForest;) { DM.DecisionTree.RandomForest random = new RandomForest(); List <int> parametersName = new List <int>(); foreach (KeyValuePair <int, string> keyValuePair in analysParameter) { if (!keyValuePair.Value.StartsWith("Def")) { parametersName.Add(keyValuePair.Key); } } for (int i = 0; i < restrictCountOfParameters; i++) { int j = rand.Next(0, analysParameter.Count); if (!newParameters.ContainsKey(parametersName[j])) { newParameters.Add(parametersName[j], analysParameter[parametersName[j]]); } } List <OneRow> trainData = new List <OneRow>(); trainData = GetRandomData(TrainData.Train, newParameters, parameterID); _root = random.MountTree(trainData, newParameters, parameterID, Convert.ToInt32(textEdit1.Value) + 1); if (_root.attributeName != "False") { RandForests.Add(_root); forestsCount++; } newParameters.Clear(); } }