Many clustering methods are designed for especial cluster types or have good performance dealing with particular size and shape of clusters. The main problem in this connection is how to define a similarity (or dissimilarity) criterion to make an algorithm capable of clustering general data, which include clusters of different shape and size. In this paper a new approach to fuzzy clustering is proposed, in which during learning a model for each cluster is estimated. Gradually besides, dissimilarity metric for each cluster is defined, updated and used for the next step. In our approach, instead of associating a single cluster type to each cluster, we assume a set of possible cluster types for each cluster with different grades of possibility. Also proposed method has the capability to deal with partial labeled data. Comparing the experimental results of this method with several important existing algorithms, demonstrates the superior performance of proposed method. The merit of this method is its ability to deal with clusters of different shape and size.