Ejemplo n.º 1
0
 private static void write_about_rows(XmlWriter writer, c_samples_set samplesSet)
 {
     writer.WriteStartElement("Rows");
     writer.WriteAttributeString("Count", XmlConvert.ToString(samplesSet.Data_Rows.Count()));
     for (int i = 0; i < samplesSet.Data_Rows.Count; i++)
     {
         writer.WriteStartElement("Row");
         for (int j = 0; j < samplesSet.Count_Vars; j++)
         {
             if (samplesSet.Input_Attribute(j).labels_values.Count() > 0)
             {
                 writer.WriteElementString(samplesSet.Input_Attribute(j).Name,
                                           samplesSet.Data_Rows[i].Input_Attribute_String[j]);
             }
             else
             {
                 writer.WriteElementString(samplesSet.Input_Attribute(j).Name,
                                           XmlConvert.ToString(samplesSet.Data_Rows[i].Input_Attribute_Value[j]));
             }
         }
         writer.WriteElementString(samplesSet.Output_Attributes.Name, samplesSet.Data_Rows[i].Class_Label);
         writer.WriteEndElement();
     }
     writer.WriteEndElement();
 }
Ejemplo n.º 2
0
        private static void  write_about_table(XmlWriter writer, c_samples_set samplesSet, c_Fuzzy_System Classifier)
        {
            writer.WriteStartElement("Table");
            writer.WriteAttributeString("Name", samplesSet.File_Name.Remove(samplesSet.File_Name.Length - 4, 4));
            if (samplesSet == Classifier.Learn_Samples_set)
            {
                writer.WriteAttributeString("Type", "Training");
            }
            else
            {
                writer.WriteAttributeString("Type", "Testing");
            }
            writer.WriteAttributeString("Output", samplesSet.Output_Attributes.Name);
            writer.WriteStartElement("Attributes");
            writer.WriteAttributeString("Count", XmlConvert.ToString(samplesSet.Count_Vars));
            for (int i = 0; i < samplesSet.Count_Vars; i++)
            {
                write_about_attribute(writer, samplesSet.Input_Attribute(i));
            }
            write_about_attribute(writer, samplesSet.Output_Attributes);
            writer.WriteEndElement();
            write_about_rows(writer, samplesSet);


            writer.WriteEndElement();
        }
Ejemplo n.º 3
0
        public static c_samples_set Load_test_from_UFS(this c_samples_set table_set, string file_name)
        {       //init
            c_samples_set temp_set = null;
            List <c_samples_set.Attribune_Info> input_Attribute = new List <c_samples_set.Attribune_Info>();
            List <c_samples_set.Row_Sample>     data_Row        = new List <c_samples_set.Row_Sample>();

            c_samples_set.Attribune_Info output_Attribute = new c_samples_set.Attribune_Info();
            string opened_dataset;

            //parse_start
            XmlDocument Source = new XmlDocument();

            Source.Load(file_name);

            XmlNode table_node = Source.DocumentElement.SelectSingleNode("descendant::Table[@Type='Testing'] "); //We get learning table

            if (table_node == null)
            {
                throw new System.FormatException("В файле нет таблиц данных");
            }
            opened_dataset        = table_node.Attributes.GetNamedItem("Name").Value;
            output_Attribute.Name = table_node.Attributes.GetNamedItem("Output").Value;

            XmlNode attrib_node = table_node.SelectSingleNode("Attributes"); //We get atribute's tags

            int count_attribs = XmlConvert.ToInt32(attrib_node.Attributes.GetNamedItem("Count").Value);

            for (int k = 0; k <= count_attribs; k++)
            {
                c_samples_set.Attribune_Info temp_attib = new c_samples_set.Attribune_Info();
                temp_attib.Name = attrib_node.ChildNodes[k].Attributes.GetNamedItem("Name").Value;  // We get one attribute tag
                foreach (XmlNode Value in attrib_node.ChildNodes[k].ChildNodes)
                {
                    double temp_double = XmlConvert.ToDouble(Value.InnerXml);
                    switch (Value.Name)
                    {
                    case "Min": { temp_attib.Min = temp_double; break; }

                    case "Max": { temp_attib.Max = temp_double; break; }
                    }
                }
                if (temp_attib.Name.Equals(output_Attribute.Name, StringComparison.OrdinalIgnoreCase))
                {
                    output_Attribute = temp_attib;
                }
                else
                {
                    input_Attribute.Add(temp_attib);
                }
            }

            XmlNode rows_node = table_node.SelectSingleNode("Rows"); //We get data rows


            int count_rows = XmlConvert.ToInt32(rows_node.Attributes.GetNamedItem("Count").Value);

            for (int r = 0; r < count_rows; r++)
            {
                string   Classifier_value;
                double[] double_value = new double[count_attribs];
                string[] string_value = new string[count_attribs];
                for (int a = 0; a < count_attribs; a++)
                {
                    XmlNode value = rows_node.ChildNodes[r].SelectSingleNode(input_Attribute[a].Name);
                    try { double_value[a] = XmlConvert.ToDouble(value.InnerXml); }
                    catch
                    {
                        string_value[a] = value.InnerText;
                    }
                }

                XmlNode outvalue = rows_node.ChildNodes[r].SelectSingleNode(output_Attribute.Name);
                Classifier_value = outvalue.InnerText;


                c_samples_set.Row_Sample temp_rows = new c_samples_set.Row_Sample(double_value, string_value, Classifier_value);
                data_Row.Add(temp_rows);
            }
            temp_set = new c_samples_set(opened_dataset, data_Row, input_Attribute, output_Attribute);
            GC.Collect();
            return(temp_set);
        }