int main(int argc, char* argv[]){ if (argc > 1) return file_convert(argv[1],out_file_name(argv[1])); else return console_convert(); }
int main(int argc, char* argv[]) { // first prepare some utility objects VikStd::TOutFile outfile("log.txt"); VikStd::TOutStd outstd; VikStd::TOutDouble out2(&outfile, &outstd); VikStd::TCommon common(&out2); common.NotifyP("Reading data..."); // load data from input file VikStd::TDataTable tab; VikStd::TStr temp_s("test.csv"); tab.LoadFromFileX(temp_s); VikApriori::TAssocRules ar(&common, &tab); // determine target attribute VikStd::TStr TargetName = "A35"; int target = tab.FindAttrWithName(TargetName); if (target < 0) throw VikStd::TExc(VikStd::TStr("Incompatible data file and parameter Target. No such attribute: ") + TargetName); if (tab.Attrs[target].AttrType != VikStd::atDiscr) throw VikStd::TExc("Incompatible data file and parameter Target. Attribute not discrete."); ar.SetTargetAttribute(target); // now setup properties for this algorithm VikStd::TProperties props; VikStd::TProp prop; prop.m_c1 = "OutputFile"; prop.m_c2.m_Str = "res.txt"; prop.m_c2.m_Type = VikStd::VTStr; props.Add(prop); prop.m_c1 = "MaxRuleLen"; prop.m_c2.m_Str = 2; prop.m_c2.m_Type = VikStd::VTInt; props.Add(prop); prop.m_c1 = "MinSup"; prop.m_c2.m_Double = 0.05; prop.m_c2.m_Type = VikStd::VTDouble; props.Add(prop); prop.m_c1 = "MinConf"; prop.m_c2.m_Double = 0.7; prop.m_c2.m_Type = VikStd::VTDouble; props.Add(prop); // detect feature subset selection type prop.m_c1 = "FSSType"; prop.m_c2.m_Type = VikStd::VTInt; // if ((PercentOfSelectedAttributes >= 1) || (PercentOfSelectedAttributes <=0)) // prop.m_c2.m_Int = FSS_None; // else prop.m_c2.m_Int = VikApriori::FSS_OddsRatio; props.Add(prop); prop.m_c1 = "PercentOfSelectedAttrs"; prop.m_c2.m_Type = VikStd::VTDouble; prop.m_c2.m_Double = 0.2; props.Add(prop); // detect classifier construction algorithm // 0 - use all rules // 1 - use n rules // 2 - use n rules for each class prop.m_c1 = "ClassConstrAlgo"; prop.m_c2.m_Type = VikStd::VTInt; prop.m_c2.m_Int = VikApriori::CC_UseAll; props.Add(prop); prop.m_c1 = "N"; prop.m_c2.m_Type = VikStd::VTInt; prop.m_c2.m_Int = 1; props.Add(prop); prop.m_c1 = "DefaultRule"; prop.m_c2.m_Type = VikStd::VTBool; prop.m_c2.m_Bool = true; props.Add(prop); //NormalRunAssocRules(ar, props); ///////////// /* out2.Put("Running FOIL...\n"); VikRuleClassifiers::TFoil foil_obj; foil_obj.m_TargetAttr = target; foil_obj.Grow(&tab); foil_obj.Output(&out2, temp_s, &tab); */ VikStd::TStr out_file_name("res.txt"); VikClustering::DoClustering(temp_s, out_file_name, 10, 5, out2); return 0; }