package ca.pfv.spmf.patterns.itemset_array_integers_with_tids_bitset; /* This file is copyright (c) 2008-2012 Philippe Fournier-Viger * * This file is part of the SPMF DATA MINING SOFTWARE * (http://www.philippe-fournier-viger.com/spmf). * * SPMF is free software: you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation, either version 3 of the License, or (at your option) any later * version. * SPMF is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR * A PARTICULAR PURPOSE. See the GNU General Public License for more details. * You should have received a copy of the GNU General Public License along with * SPMF. If not, see <http://www.gnu.org/licenses/>. */ import java.util.BitSet; import ca.pfv.spmf.patterns.AbstractOrderedItemset; /** * This class represents an itemset (a set of items) where the itemset is an array of integers * sorted by lexical order, an item should not appear more than once, * the ids of transactions/sequences containing this itemset is represented * as a bitset. * * * @see AbstractOrderedItemset * @author Philippe Fournier-Viger */ public class Itemset extends AbstractOrderedItemset{ /** The list of items contained in this itemset, ordered by lexical order */ public int[] itemset; // the array of items /** The list of transactions/sequences containing this itemset **/ private BitSet transactionsIds; public int cardinality =0; // the cardinality of the above bitset /** * Constructor of an empty itemset */ public Itemset(){ transactionsIds = new BitSet(); itemset = new int[0]; } /** * Constructor of an empty itemset * @param itemset the itemset * @param the tidset of the itemset * @param the tidset cardinality (support) */ public Itemset(int[] itemset, BitSet bitset, int support){ this.transactionsIds = bitset; this.itemset = itemset; this.cardinality = support; } /** * Constructor * @param item an item that should be added to the new itemset */ public Itemset(int item){ itemset = new int[]{item}; } /** * Constructor * @param items an array of items that should be added to the new itemset */ public Itemset(int [] items){ this.itemset = items; } /** * Get the support of this itemset * @return the support of this itemset */ public int getAbsoluteSupport(){ return cardinality; } /** * Get the list of items in this itemset * @return the list of items */ public int[] getItems(){ return itemset; } /** * Get the item at a given position of this itemset * @param index the position of the item to be returned * @return the item */ public Integer get(int index){ return itemset[index]; } /** * Set the list of transaction/sequence ids containing this itemset. * @param listTransactionIds the list of transaction/sequence ids. * @param cardinality the cardinality of the list. */ public void setTIDs(BitSet listTransactionIds, int cardinality) { this.transactionsIds = listTransactionIds; this.cardinality = cardinality; } /** * Get the size of this itemset. */ public int size(){ return itemset.length; } /** * Get the list of transactions/sequences containing this itemset. * @return the list as a bitset. */ public BitSet getTransactionsIds() { return transactionsIds; } }