## 2 Related Works
### Types of Clustering Methods  
Data clustering is an important issue in data mining [13] that can be divided into two groups: soft and hard [14]. Soft clustering means overlapping clustering, such as fuzzy clustering, where any data point may belong to more than one cluster with different membership grades. The other clustering, hard clustering, is exclusive clustering in which each data point exists in just one cluster [15].  
From a different point of view, hierarchical and partitioning methods are the two main categories of clustering methods that were introduced in [16]. A hierarchical clustering method works by grouping data into a tree of clusters. In hierarchical clustering, the aim is to produce a hierarchical series of nested clusters. A diagram represents this hierarchy, which is an inverted tree that describes the order in which factors are merged (bottom-up view) or clusters are broken up (top-down view). On the other hand, the partitioning method was described in [13], which starts from an initial clustering and then moves data points from one cluster to another with a relocation method iteratively. There are two types of algorithms in this approach: error minimization algorithms and graph-theoretic clustering. The basic idea in error minimization algorithms is to determine clusters by minimizing a specified error criterion. The most famous algorithm in this area is k-means, which employs the sum of squared error (SSE) as an error criterion. The SSE measures the total squared Euclidean distance of instances to their representative values. However, k-means has some problems such as limiting to numeric attributes or being sensitive to initial centers of clusters. Therefore, some algorithms based on k-means such as k-prototype [17] or KHM [18] were proposed to overcome these problems. In addition, the k-medoids method was proposed, which is more robust than the k-means algorithm [19]. Graph-theoretic methods produce clusters via graphs. The famous algorithm in this method is based on the minimal spanning tree (MST) [20]. Another algorithm was proposed based on limited neighborhood sets [21].  
From another perspective, clustering methods are divided into three main categories [13]: grid-based methods, density-based methods, and model-based clustering. The grid-based clustering methods use a multiresolution grid data structure to quantize object areas into a finite number of cells that form a grid structure, on which all the operations for clustering are implemented. Grid-based clustering uses dense grid cells to form clusters. [22]. Density-based clustering: The data points in the region separated by two clusters of low point density are considered as noise. DBSCAN is one of the most famous methods in this approach. The environment with a radius \(\epsilon\) of a given object is known as the \(\epsilon\) neighborhood of the object. If the \(\epsilon\) neighborhood of the object includes at least a minimum number, MinPts, of objects, then it is called a core object [23].Model-based clustering (or distribution models): This method assumes a data model and applies an EM algorithm to find the most likely model components and the number of clusters [24].