## 3 Unsupervised Machine Learning (Clustering)  
Clustering algorithms focus on searching for similarities in feature vectors of the data, and then grouping similar vectors [47]. Another name for clustering approach is unsupervised pattern learning, while in supervised pattern learning training dataset is needed. Supervised learning such as classification needs the information obtained from the training dataset to guide the learning process. Clustering algorithms are deployed in many real-world applications in engineering and science. Clustering algorithms are based on how to arrange the data points into clusters optimally. This combinatorial task is found to be NP-hard. To solve this combinatorial problem efficiently, it is leaded to the development of various clustering algorithms. The common goal is to restrict the total number of combinations of the clusters to be investigated. Hierarchical clustering, partition clustering and spectral clustering are the three main types of clustering methods. Various clustering approaches may lead to results of various clusters, and the nature of the problem may provide some guide about the clustering approach to be chosen. The determination of similarities between two feature vectors of the data is a challenging task. Employing a suitable measure for comparing the similarity is essential for clustering algorithms. The procedure of how to cluster the vectors, based on the chosen measure, is the next issue in designing clustering algorithms. Different cluster outputs are often obtained with different clustering measure and procedure. For solving real-world tasks efficiently and accurately, opinions from experts may be very helpful. Agglomerative clustering and divisive clustering are the two different types of hierarchical clustering algorithms. Agglomerative clustering algorithms use the bottom-up procedure. Firstly, each data object is regarded as individual cluster. Then, the data objects are iteratively merged into larger clusters. For the divisive clustering algorithms, the top-down procedure is employed. Firstly, the whole set of data objects are treated as a single cluster. Then, the large clusters are iteratively divided into smaller ones. Co-clustering algorithms focus on the clustering of both the data objects as well as their features. Centralized entities, for example cloud or edge, can allow automated decision making for the applications in fields such as Internet of Things when fed with data from several sensors. Nevertheless, malicious outliers among the data obtained by sensors may affect this automation process. [PERSON] and [PERSON] [48] developed an expandable outlier detection algorithm based on hierarchical clustering together with an artificial neural network. In this system, the hierarchical clustering algorithm can ensure expandability of the outlier detection algorithm from correlated sensors, while an artificial neural network worked together with statistical methods for detecting outliers from the time series obtained by the sensors. A biosensor platform can be used for detection of drug contaminants in hormone drugs and antibiotics. M13 bacteriophage-based colorimetric sensors are found to be able to detect extremely small amounts of target molecules, while further works are needed to enhance their capability of formulating the groupings of target molecules. [PERSON] et al. [49] proposed a statistical approach to classify the types of target molecules with high computational performance even for very large dataset. The proposed method can analyze pattern of