⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 apriori__trie_8cpp-source.html

📁 APRIOR算法的源程序.希望对大家有用,谁有FP-GROWTH算法的程序请给我发一份,谢谢.anne2422843@sina.com.cn
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<!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: Apriori_Trie.cpp Source File</title><link href="doxygen.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.3.9.1 --><div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div><h1>Apriori_Trie.cpp</h1><a href="Apriori__Trie_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001 <span class="comment">/***************************************************************************</span>00002 <span class="comment">                          Apriori_Trie.cpp  -  description</span>00003 <span class="comment">                             -------------------</span>00004 <span class="comment">    begin                : cs dec 26 2002</span>00005 <span class="comment">    copyright            : (C) 2002 by Ferenc Bodon</span>00006 <span class="comment">    email                : bodon@cs.bme.hu</span>00007 <span class="comment"> ***************************************************************************/</span>00008 00009 00010 <span class="preprocessor">#include "<a class="code" href="Apriori__Trie_8hpp.html">Apriori_Trie.hpp</a>"</span>00011 <span class="preprocessor">#include &lt;cstdlib&gt;</span>00012 <span class="preprocessor">#include &lt;algorithm&gt;</span>00013 <span class="preprocessor">#include &lt;iostream&gt;</span>00014 00015 <a name="l00020"></a><a class="code" href="classApriori__Trie.html#a1">00020</a> <span class="keywordtype">void</span> <a class="code" href="classApriori__Trie.html#a1">Apriori_Trie::insert_frequent_items</a>(00021    <span class="keyword">const</span> vector&lt;countertype&gt;&amp; counters )00022 {00023    <span class="keywordflow">for</span>(vector&lt;countertype&gt;::size_type item_index = 0; 00024        item_index &lt; counters.size(); item_index++)00025       <a class="code" href="classApriori__Trie.html#p0">main_trie</a>.<a class="code" href="classTrie.html#d0">add_empty_state</a>( item_index, counters[item_index] );00026 }00027 <a name="l00032"></a><a class="code" href="classApriori__Trie.html#a2">00032</a> <span class="keywordtype">void</span> <a class="code" href="classApriori__Trie.html#a2">Apriori_Trie::candidate_generation</a>( 00033    <span class="keyword">const</span> itemtype&amp; frequent_size,00034    <a class="code" href="classInput__Output__Manager.html">Input_Output_Manager</a>&amp; input_output_manager )00035 {00036    <span class="keywordflow">if</span>( frequent_size == 1 ) <a class="code" href="classApriori__Trie.html#b1">candidate_generation_two</a>();00037    <span class="keywordflow">else</span>00038    {00039       set&lt;itemtype&gt; maybe_candidate;00040       <a class="code" href="classApriori__Trie.html#b2">candidate_generation_assist</a>( &amp;<a class="code" href="classApriori__Trie.html#p0">main_trie</a>,00041                                    maybe_candidate, 00042                                    input_output_manager );00043    }00044 }00045 <a name="l00053"></a><a class="code" href="classApriori__Trie.html#a3">00053</a> <span class="keywordtype">void</span> <a class="code" href="classApriori__Trie.html#a3">Apriori_Trie::find_candidate</a>( <span class="keyword">const</span> vector&lt;itemtype&gt;&amp; basket, 00054                                    <span class="keyword">const</span> itemtype candidate_size, 00055                                    <span class="keyword">const</span> countertype counter_incr)00056 {00057    <span class="keywordflow">if</span>( candidate_size != 2 ) 00058       <span class="keywordflow">if</span> ( candidate_size&lt;basket.size()+1 )00059          <a class="code" href="classApriori__Trie.html#p0">main_trie</a>.<a class="code" href="classTrie.html#a2">find_candidate</a>( basket.end()-candidate_size+1, 00060                                    basket.begin(), counter_incr );00061       <span class="keywordflow">else</span>;00062    <span class="keywordflow">else</span> <a class="code" href="classApriori__Trie.html#b3">find_candidate_two</a>( basket, counter_incr );    00063 }00064 <a name="l00069"></a><a class="code" href="classApriori__Trie.html#a4">00069</a> <span class="keywordtype">void</span> <a class="code" href="classApriori__Trie.html#a4">Apriori_Trie::delete_infrequent</a>( <span class="keyword">const</span> <span class="keywordtype">double</span> min_occurrence, 00070                                       <span class="keyword">const</span> itemtype candidate_size )00071 {00072    <span class="keywordflow">if</span>( candidate_size != 2 ) 00073       <a class="code" href="classApriori__Trie.html#p0">main_trie</a>.<a class="code" href="classTrie.html#a3">delete_infrequent</a>( min_occurrence );00074    <span class="keywordflow">else</span> <a class="code" href="classApriori__Trie.html#b4">delete_infrequent_two</a>( min_occurrence );00075 }00076 00077 <a name="l00082"></a><a class="code" href="classApriori__Trie.html#b0">00082</a> <span class="keywordtype">bool</span> <a class="code" href="classApriori__Trie.html#b0">Apriori_Trie::is_all_subset_frequent</a>( 00083    <span class="keyword">const</span> set&lt;itemtype&gt;&amp; maybe_candidate )<span class="keyword"> const</span>00084 <span class="keyword"></span>{00085    <span class="keywordflow">if</span>( maybe_candidate.size() &lt; 3) <span class="keywordflow">return</span> <span class="keyword">true</span>; <span class="comment">// because of the </span>00086                                                 <span class="comment">// candidate generation method!</span>00087    <span class="keywordflow">else</span>00088    {00089       set&lt;itemtype&gt;                 temp_itemset(maybe_candidate);00090       set&lt;itemtype&gt;::const_iterator item_it = --(--maybe_candidate.end());00091       <span class="keywordflow">do</span>00092       {00093          item_it--;00094          temp_itemset.erase( *item_it );00095          <span class="keywordflow">if</span>( !<a class="code" href="classApriori__Trie.html#p0">main_trie</a>.<a class="code" href="classTrie.html#a1">is_included</a>( temp_itemset, temp_itemset.begin() ) ) 00096             <span class="keywordflow">return</span> <span class="keyword">false</span>;00097          temp_itemset.insert( *item_it );00098       }00099       <span class="keywordflow">while</span> ( item_it != maybe_candidate.begin() );00100       <span class="keywordflow">return</span> <span class="keyword">true</span>;00101    }00102 }00103 <a name="l00104"></a><a class="code" href="classApriori__Trie.html#b1">00104</a> <span class="keywordtype">void</span> <a class="code" href="classApriori__Trie.html#b1">Apriori_Trie::candidate_generation_two</a>()00105 {00106    <span class="keywordflow">if</span>( !<a class="code" href="classApriori__Trie.html#p0">main_trie</a>.<a class="code" href="classTrie.html#r1">edgevector</a>.empty() )00107    {00108       <a class="code" href="classApriori__Trie.html#p1">temp_counter_array</a>.reserve(<a class="code" href="classApriori__Trie.html#p0">main_trie</a>.<a class="code" href="classTrie.html#r1">edgevector</a>.size()-1);00109       <a class="code" href="classApriori__Trie.html#p1">temp_counter_array</a>.resize(<a class="code" href="classApriori__Trie.html#p0">main_trie</a>.<a class="code" href="classTrie.html#r1">edgevector</a>.size()-1);00110       <span class="keywordflow">for</span>( vector&lt;Edge&gt;::size_type stateIndex = 0; 00111            stateIndex &lt; <a class="code" href="classApriori__Trie.html#p0">main_trie</a>.<a class="code" href="classTrie.html#r1">edgevector</a>.size()-1; stateIndex++ )00112       {00113          <a class="code" href="classApriori__Trie.html#p1">temp_counter_array</a>[stateIndex].reserve(00114             <a class="code" href="classApriori__Trie.html#p0">main_trie</a>.<a class="code" href="classTrie.html#r1">edgevector</a>.size()-1-stateIndex );00115          <a class="code" href="classApriori__Trie.html#p1">temp_counter_array</a>[stateIndex].resize(00116             <a class="code" href="classApriori__Trie.html#p0">main_trie</a>.<a class="code" href="classTrie.html#r1">edgevector</a>.size()-1-stateIndex, 0);00117       }00118    }00119 }00120 <a name="l00121"></a><a class="code" href="classApriori__Trie.html#b2">00121</a> <span class="keywordtype">void</span> <a class="code" href="classApriori__Trie.html#b2">Apriori_Trie::candidate_generation_assist</a>( 00122    <a class="code" href="classTrie.html">Trie</a>* trie, 00123    set&lt;itemtype&gt;&amp; maybe_candidate, 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -