{"id":3390,"date":"2025-06-29T12:07:34","date_gmt":"2025-06-29T10:07:34","guid":{"rendered":"https:\/\/neuraldesigner.com\/blog\/genetic_algorithms_for_feature_selection\/"},"modified":"2025-12-16T13:00:28","modified_gmt":"2025-12-16T12:00:28","slug":"genetic_algorithms_for_feature_selection","status":"publish","type":"blog","link":"https:\/\/www.neuraldesigner.com\/blog\/genetic_algorithms_for_feature_selection\/","title":{"rendered":"Genetic algorithms for feature selection in machine learning"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"3390\" class=\"elementor elementor-3390\" data-elementor-post-type=\"blog\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7bf580c e-flex e-con-boxed e-con e-parent\" data-id=\"7bf580c\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1fa0e07 elementor-widget elementor-widget-text-editor\" data-id=\"1fa0e07\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Many typical machine learning applications, from <a href=\"https:\/\/www.neuraldesigner.com\/solutions\/customer-segmentation\">customer targeting<\/a> to\u00a0<a href=\"https:\/\/www.neuraldesigner.com\/solutions\/medical-diagnosis\">medical diagnosis<\/a>, arise from complex relationships between features (also called <a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/data-set#Variables\">input variables<\/a>\u00a0or characteristics).\u00a0<span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-size: var( --e-global-typography-text-font-size ); font-weight: var( --e-global-typography-text-font-weight );\">Feature selection or <\/span><a style=\"font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-size: var( --e-global-typography-text-font-size ); font-weight: var( --e-global-typography-text-font-weight ); background-color: #ffffff;\" href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/model-selection#InputsSelection\">input selection<\/a><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-size: var( --e-global-typography-text-font-size ); font-weight: var( --e-global-typography-text-font-weight );\"> algorithms (such as genetic algorithms) search for the most relevant inputs for a <\/span><a style=\"font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-size: var( --e-global-typography-text-font-size ); font-weight: var( --e-global-typography-text-font-weight ); background-color: #ffffff;\" href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/neural-networks-applications\">model<\/a><span style=\"color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-size: var( --e-global-typography-text-font-size ); font-weight: var( --e-global-typography-text-font-weight );\">.<\/span><\/p><p>Feature selection techniques help identify and remove unneeded, irrelevant, and redundant features. Indeed, those variables do not contribute to or decrease the accuracy of the predictive model.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-ebf5644 e-flex e-con-boxed e-con e-parent\" data-id=\"ebf5644\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-252ce20 elementor-widget elementor-widget-text-editor\" data-id=\"252ce20\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<h3>Contents<\/h3><ol><li><a href=\"#FeatureSelection\">Feature selection<\/a>.<\/li><li><a href=\"#GeneticAlgorithms\">Genetic algorithms<\/a>.<\/li><li><a href=\"#InitializationOperator\">Initialization operator<\/a>.<\/li><li><a href=\"#FitnessAssignmentOperator\">Fitness assignment operator<\/a>.<\/li><li><a href=\"#SelectionOperator\">Selection operator<\/a>.<\/li><li><a href=\"#CrossoverOperator\">Crossover operator<\/a>.<\/li><li><a href=\"#MutationOperator\">Mutation operator<\/a>.<\/li><li><a href=\"#ProcessAndResults\">Process and results<\/a>.<\/li><li><a href=\"#Conclusions\">Conclusions<\/a>.<\/li><\/ol>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5d26eac e-flex e-con-boxed e-con e-parent\" data-id=\"5d26eac\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e051e50 elementor-widget elementor-widget-text-editor\" data-id=\"e051e50\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<h2>Feature selection<\/h2><p>Mathematically, we formulate <a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/model-selection#InputsSelection\">inputs selection<\/a> as a combinatorial optimization problem.<\/p><p>The <em>objective function<\/em> is the predictive model&#8217;s generalization performance, represented by the <a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/training-strategy#ErrorTerm\">error term<\/a> on the <a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/data-set#SelectionInstances\">selection instances<\/a> of a\u00a0<a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/data-set\">data set<\/a>.<\/p><p>The <em>design variables<\/em> are the inclusion (1) or the exclusion (0) of the <a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/data-set#InputVariables\">input variables<\/a>\u00a0in the <a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/neural-network\">neural network<\/a>.<\/p><p>A wide selection of features would evaluate 2<sup>N<\/sup> different combinations, where N is the number of features.<\/p><p>This process requires lots of computational work, and it becomes impracticable if the number of features is significant.<br \/>Therefore, we need intelligent methods to select features in practice.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-cf244ea e-flex e-con-boxed e-con e-parent\" data-id=\"cf244ea\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-61137c7 elementor-widget elementor-widget-text-editor\" data-id=\"61137c7\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<h2>Genetic algorithms<\/h2><p>One of the most advanced algorithms for <a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/model-selection#InputsSelection\">feature selection<\/a>\u00a0is the <a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/model-selection#GeneticAlgorithm\">genetic algorithm<\/a>.<\/p><p>The genetic algorithm is a stochastic method for function optimization based on natural genetics and biological evolution.<\/p><p>In nature, organisms&#8217; genes tend to evolve over successive generations to better adapt to the environment. The genetic algorithm is a heuristic optimization method inspired by the procedures of natural evolution.<\/p><p>Genetic algorithms operate on a population of individuals to produce better and better approximations.<\/p><p>The algorithm creates a new population every generation by selecting individuals according to their fitness level in the problem domain. These individuals are then recombined together using operators borrowed from natural genetics. The offspring might also undergo mutation.<\/p><p>A state diagram for the <a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/model-selection#InputsSelection\">feature selection<\/a> process with the genetic algorithm is depicted next.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-159d26a e-flex e-con-boxed e-con e-parent\" data-id=\"159d26a\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a6d0fa0 elementor-widget elementor-widget-text-editor\" data-id=\"a6d0fa0\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><img fetchpriority=\"high\" decoding=\"async\" class=\"alignnone\" src=\"https:\/\/www.neuraldesigner.com\/images\/genetic_algorithm.webp\" alt=\"Genetic algorithms state diagram\" width=\"400\" height=\"625\" \/><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-4f58741 e-flex e-con-boxed e-con e-parent\" data-id=\"4f58741\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-eeb54fd elementor-widget elementor-widget-text-editor\" data-id=\"eeb54fd\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>This process leads to the evolution of populations better suited to their environment than the individuals who originated it.<\/p><p>In our case, each individual in the population represents a\u00a0<a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/neural-network\">neural network<\/a>.<\/p><p>Genes here are binary values, representing the inclusion or not of particular features in the model. The number of genes is the total number of <a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/data-set#InputVariables\">input variables<\/a> in the\u00a0<a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/data-set\">data set<\/a>.<\/p><p>The number of individuals, or <em>population size<\/em>, must be chosen for each application. The default value for the population size is 10 N, where N is the number of features. This number must be a multiple of 4.<\/p><p>Next, we describe the operators and the corresponding parameters used by the genetic algorithm in detail.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3c9946e e-flex e-con-boxed e-con e-parent\" data-id=\"3c9946e\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-76c8a99 elementor-widget elementor-widget-text-editor\" data-id=\"76c8a99\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<h2>1. Initialization operator<\/h2><p>The first step is to create and initialize the individuals in the population. Since the genetic algorithm is a stochastic optimization method, we randomly initialize the genes of all individuals.<\/p><p>To illustrate this operator, consider a predictive model represented by a <a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/neural-network\">neural network<\/a>\u00a0with 6 possible features. If we generate four individuals, we have four different neural networks with random features.<\/p><p>The next figure illustrates this population.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b209859 e-flex e-con-boxed e-con e-parent\" data-id=\"b209859\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-24ca35f elementor-widget elementor-widget-text-editor\" data-id=\"24ca35f\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><img decoding=\"async\" src=\"https:\/\/www.neuraldesigner.com\/images\/individuals_network.webp\" alt=\"Genetic algorithm population\" \/><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-8473770 e-flex e-con-boxed e-con e-parent\" data-id=\"8473770\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7304a7e elementor-widget elementor-widget-text-editor\" data-id=\"7304a7e\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>As we can see, each individual is represented by 6 binary genes. Each positive gen means that the corresponding feature is included in the\u00a0<a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/neural-network\">neural network<\/a>.<\/p><p>Another way to activate columns is according to their correlation with the target variable. In this way, we create a probability<br \/>distribution. This distribution is similar to the one created in the selection operator.<\/p><p>This initialization operator causes variables more likely to be the correct ones to be activated at first.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-65cfbe4 e-flex e-con-boxed e-con e-parent\" data-id=\"65cfbe4\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3aaa7ec elementor-widget elementor-widget-text-editor\" data-id=\"3aaa7ec\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<h2>2. Fitness assignment operator<\/h2><p>After the <a href=\"#InitializationOperator\">initialization<\/a>, we need to assign a fitness value to each population member.<\/p><p>We train each <a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/neural-network\">neural network<\/a>\u00a0with the\u00a0<a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/data-set#TrainingInstances\">training instances<\/a> and then evaluate their\u00a0<a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/training-strategy#ErrorTerm\">error<\/a> with the\u00a0<a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/data-set#SelectionInstances\">selection instances<\/a>.<\/p><p>A significant selection error means low fitness. Individuals with higher fitness or lesser selection error are more likely to be selected for recombination.<\/p><p>The most used method for fitness assignment is known as a <em>rank-based fitness assignment<\/em>.<\/p><p>With this method, the\u00a0<a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/training-strategy#ErrorTerm\">selection errors<\/a>\u00a0of all the individuals are sorted.<\/p><p>Then, the fitness assigned to each individual only depends on its position in the individual&#8217;s rank and not on the actual selection error.<\/p><p>The fitness value assigned to each individual with the rank-based method is:<\/p><p>$$\\Phi(i) = R(i) \\qquad where \\quad i = 1,&#8230;,N.$$<\/p><p>Here, the parameter R(i) is the rank of individual i. We can then calculate the probability of being selected based on the fitness assigned to each individual. The probability of each individual to be selected it can be calculated with the following expression:<\/p><p>$$\\displaystyle P_i=\\dfrac{R(i)}{\\sum_{j=1}^N j}$$<\/p><p>The following table depicts the selection error, the rank, and the corresponding probability of being selected (fitness) of each individual in our example.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c202062 e-flex e-con-boxed e-con e-parent\" data-id=\"c202062\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ca132e8 elementor-widget elementor-widget-text-editor\" data-id=\"ca132e8\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>\u00a0<\/p><table><tbody><tr><th>\u00a0<\/th><th>Selection error<\/th><th>Rank<\/th><th>Probability<\/th><\/tr><tr><th>Individual 1<\/th><td>0.9<\/td><td>1<\/td><td>0.1<\/td><\/tr><tr><th>Individual 2<\/th><td>0.6<\/td><td>3<\/td><td>0.3<\/td><\/tr><tr><th>Individual 3<\/th><td>0.7<\/td><td>2<\/td><td>0.2<\/td><\/tr><tr><th>Individual 4<\/th><td>0.5<\/td><td>4<\/td><td>0.4<\/td><\/tr><\/tbody><\/table><p>\u00a0<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f46d2de e-flex e-con-boxed e-con e-parent\" data-id=\"f46d2de\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b3d010e elementor-widget elementor-widget-text-editor\" data-id=\"b3d010e\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>We can plot the above fitness values in a pie chart. Here, the area for each individual in the pie is proportional to its fitness.<br \/>The following picture shows the fitness pie.<\/p><p><img decoding=\"async\" style=\"width: 50%; height: 50%;\" src=\"https:\/\/www.neuraldesigner.com\/images\/pie_chart.webp\" alt=\"Genetic algorithm fitness pie chart\" \/><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-cf7f0f1 e-flex e-con-boxed e-con e-parent\" data-id=\"cf7f0f1\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-bc02da9 elementor-widget elementor-widget-text-editor\" data-id=\"bc02da9\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>As we can see, the fittest individual (#4) is the one who has the most significant area (40%). Conversely, the least fitted individual (#1) has the smallest area (10%).<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6076772 e-flex e-con-boxed e-con e-parent\" data-id=\"6076772\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-16e74b1 elementor-widget elementor-widget-text-editor\" data-id=\"16e74b1\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<section id=\"FitnessAssignmentOperator\"><\/section><section id=\"SelectionOperator\"><h2>3. Selection operator<\/h2><p>After a <a href=\"#FitnessAssignmentOperator\">fitness assignment<\/a> has been performed, the selection operator chooses the individuals that recombine for the next generation.<\/p><p>The individuals most likely to survive are those more fitted to the environment. Therefore, the selection operator selects the individuals according to their fitness level. The number of selected individuals is N\/2, being N the population size.<\/p><p><em>Elitist selection<\/em> makes the fittest individuals survive directly for the next generation. The elitism size controls the number of directly selected individuals, and it is usually set to a small value (1,2,&#8230;).<\/p><p>One of the most used selection methods is the <em>roulette wheel<\/em>. This method places all the individuals on a roulette, with areas proportional to their fitness, as we saw above. Then, it turns the roulette and selects the individuals at random. The corresponding individual is selected for recombination.<\/p><p>The following figure illustrates the selection process for our example.<\/p><p><img decoding=\"async\" style=\"width: 30%; height: 30%;\" src=\"https:\/\/www.neuraldesigner.com\/images\/roulette_selection.webp\" alt=\"Genetic algorithm selection\" \/><\/p><\/section>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b2173f5 e-flex e-con-boxed e-con e-parent\" data-id=\"b2173f5\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-44737bd elementor-widget elementor-widget-text-editor\" data-id=\"44737bd\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>In this case,\u00a0<a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/neural-network\">neural network<\/a>\u00a0#4 has been selected by elitism, and #3 has been selected by the roulette wheel. Note that, although individual #2 has more fitness than #3, it has not been selected due to the stochastic nature of the genetic algorithm.<\/p><p>Here, the number of selected individuals is half of the population size.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-805d918 e-flex e-con-boxed e-con e-parent\" data-id=\"805d918\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-bd27c20 elementor-widget elementor-widget-text-editor\" data-id=\"bd27c20\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<section id=\"SelectionOperator\"><h3>4. Crossover operator<\/h3><\/section><section id=\"CrossoverOperator\"><p>Once the <a href=\"#SelectionOperator\">selection operator<\/a> has chosen half of the population, the crossover operator recombines the selected individuals to generate a new population.<\/p><p>This operator picks two individuals randomly from the previously selected and combines their features to get four offspring for the new population until the new population is the same size as the old one.<\/p><p>The <em>uniform crossover<\/em> method decides whether each offspring&#8217;s features come from one parent or another.<\/p><p>The following figure illustrates the uniform crossover method for our example.<\/p><p><img decoding=\"async\" src=\"https:\/\/www.neuraldesigner.com\/images\/crossover.webp\" alt=\"Genetic algorithm crossover\" \/><\/p><\/section>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-a7fb988 e-flex e-con-boxed e-con e-parent\" data-id=\"a7fb988\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3e380ac elementor-widget elementor-widget-text-editor\" data-id=\"3e380ac\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Here we have generated four offspring from two parents. Some features of each\u00a0<a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/neural-network\">neural network<\/a> correspond to one ancestor and others to the other.<\/p><p>In this case, the parents are directly replaced by the offspring. In this way, the population size remains constant.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-e0a81fb e-flex e-con-boxed e-con e-parent\" data-id=\"e0a81fb\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ef6d05c elementor-widget elementor-widget-text-editor\" data-id=\"ef6d05c\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<section id=\"CrossoverOperator\"><h3>5. Mutation operator<\/h3><\/section><section id=\"MutationOperator\"><p>The <a href=\"#CrossoverOperator\">crossover operator<\/a> can generate offspring that are very similar to the parents. This might cause a new generation with low diversity.<\/p><p>The mutation operator solves this problem by randomly changing the value of some features in the offspring.<\/p><p>We generate a random number between 0 and 1 to decide if a feature is mutated. If the random number is lower than the mutation rate value, the operator flips that variable.<\/p><p>A standard value for the mutation rate is $dfrac{1}{m}$, where $m$ is the number of features. We mutate one feature of each individual (statistically) with that value.<\/p><p>The following image shows the mutation of one offspring of the new generation.<\/p><p><img decoding=\"async\" src=\"https:\/\/www.neuraldesigner.com\/images\/mutation.webp\" alt=\"Genetic algorithm mutation\" \/><\/p><\/section>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-48fe352 e-flex e-con-boxed e-con e-parent\" data-id=\"48fe352\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6abcc7a elementor-widget elementor-widget-text-editor\" data-id=\"6abcc7a\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>As we can see, the fourth input of the\u00a0<a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/neural-network\">neural network<\/a>\u00a0has been mutated.<\/p><p>At this point, we have a new population.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-a9337a7 e-flex e-con-boxed e-con e-parent\" data-id=\"a9337a7\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-05377ff elementor-widget elementor-widget-text-editor\" data-id=\"05377ff\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<section id=\"MutationOperator\"><h3>Process and results<\/h3><\/section><section id=\"ProcessAndResults\"><p>The whole\u00a0<a href=\"https:\/\/www.neuraldesigner.com\/blog\/genetic_algorithms_for_feature_selection#FitnessAssignmentOperator\">fitness assignment<\/a>,\u00a0<a href=\"https:\/\/www.neuraldesigner.com\/blog\/genetic_algorithms_for_feature_selection#SelectionOperator\">selection<\/a>,\u00a0<a href=\"https:\/\/www.neuraldesigner.com\/blog\/genetic_algorithms_for_feature_selection#RecombinationOperator\">recombination<\/a>, and <a href=\"https:\/\/www.neuraldesigner.com\/blog\/genetic_algorithms_for_feature_selection#MutationOperator\">mutation<\/a>\u00a0process is repeated until a stopping criterion is satisfied.<br \/>Each generation will likely adapt more to the environment than the old one.<\/p><p>This chart shows the typical behavior of the mean <a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/training-strategy#ErrorTerm\">selection error<\/a>\u00a0and the best <a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/training-strategy#ErrorTerm\">selection error<\/a>\u00a0through generations. The example used is <a href=\"https:\/\/www.neuraldesigner.com\/learning\/examples\/breast-cancer-mortality\"> Breast Cancer Mortality example<\/a> available in the blog.<\/p><p><img decoding=\"async\" style=\"width: 45%; height: 45%;\" src=\"https:\/\/www.neuraldesigner.com\/images\/selection_errors.webp\" alt=\"Genetic algorithm typical behavior\" \/><\/p><\/section>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-378f829 e-flex e-con-boxed e-con e-parent\" data-id=\"378f829\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-dc2a269 elementor-widget elementor-widget-text-editor\" data-id=\"dc2a269\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>As we can see, the mean selection error at each generation converges to a minimum value.<\/p><p>The solution to this process is the best individual ever. This corresponds to the\u00a0<a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/neural-network\">neural network<\/a>\u00a0with the smallest\u00a0<a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/training-strategy#ErrorTerm\">selection error<\/a>\u00a0among all those we have analyzed.<\/p><p>In our example, the best individual is the following:<\/p><p><img decoding=\"async\" style=\"width: 500px;\" src=\"https:\/\/www.neuraldesigner.com\/images\/best_individual.webp\" alt=\"Genetic algorithm best individual\" \/><\/p><p>The above\u00a0<a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/neural-network\">neural network<\/a>\u00a0is the selected one for our application.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-8b2f995 e-flex e-con-boxed e-con e-parent\" data-id=\"8b2f995\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-173656d elementor-widget elementor-widget-text-editor\" data-id=\"173656d\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<section id=\"ProcessAndResults\"><h3>Conclusions<\/h3><\/section><section id=\"Conclusions\"><p><a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/model-selection#InputsSelection\">Input selection<\/a>\u00a0is becoming a critical topic in machine learning. Many <a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/data-set\">data sets<\/a> contain many <a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/data-set#InputVariables\">features<\/a>, so we need to select the most useful ones to be included in the <a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/neural-network\">neural network<\/a>.<\/p><p>One of the most advanced methods to do that is the\u00a0<a href=\"https:\/\/www.neuraldesigner.com\/learning\/tutorials\/model-selection#GeneticAlgorithm\">genetic algorithm<\/a>.<\/p><p>Some advantages of genetic algorithms are the following:<\/p><ul><li>They usually perform better than traditional feature selection techniques.<\/li><li>Genetic algorithms can manage data sets with many features.<\/li><li>They don&#8217;t need specific knowledge about the problem under study.<\/li><li>These algorithms can be easily parallelized in computer clusters.<\/li><\/ul><\/section>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-77281f8 e-flex e-con-boxed e-con e-parent\" data-id=\"77281f8\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5c43ccf elementor-widget elementor-widget-text-editor\" data-id=\"5c43ccf\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<section id=\"Conclusions\"><p>Some disadvantages are:<\/p><ul><li>Genetic Algorithms might be costly in computational terms.<br \/>Indeed, the evaluation of each individual requires training a model.<\/li><li>These algorithms can take a long time to converge since they are stochastic.<\/li><\/ul><p>In conclusion, genetic algorithms can select the best subset of our model&#8217;s variables but usually require much computation.<\/p><p><a href=\"https:\/\/www.neuraldesigner.com\">Neural Designer<\/a> implements a more advanced genetic algorithm than the one described in this post.<br \/>You can find it in the <em>input selection<\/em> section in the <em>model selection<\/em> panel.<\/p><p><img decoding=\"async\" src=\"https:\/\/www.neuraldesigner.com\/images\/neural-designer-genetic-algorithm.webp\" alt=\"Neural Designer has a powerful genetic algorithm model selection\" \/><\/p><\/section><section><h2>\u00a0<\/h2><\/section>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e37dcfe elementor-widget elementor-widget-text-editor\" data-id=\"e37dcfe\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><b>Ready to apply feature selection with genetic algorithms to your own projects?<\/b> Download Neural Designer and put these advanced concepts into practice without complex coding<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-acac3f3 e-con-full e-flex e-con e-child\" data-id=\"acac3f3\" data-element_type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-a276ef6 e-con-full e-flex e-con e-child\" data-id=\"a276ef6\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fb3445b elementor-widget__width-initial boton_descarga elementor-widget-mobile__width-initial elementor-align-center elementor-widget elementor-widget-button\" data-id=\"fb3445b\" data-element_type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/www.neuraldesigner.com\/downloads\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-download\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z\"><\/path><\/svg>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Download<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c593922 e-con-full e-flex e-con e-child\" data-id=\"c593922\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5f73ed6 elementor-widget elementor-widget-text-editor\" data-id=\"5f73ed6\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<h3>Related posts<\/h3>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"author":21,"featured_media":2127,"template":"","categories":[],"tags":[36],"class_list":["post-3390","blog","type-blog","status-publish","has-post-thumbnail","hentry","tag-tutorials"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Genetic algorithms for feature selection in machine learning<\/title>\n<meta name=\"description\" content=\"In machine learning, many data sets contain many features, the genetic algorithms are one of the most advanced for feature selection.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.neuraldesigner.com\/blog\/genetic_algorithms_for_feature_selection\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Genetic algorithms for feature selection in machine learning\" \/>\n<meta property=\"og:description\" content=\"In machine learning, many data sets contain many features, the genetic algorithms are one of the most advanced for feature selection.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.neuraldesigner.com\/blog\/genetic_algorithms_for_feature_selection\/\" \/>\n<meta property=\"og:site_name\" content=\"Neural Designer\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-16T12:00:28+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/06\/genetic-algorithm-blog.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@NeuralDesigner\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.neuraldesigner.com\/blog\/genetic_algorithms_for_feature_selection\/\",\"url\":\"https:\/\/www.neuraldesigner.com\/blog\/genetic_algorithms_for_feature_selection\/\",\"name\":\"Genetic algorithms for feature selection in machine learning\",\"isPartOf\":{\"@id\":\"https:\/\/www.neuraldesigner.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.neuraldesigner.com\/blog\/genetic_algorithms_for_feature_selection\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.neuraldesigner.com\/blog\/genetic_algorithms_for_feature_selection\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/06\/genetic-algorithm-blog.webp\",\"datePublished\":\"2025-06-29T10:07:34+00:00\",\"dateModified\":\"2025-12-16T12:00:28+00:00\",\"description\":\"In machine learning, many data sets contain many features, the genetic algorithms are one of the most advanced for feature selection.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.neuraldesigner.com\/blog\/genetic_algorithms_for_feature_selection\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.neuraldesigner.com\/blog\/genetic_algorithms_for_feature_selection\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.neuraldesigner.com\/blog\/genetic_algorithms_for_feature_selection\/#primaryimage\",\"url\":\"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/06\/genetic-algorithm-blog.webp\",\"contentUrl\":\"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/06\/genetic-algorithm-blog.webp\",\"width\":1200,\"height\":628},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.neuraldesigner.com\/blog\/genetic_algorithms_for_feature_selection\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.neuraldesigner.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https:\/\/www.neuraldesigner.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Genetic algorithms for feature selection in machine learning\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.neuraldesigner.com\/#website\",\"url\":\"https:\/\/www.neuraldesigner.com\/\",\"name\":\"Neural Designer\",\"description\":\"Explanable AI Platform\",\"publisher\":{\"@id\":\"https:\/\/www.neuraldesigner.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.neuraldesigner.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.neuraldesigner.com\/#organization\",\"name\":\"Neural Designer\",\"url\":\"https:\/\/www.neuraldesigner.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.neuraldesigner.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/05\/logo-neural-1.png\",\"contentUrl\":\"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/05\/logo-neural-1.png\",\"width\":1024,\"height\":223,\"caption\":\"Neural Designer\"},\"image\":{\"@id\":\"https:\/\/www.neuraldesigner.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/NeuralDesigner\",\"https:\/\/es.linkedin.com\/showcase\/neuraldesigner\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Genetic algorithms for feature selection in machine learning","description":"In machine learning, many data sets contain many features, the genetic algorithms are one of the most advanced for feature selection.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.neuraldesigner.com\/blog\/genetic_algorithms_for_feature_selection\/","og_locale":"en_US","og_type":"article","og_title":"Genetic algorithms for feature selection in machine learning","og_description":"In machine learning, many data sets contain many features, the genetic algorithms are one of the most advanced for feature selection.","og_url":"https:\/\/www.neuraldesigner.com\/blog\/genetic_algorithms_for_feature_selection\/","og_site_name":"Neural Designer","article_modified_time":"2025-12-16T12:00:28+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/06\/genetic-algorithm-blog.webp","type":"image\/webp"}],"twitter_card":"summary_large_image","twitter_site":"@NeuralDesigner","twitter_misc":{"Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.neuraldesigner.com\/blog\/genetic_algorithms_for_feature_selection\/","url":"https:\/\/www.neuraldesigner.com\/blog\/genetic_algorithms_for_feature_selection\/","name":"Genetic algorithms for feature selection in machine learning","isPartOf":{"@id":"https:\/\/www.neuraldesigner.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.neuraldesigner.com\/blog\/genetic_algorithms_for_feature_selection\/#primaryimage"},"image":{"@id":"https:\/\/www.neuraldesigner.com\/blog\/genetic_algorithms_for_feature_selection\/#primaryimage"},"thumbnailUrl":"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/06\/genetic-algorithm-blog.webp","datePublished":"2025-06-29T10:07:34+00:00","dateModified":"2025-12-16T12:00:28+00:00","description":"In machine learning, many data sets contain many features, the genetic algorithms are one of the most advanced for feature selection.","breadcrumb":{"@id":"https:\/\/www.neuraldesigner.com\/blog\/genetic_algorithms_for_feature_selection\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.neuraldesigner.com\/blog\/genetic_algorithms_for_feature_selection\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.neuraldesigner.com\/blog\/genetic_algorithms_for_feature_selection\/#primaryimage","url":"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/06\/genetic-algorithm-blog.webp","contentUrl":"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/06\/genetic-algorithm-blog.webp","width":1200,"height":628},{"@type":"BreadcrumbList","@id":"https:\/\/www.neuraldesigner.com\/blog\/genetic_algorithms_for_feature_selection\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.neuraldesigner.com\/"},{"@type":"ListItem","position":2,"name":"Blog","item":"https:\/\/www.neuraldesigner.com\/blog\/"},{"@type":"ListItem","position":3,"name":"Genetic algorithms for feature selection in machine learning"}]},{"@type":"WebSite","@id":"https:\/\/www.neuraldesigner.com\/#website","url":"https:\/\/www.neuraldesigner.com\/","name":"Neural Designer","description":"Explanable AI Platform","publisher":{"@id":"https:\/\/www.neuraldesigner.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.neuraldesigner.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.neuraldesigner.com\/#organization","name":"Neural Designer","url":"https:\/\/www.neuraldesigner.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.neuraldesigner.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/05\/logo-neural-1.png","contentUrl":"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/05\/logo-neural-1.png","width":1024,"height":223,"caption":"Neural Designer"},"image":{"@id":"https:\/\/www.neuraldesigner.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/NeuralDesigner","https:\/\/es.linkedin.com\/showcase\/neuraldesigner\/"]}]}},"_links":{"self":[{"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/blog\/3390","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/users\/21"}],"version-history":[{"count":21,"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/blog\/3390\/revisions"}],"predecessor-version":[{"id":21646,"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/blog\/3390\/revisions\/21646"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/media\/2127"}],"wp:attachment":[{"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/media?parent=3390"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/categories?post=3390"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/tags?post=3390"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}