Red de conocimiento informático - Material del sitio web - Cómo implementar el algoritmo a priori

Cómo implementar el algoritmo a priori

importar?java.util.HashMap;

importar?java.util.HashSet;

importar?java.util.Iterator;

importar?java.util .Map;

importar?java.util.Set;

importar?java.util.TreeMap;

/**

*? lt; Bgt; Minería de reglas de asociación: algoritmo a priori; / Bgt;*?

*? /p>

*?

*?@autor?king

*?@since?2013/06/27

*?

*/

pública?//?Base de datos de transacciones

privada?//?Soporte mínimo

privada?Float?minConf;?// ?Confianza mínima

private?Integer?txDatabaseCount;?//?El número de transacciones en la base de datos de transacciones

private?Maplt;Integer,?Setlt;Setlt;Stringgt;gt; gt;?freqItemSet; ?//? frecuenteItemSetCollection

private?Maplt; Stringgt;,? Setlt; gt;? p>

public?Apriori(

Maplt;Integer,?Setlt;Stringgt;gt;gt;?txDatabase,?

Float?minSup,?

Float?minConf )?{

this.txDatabase?=?txDatabase;

this.minSup?=?minSup;

this.minConf?= ?minConf;

p>

this.txDatabaseCount?=?this.txDatabase.size();

freqItemSet?=?new?TreeMaplt;Integer,?Setlt;Setlt ;Stringgt;gt;gt;();

reglas de asociación?=?new?HashMaplt;Setlt;Stringgt;,?Setlt;Setlt;Stringgt;();

}

/ **

*?Escanee la base de datos de transacciones para calcular conjuntos de elementos individuales frecuentes

*?@return

*/

public?Maplt ;Setlt;Stringgt;,?Floatgt;?getFreq1ItemSet()?{

Maplt;Setlt;Stringgt;,?Floatgt;?freq1ItemSetMap?=?new?HashMaplt ;Setlt;Stringgt;,?Floatgt;( );

Maplt

; Setlt; Stringgt;,? Floatgt; ;gt;?es?=?candFreq1ItemSet.entrySet().iterator();

while(it.hasNext())? > Map.Entrylt;Setlt;Stringgt; ,?Integergt;?entry?=?it.next();

//Calcular soporte

Flotador admitido = nuevo Flotador(entrada .getValue().toString() )/new Float(txDatabaseCount);

if(supportedgt;=minSup)?{

?freq1ItemSetMap.put(entry.getKey(), ?compatible);

}

}

}

return?freq1ItemSetMap

}