main_8cpp-source.html
来自「Aprior的C++实现算法」· HTML 代码 · 共 152 行
HTML
152 行
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"><title>APRIORI algorithm: main.cpp Source File</title><link href="doxygen.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.3.5 --><div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a> | <a class="qindex" href="globals.html">File Members</a></div><h1>main.cpp</h1><a href="main_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 00032 <span class="preprocessor">#ifdef HAVE_CONFIG_H</span>00033 <span class="preprocessor"></span><span class="preprocessor">#include <config.h></span>00034 <span class="preprocessor">#endif</span>00035 <span class="preprocessor"></span>00036 <span class="preprocessor">#include <iostream></span>00037 <span class="preprocessor">#include <fstream></span>00038 <span class="preprocessor">#include "<a class="code" href="MSApriori_8hpp.html">MSApriori.hpp</a>"</span>00039 <span class="keyword">using</span> <span class="keyword">namespace </span>std;00040 00041 00043 <a name="l00044"></a><a class="code" href="main_8cpp.html#a0">00044</a> <span class="keywordtype">void</span> <a class="code" href="main_8cpp.html#a0">usage</a>()00045 {00046 cerr << <span class="stringliteral">"\nUsage: ./msapriori basketfile outcomefile mis_file [min_conf]\n"</span>;00047 cerr << <span class="stringliteral">"\n basketfile\t file, that contains the baskets of itemcodes"</span>;00048 cerr << <span class="stringliteral">"\n outcomefile\t file to write the outcome"</span>;00049 cerr << <span class="stringliteral">"\n mis_file\t file, that contain mis values"</span>;00050 cerr << <span class="stringliteral">"\n min_conf\t confidence threshold"</span>;00051 00052 cerr << <span class="stringliteral">"\n\nFile formats:"</span>;00053 cerr << <span class="stringliteral">"\n\nThe basket file is a plan text file. Each row represents a basket. "</span>;00054 cerr << <span class="stringliteral">"A basket is a set of items seperated by a nonnumeric character (for example white space, comma, colon, etc.). "</span>; 00055 cerr << <span class="stringliteral">"An item is represented by its code which is an integer number greater than or equal with 0."</span>;00056 cerr << <span class="stringliteral">"\n\nThe mis file is a plan text file. Each row represents an item and its mis value (a real vaule between 0 and 1). "</span>;00057 cerr << <span class="stringliteral">"They have to be seperated by a non-whitespace cahacter (for example comma, colon, semi-colon, dot,etc.). "</span>;00058 cerr << <span class="stringliteral">"The white spaces are ignored automaically.\n"</span>;00059 cerr << <span class="stringliteral">"\nFor more options please check the configuration file: .apriori_config."</span>;00060 cerr << <span class="stringliteral">"\n\nHave a succesful mining ;-)"</span>;00061 cerr << <span class="stringliteral">"\n\n\n\t\t\t\t\tFerenc Bodon\n\n"</span>;00062 }00063 <a name="l00064"></a><a class="code" href="main_8cpp.html#a1">00064</a> <span class="keywordtype">void</span> <a class="code" href="main_8cpp.html#a1">process_config_file</a>(<span class="keywordtype">bool</span>& quiet, <span class="keywordtype">bool</span>& store_input, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>& size_threshold)00065 {00066 ifstream config_file(<span class="stringliteral">".apriori_config"</span>);00067 quiet=<span class="keyword">false</span>;00068 store_input=<span class="keyword">true</span>;00069 00070 <span class="keywordflow">if</span>( !config_file ) 00071 {00072 cerr << <span class="stringliteral">"Warning: There is no configuration file (.apriori_config)!\n"</span>;00073 cerr << <span class="stringliteral">"Default values are used!"</span><<flush;00074 }00075 <span class="keywordflow">else</span>00076 {00077 <span class="keywordtype">char</span> temp_string[256];00078 config_file.getline(temp_string, 256);00079 config_file.getline(temp_string, 256);00080 config_file>>quiet;00081 <span class="keywordflow">if</span>( config_file.fail() )00082 { 00083 cerr<<<span class="stringliteral">"\nWarning: Failed to read in quiet value from the configuration file!"</span>;00084 cerr<<<span class="stringliteral">"\nDefault value (false) is used."</span>;00085 }00086 config_file.getline(temp_string, 256);00087 config_file>>store_input;00088 <span class="keywordflow">if</span>( config_file.fail() )00089 { 00090 cerr<<<span class="stringliteral">"\nWarning: Failed to read in store_input value from the configuration file!"</span>;00091 cerr<<<span class="stringliteral">"\nDefault value (true) is used."</span>;00092 }00093 config_file.getline(temp_string, 256);00094 config_file>>size_threshold;00095 <span class="keywordflow">if</span>( config_file.fail() )00096 { 00097 cerr<<<span class="stringliteral">"\nWarning: Failed to read in size_threshold value from the configuration file!"</span>;00098 cerr<<<span class="stringliteral">"\nDefault value (0) is used."</span>;00099 }00100 config_file.close();00101 }00102 }00103 <a name="l00105"></a><a class="code" href="main_8cpp.html#a2">00105</a> <span class="keywordtype">int</span> <a class="code" href="main_8cpp.html#a2">process_arguments</a>( <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> *argv[], ifstream& basket_file, ifstream& mis_file, <span class="keywordtype">double</span>& min_conf )00106 {00107 <span class="keywordflow">if</span> ( argc < 4 )00108 {00109 <a class="code" href="main_8cpp.html#a0">usage</a>();00110 cerr<<<span class="stringliteral">"\nError! There are 3 mandatory arguments!"</span><<flush;00111 <span class="keywordflow">return</span> 1;00112 }00113 basket_file.open(argv[1]);00114 <span class="keywordflow">if</span>( !basket_file )00115 {00116 <a class="code" href="main_8cpp.html#a0">usage</a>();00117 cerr << <span class="stringliteral">"\nError! The basket file can not be read!"</span><< flush;00118 <span class="keywordflow">return</span> 1;00119 }00120 00121 mis_file.open(argv[3]);00122 <span class="keywordflow">if</span>( !mis_file )00123 {00124 <a class="code" href="main_8cpp.html#a0">usage</a>();00125 cerr << <span class="stringliteral">"\nError!The file that contain minimal threshold values can not be read!"</span><< flush; 00126 <span class="keywordflow">return</span> 1;00127 }00128 <span class="keywordflow">if</span> ( argc == 5 )00129 {00130 min_conf = atof(argv[4]);00131 <span class="keywordflow">if</span> ( min_conf <= 0 || min_conf > 1 )00132 {00133 <a class="code" href="main_8cpp.html#a0">usage</a>();00134 cerr << <span class="stringliteral">"\nError!\n min_conf should be in the interval (0,1].\n"</span><<flush;00135 <span class="keywordflow">return</span> 1;00136 }00137 }00138 <span class="keywordflow">else</span> min_conf = 0;00139 <span class="keywordflow">return</span> 0;00140 }00141 <a name="l00142"></a><a class="code" href="main_8cpp.html#a3">00142</a> <span class="keywordtype">int</span> <a class="code" href="main_8cpp.html#a3">main</a>( <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> *argv[] )00143 {00144 <span class="keywordtype">double</span> min_conf;00145 <span class="keywordtype">bool</span> store_input = <span class="keyword">true</span>,00146 quiet = <span class="keyword">false</span>;00147 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> size_threshold; 00148 ifstream basket_file, mis_file;00149 00150 <a class="code" href="main_8cpp.html#a1">process_config_file</a>(quiet, store_input, size_threshold);00151 <span class="keywordflow">if</span>( <a class="code" href="main_8cpp.html#a2">process_arguments</a>( argc, argv, basket_file, mis_file, min_conf ) ) <span class="keywordflow">return</span> 1;00152 00153 <span class="keywordflow">if</span>( !quiet )00154 {00155 cout << <span class="stringliteral">"\n********************************************************************"</span>;00156 cout << <span class="stringliteral">"\n*** ***"</span>;00157 cout << <span class="stringliteral">"\n*** Trie based MSApriori algorithm ***"</span>;00158 cout << <span class="stringliteral">"\n*** version: 2.2.24 ***"</span>;00159 cout << <span class="stringliteral">"\n*** ***"</span>;00160 cout << <span class="stringliteral">"\n*** Implemented by: Ferenc Bodon (bodon@cs.bme.hu) ***"</span>;00161 cout << <span class="stringliteral">"\n*** ***"</span>;00162 cout << <span class="stringliteral">"\n********************************************************************\n\n"</span>;00163 }00164 00165 <a class="code" href="classMSApriori.html">MSApriori</a> msapriori( basket_file, argv[2] , store_input );00166 msapriori.<a class="code" href="classMSApriori.html#a1">MSAPRIORI_alg</a>( mis_file, min_conf, quiet, size_threshold );00167 basket_file.close();00168 <span class="keywordflow">return</span> 0;00169 }00170 </pre></div><hr size="1"><address style="align: right;"><small>Generated on Sun Jun 20 23:41:08 2004 for APRIORI algorithm by<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border=0 > </a>1.3.5 </small></address></body></html>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?