The environment is the source of data upon which an LCS learns. It can be an offline, finite training dataset (characteristic of a data mining, classification, or regression problem), or an online sequential stream of live training instances. Each training instance is assumed to include some number of "features" (also referred to as "attributes", or "independent variables"), and a single "endpoint" of interest (also referred to as the class, "action", "phenotype", "prediction", or "dependent variable"). Part of LCS learning can involve feature selection, therefore not all of the features in the training data need be informative. The set of feature values of an instance is commonly referred to as the "state". For simplicity let's assume an example problem domain with Boolean/binary features and a Boolean/binary class. For Michigan-style systems, one instance from the environment is trained on each learning cycle (i.e. incremental learning). Pittsburgh-style systems perform batch learning, where rule-sets are evaluated each iteration over much or all of the training data.