Exemple #1
0
        private void LoadDataFromCSV(string path)
        {
            DataColumn dc;

            dc = new DataColumn();
            string header;

            try
            {
                StreamReader re    = File.OpenText(path);
                string       input = null;
                input  = re.ReadToEnd();
                header = input;
                string line     = "";
                bool   isHeader = true;

                using (StreamReader reader = new StreamReader(path))
                {
                    while ((line = reader.ReadLine()) != null)
                    {
                        if (line != null)
                        {
                            if (isHeader == true)
                            {
                                isHeader = false;
                                string[] cls = line.Replace(";", ",").Replace("\t", ",").Split(',');
                                //string[] cls = line.Trim().Replace(";", ",").Replace("\t", ",").Split(',');
                                //CategoryColumnName = cls[cls.Length - 1];
                                for (int i = 0; i < cls.Length; i++)
                                {
                                    dc            = new DataColumn();
                                    dc.ColumnName = cls[i];
                                    dc.DataType   = Type.GetType("System.String");
                                    dt.Columns.Add(dc);
                                }
                            }
                            else
                            {
                                string[] strRow = line.ToLower().Replace(";", ",").Replace("\t", ",").Split(',');
                                dt.Rows.Add(strRow);
                            }
                        }
                    }
                }
            }
            catch
            {
                MessageBox.Show("you did't choose a test file!");
                return;
            }
            SecondFileFs.Clear();
            for (int b = 0; b < dt.Columns.Count - 1; b++)
            {
                ArrayList tmpa = new ArrayList();
                SecondFileFs.Add((ArrayList)tmpa.Clone());
            }


            for (int r = 0; r < dt.Rows.Count; r++)
            {
                List <ArrayList> LstOfFeatures = new List <ArrayList>();
                for (int c = 0; c < dt.Columns.Count - 1; c++)
                {
                    ArrayList tmp = new ArrayList();
                    LstOfFeatures.Add(tmp);
                    string CurVal = "";
                    CurVal        = dt.Rows[r][c].ToString().Trim();
                    dt.Rows[r][c] = CurVal;
                }
            }
            dataGridView1.DataSource = dt.DefaultView;
            DataColumn dcol = new DataColumn();
            DataRow    drow;

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                ArrayList tmp = new ArrayList();
                drow = dt.Rows[i];

                for (int j = 0; j < dt.Columns.Count; j++)
                {
                    dcol = dt.Columns[j];
                    string featureName  = dcol.ColumnName;
                    string featureVal   = drow[j].ToString();
                    int    featureIndex = 0;
                    foreach (FeaturesCharacteristics fc in TrainingSetMetaDataList)
                    {
                        if (featureName == fc.FeatureName)
                        {
                            int ValueIndex = 0;
                            foreach (string val in fc.FeatureValues)
                            {
                                if (featureVal.Contains(val))
                                {
                                    tmp.Add(featureIndex.ToString() + "," + ValueIndex.ToString());
                                    break;
                                }
                                ValueIndex++;
                            }

                            break;
                        }
                        featureIndex++;
                    }
                }
                TestItemsets.Add((ArrayList)tmp.Clone());
            }
        }
Exemple #2
0
        private void LoadDataFromCSV(string path)
        {
            DataColumn dc;

            dc = new DataColumn();
            string       header;
            StreamReader re    = File.OpenText(path);
            string       input = null;

            input  = re.ReadToEnd();
            header = input;
            string line     = "";
            bool   isHeader = true;

            using (StreamReader reader = new StreamReader(path))
            {
                while ((line = reader.ReadLine()) != null)
                {
                    if (line != null)
                    {
                        if (isHeader == true)
                        {
                            isHeader = false;
                            string[] cls = line.Replace(" ", "_").Replace(";", ",").Replace("\t", ",").Split(',');
                            //string[] cls = line.Trim().Replace(";", ",").Replace("\t", ",").Split(',');
                            //CategoryColumnName = cls[cls.Length - 1];
                            for (int i = 0; i < cls.Length; i++)
                            {
                                dc            = new DataColumn();
                                dc.ColumnName = cls[i];
                                dc.DataType   = Type.GetType("System.String");
                                dt.Columns.Add(dc);
                            }
                        }
                        else
                        {
                            string[] strRow = line.ToLower().Replace(";", ",").Replace("\t", ",").Split(',');
                            dt.Rows.Add(strRow);
                        }
                    }
                }
            }
            SecondFileFs.Clear();
            for (int b = 0; b < dt.Columns.Count - 1; b++)
            {
                ArrayList tmpa = new ArrayList();
                SecondFileFs.Add((ArrayList)tmpa.Clone());
            }


            for (int r = 0; r < dt.Rows.Count; r++)
            {
                List <ArrayList> LstOfFeatures = new List <ArrayList>();
                for (int c = 0; c < dt.Columns.Count - 1; c++)
                {
                    ArrayList tmp = new ArrayList();
                    LstOfFeatures.Add(tmp);
                    string CurVal = "";
                    CurVal        = dt.Rows[r][c].ToString().Trim();
                    dt.Rows[r][c] = CurVal;
                }
            }
            dataGridView1.DataSource = dt.DefaultView;
            DataColumn dcol = new DataColumn();
            DataRow    drow;

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                ArrayList tmp = new ArrayList();
                drow = dt.Rows[i];

                for (int j = 0; j < dt.Columns.Count; j++)
                {
                    dcol = dt.Columns[j];
                    string featureName  = dcol.ColumnName;
                    string featureVal   = drow[j].ToString();
                    string it           = featureName + "=" + featureVal;
                    int    featureIndex = 0;
                    foreach (FeaturesCharacteristics fc in TrainingSetMetaData)
                    {
                        if (featureName.Replace("_", "") == fc.FeatureName.Replace("_", ""))
                        {
                            int ValueIndex = 0;
                            if (fc.isContinuous == true)
                            //if (1==2)
                            {
                                foreach (string val in fc.FeatureValues)
                                {
                                    ////////////////////////////////////////////
                                    // Descritization standard  ie. each period must be written with two values as the following ranges for Age
                                    //<=30
                                    //>30 && <=35
                                    //>35 && <=40
                                    //>40 && <=45
                                    //>45 && <=50
                                    //>50 && <=55
                                    //>55
                                    string[] ValIntervals = val.Replace("&&", "&").Split('&');
                                    if (ValIntervals.Length > 1)// if our value betwwen two values
                                    {
                                        if (decimal.Parse(featureVal) >= decimal.Parse(ValIntervals[0].Replace("=", "").Replace(">", "")) && decimal.Parse(featureVal) < decimal.Parse(ValIntervals[1].Replace("=", "").Replace("<", "")))
                                        {
                                            tmp.Add(featureIndex.ToString() + "," + ValueIndex.ToString());

                                            break;
                                        }
                                    }
                                    else // if our value
                                    {
                                        bool isLth = ValIntervals[0].Contains("<");
                                        if (isLth)
                                        {
                                            string interValValue = ValIntervals[0].Replace("<", "");
                                            if (decimal.Parse(featureVal) < decimal.Parse(interValValue))
                                            {
                                                tmp.Add(featureIndex.ToString() + "," + ValueIndex.ToString());

                                                break;
                                            }
                                        }
                                        else
                                        {
                                            string interValValue = ValIntervals[0].Replace(">", "").Replace("=", "");
                                            if (decimal.Parse(featureVal) >= decimal.Parse(interValValue))
                                            {
                                                tmp.Add(featureIndex.ToString() + "," + ValueIndex.ToString());

                                                break;
                                            }
                                        }
                                    }
                                    ///////////////////////////
                                    ValueIndex++;
                                }
                            }
                            else
                            {
                                foreach (string val in fc.FeatureValues)
                                {
                                    if (featureVal.Contains(val))
                                    {
                                        tmp.Add(featureIndex.ToString() + "," + ValueIndex.ToString());

                                        break;
                                    }
                                    ValueIndex++;
                                }
                            }
                            break;
                        }
                        featureIndex++;

                        //if (tmp.Count == j)
                        //{
                        //    int lkhkl = 0;
                        //}
                        //else {
                        //    int lkhkl = 0;
                        //}
                    }
                }
                TestItemsets.Add((ArrayList)tmp.Clone());
            }
        }