1634202000

Clustering is a part of unsupervised subject learning where the major task is to make groups of data points such that the grouped data points have similarities. The closest points are being separated into one group. And most of the algorithms are very good at dealing with the data where they don’t have categorical values available on the data or the data is fully scattered in the space.

#algorithm

1593362160

**Introduction****Correctness Validation****A Brief Discussion on Performance Evaluation****Conclusion****References****Some Related Medium Posts**

Evolutionary and Metaheuristic optimization algorithms are considered as a subset of Artificial Intelligence (AI). These algorithms try to imitate nature mechanisms and solve an optimization problem. For example, the Genetic Algorithm (GA) uses inspired biological mechanisms such as reproduction, cross-over, selection, mutation, and recombination to find the best solution for an optimization problem. Another example can be an Imperialist Competitive Algorithm (ICA) where social mechanisms like domination, revolution, and colonization are used to find a solution [1]. Evolutionary algorithms are usually performing well in complex optimization problems where using classical approaches is mathematically difficult. They can easily deal with nonlinear problems without being stuck in local minimums.

To optimize a problem with an evolutionary optimization algorithm one can use a certified toolbox. However, for some algorithms, either there is no available certified toolbox or one may prefer to implement his/her own code with any program languages. In this situation, the most important questions are — How we can trust the written code? How we can validate the correctness of our implemented evolutionary or metaheuristic code?

In this post, some of the existing ways to check and validate the correctness of an implemented evolutionary optimization algorithm have been addressed briefly. In addition, a discussion regarding the performance evaluation of optimization algorithms is provided using an example of Ackley function.

There are different ways to check the correctness and accuracy of an implemented metaheuristic multi-objective optimization algorithm (e.g. Genetic Algorithm (GA) or Differential Evolution (DE)). The following approaches can be addressed briefly to check the correctness of the implemented optimization algorithm:

A) **Comparison with classical approaches:** In some problems, it can be possible to run both the classical approach and multi-variate GA to make sure the results are correct and accurate. However, in most cases, because of mathematical complexity using a classical approach for comparison is not possible.

B) **Using Well-known Benchmarks:** The correctness of the code can be also proven though existing benchmarks. The used algorithm can be validated via well-known benchmarks [2–6].

C) **Using Expert Idea:** An expert of the system can check the results and their rationality. They should all agree that the final results are logical. If for a problem exact minimum cost value is needed, then using an expert idea would not be convincing.

D) **Convergence:** The convergence of the implemented multi-objective genetic algorithm can be easily observed through the plot of cost vs. iterations. There are also other factors such as roundoff errors and local extrema that have the same perspective.

E) **Domination Factor:** The new generation of optimization algorithms such as NSGA-II, NSGA-III, and MOPSO usually have a function to separate dominant results from non-dominant one. So, all final results should be dominant and with a proper initial population, it is very rare to be trapped by a local minimum. However, there is no guarantee that they find the global minimum of the system. For more information regarding the domination please check [8].

#metaheuristics #artificial-intelligence #evolutionary-algorithms #optimization-algorithms #performance #algorithms

1601271540

Clustering falls under the unsupervised learning technique. In this technique, the data is not labelled and there is no defined dependant variable. This type of learning is usually done to identify patterns in the data and/or to group similar data.

In this post, a detailed explanation on the type of clustering techniques and a code walk-through is provided.

#k-means-clustering #hierarchical-clustering #clustering-algorithm #machine-learning

1596486540

_Clustering or Cluster analysis is the task of grouping a set of objects in such a way that objects in the same group (called a cluster) are more similar (in some sense) to each other than to those in other groups (clusters). — _

Wikipedia

This post contents:

- Books
- Research Papers
- Online Courses and Videos
- Clustering Datasets
- List of Journals

Data Clustering by Chandan K. Reddy and Charu C. Aggarwal. This textbook covers most of the clustering techniques. Highly recommended to people working in clustering.

Data Clustering: Theory, Algorithms, and Applications by Guojun Gan, Chaoqun Ma and Jianhong Wu. This is a useful compendium of a variety of methods of clustering, for a variety of data types, with numerous measures of similarity, and many examples of algorithms. The ultimate emphasis is on the algorithms, even the implementation in MATLAB or C++.

Survey of clustering algorithms

A Survey of Clustering Data Mining Techniques

Clustering high-dimensional data: A survey on subspace clustering

A Survey of Text Clustering Algorithms

A Survey of Recent Advances in Hierarchical Clustering Algorithms

Subspace Clustering for High Dimensional Data: A Review

SUBCLU(density-connected Subspace Clustering)

FIRES(FIlter REfinement Subspace clustering)

CSSub (Clustering by Shared Subspaces)

#artificial-intelligence #algorithms #resources #machine-learning #clustering #algorithms

1634202000

Clustering is a part of unsupervised subject learning where the major task is to make groups of data points such that the grouped data points have similarities. The closest points are being separated into one group. And most of the algorithms are very good at dealing with the data where they don’t have categorical values available on the data or the data is fully scattered in the space.

#algorithm

1593347004

The Greedy Method is an approach for solving certain types of optimization problems. The greedy algorithm chooses the optimum result at each stage. While this works the majority of the times, there are numerous examples where the greedy approach is not the correct approach. For example, let’s say that you’re taking the greedy algorithm approach to earning money at a certain point in your life. You graduate high school and have two options:

#computer-science #algorithms #developer #programming #greedy-algorithms #algorithms