The idea of fuzzy logic was first advanced by Dr. Lotfi Zadeh of the University of California at Berkeley in the 1960s. Dr. Zadeh was working on the problem of computer understanding of natural language. Natural language (like most other activities in life and indeed the universe) is not easily translated into the absolute terms of 0 and 1. (Whether everything is ultimately describable in binary terms is a philosophical question worth pursuing, but in practice much data we might want to feed a computer is in some state in between and so, frequently, are the results of computing.)
Fuzzy logic includes 0 and 1 as extreme cases of truth (or "the state of matters" or "fact") but also includes the various states of truth in between so that, for example, the result of a comparison between two things could be not "tall" or "short" but ".38 of tallness."
Fuzzy logic seems closer to the way our brains work. We aggregate data and form a number of
partial truths which we aggregate further into higher truths which in turn, when certain
thresholds are exceeded, cause certain further results such as motor reaction.
Data clustering is the process of dividing data elements into classes or clusters so that
items in the same class are as similar as possible, and items in different classes are as
dissimilar as possible. Depending on the nature of the data and the purpose for which clustering
is being used, different measures of similarity may be used to place items into classes,
where the similarity measure controls how the clusters are formed. Some examples of
measures that can be used as in clustering include distance, connectivity, and intensity.
In hard clustering, data is divided into distinct clusters, where each data element belongs to exactly one cluster. In fuzzy clustering (also referred to as soft clustering), data elements can belong to more than one cluster, and associated with each element is a set of membership levels. These indicate the strength of the association between that data element and a particular cluster. Fuzzy clustering is a process of assigning these membership levels, and then using them to assign data elements to one or more clusters.