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()); } }
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()); } }