Cómo implementar el algoritmo a priori
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
}