{"title":"Feature Selection Loop Start (2:2)","nodeType":"LoopStart","id":"*CWfQVO4NqhMqtpUJ","factoryName":"org.knime.base.node.meta.feature.selection.FeatureSelectionLoopStartNodeFactory2","factoryId":"org.knime.base.node.meta.feature.selection.FeatureSelectionLoopStartNodeFactory2","path":["Analytics","Mining","Feature Selection"],"owner":"knime","ownerAccountId":"account:team:b5f0848f-496d-4e6a-b869-fa3532248db7","description":"<p>This node is the start of the feature selection loop. The feature selection loop allows you to select, from all the features in the input data set, the subset of features that is best for model construction. With this node you determine (i) which features/columns are to be held fixed in the selection process. These constant or &#34;static&#34; features/columns are included in each loop iteration and are exempt from elimination; (ii) which selection strategy is to be used on the other (variable) features/columns and its settings; and (iii) the specific settings of the selected strategy. This node has two in and out ports. The respective first port is intended for training data and the second port for test data. The same filter is applied to both tables and they will therefore always contain the same columns.\n <br />\n <br />\n The following feature selection strategies are available:\n <br /></p><ul><li><b>Forward Feature Selection</b> is an iterative approach. It starts with having no feature selected. In each iteration, the feature that improves the model the most is added to the feature set.</li><li><b>Backward Feature Elimination</b> is an iterative approach. It starts with having all features selected. In each iteration, the feature that has on its removal the least impact on the models performance is removed.</li><li><b>Genetic Algorithm</b> is a stochastic approach that bases its optimization on the mechanics of biological evolution and genetics. Similar to natural selection, different solutions (individuals) are carried and mutated from generation to generation based on their performance (fitness). This approach converges into a local optimum and enabling early stopping might be recommended. See, e.g., <a href=\"https://en.wikipedia.org/wiki/Genetic_algorithm\" rel=\"ugc nofollow noopener noreferrer\">this article</a> for more insights.</li><li><b>Random</b> is a simple approach that selects feature combinations randomly. There is no converging and by chance (one of) the best feature combination will be drawn in an early iteration, so that early stopping might be recommended.</li></ul>\n            \n        \n        ","shortDescription":"Start node for a feature selection loop","keywords":[],"deprecated":false,"streamable":false,"tags":["Analytics","Mining","Feature Selection"],"icon":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAJoSURBVDiNpZFdSFNxHIbf3/mfD+c2dZvzYyPmTLMpOdSUMkqim0CIxJuCkiCKKOjCC++TICjoougm8roMJCLpRouMDD/KCzMSMzB1buK25j6O29nZ+XchgpAi5HP/PPDyEuccW5isit/hLrxd4DQ3uGqcFZIiCrqW0zOqpgVm1+aigfXHsdXkK6fH9iCnGxOR5Vg/cc5BRFTqtT+sa6u8XNPqcSxMB5PRQDy2EU+n9GwuZXcVuGpPecuigbg68+HXQlO7r+pd32R/cD7cRQBM7W1e1XG2BuHpIEyrSWNwbLF18EbLSL7MAACRlJa59PzbcGtHU4fvtJsA4EtfzPg4/JYJAGhDN/B76CcuWmR0t7iz6ZQ2ni8zBYACQHGYZUVg5BEYyMgZm3slTQAAkXOujvScRDprwJonYjf+hBJHb3U945NPByCWxKFqaRCRIgKAxARITNhV3sJT5oenzI9kKorx2AsAU/Le1g5YzHacabwJznnivwLb2X+AiJz7CpRU2AZ6JwMYmo/A4HsL/wQkRQzVXm3BfL0bd6eCeP1jjRHRrn8a3MCb8Tt4OdqNohJLvZDN6CvZtA5nlQPeziMYXoozJjH3TnLO0DE40Yvq8wx5dgOiLFpFbSM7k4ioEGUGgXMUFigoKDafMziHQAQAiCQ1ch1yPvFW+uDrtGN2KIzG4mv4tHxllAAcq/OXf26wm4yAxITaC36KBuLa2tiiLBDAQZBtJn7gRAWF5tax8jWD4wevw+U4jJ77zUTYvNLGOY8QkbO8uvheUamlWTHLViYKgigxIaNqmfDS+vdYKPEoEVXfb5/1F4/s8ynWC9+cAAAAAElFTkSuQmCC","views":[],"inPorts":[{"objectClass":"org.knime.core.node.BufferedDataTable","color":"000000","dataType":"Table","optional":false,"name":"Table containing features and constant columns","description":"A data table containing all features and static columns needed for the feature selection. (Trainingdata)"},{"objectClass":"org.knime.core.node.BufferedDataTable","color":"000000","dataType":"Table","optional":false,"name":"Table with same structure as the first one","description":"A data table containing all features and static columns needed for the feature selection. (Testdata)"}],"outPorts":[{"objectClass":"org.knime.core.node.BufferedDataTable","color":"000000","dataType":"Table","optional":false,"name":"Filtered table","description":"The input table with some columns filtered out. (Training data)"},{"objectClass":"org.knime.core.node.BufferedDataTable","color":"000000","dataType":"Table","optional":false,"name":"Filtered table","description":"The input table with some columns filtered out. (Test data)"}],"dynInPorts":[],"dynOutPorts":[],"additionalSiteInformation":{"url":"https://update.knime.com/analytics-platform/5.12","trusted":true,"enabledByDefault":true,"name":"KNIME Analytics Platform 5.12 Update Site","version":"5.12.0"},"dialog":[{"sectionName":"Options","fields":[{"name":"Static and variable features","description":"Columns can be selected manually or by means of regular expressions. The columns in the left pane are the static columns, those in the right pane the variable columns. If you want to learn a supervised model (e.g. classification or regression), at least one static column and more than one variable column will be needed. For an unsupervised model (e.g. clustering), no constant column but only variable columns will be needed. Columns can be moved from one pane to the other by clicking on the appropriate button in the middle.","optional":false},{"name":"Feature selection strategy","description":"Here you can choose between the selection strategies: Forward Feature Selection, Backward Feature Elimination, <a href=\"https://en.wikipedia.org/wiki/Genetic_algorithm\" rel=\"ugc nofollow noopener noreferrer\">Genetic Algorithm</a> and Random.","optional":false},{"name":"Threshold for number of features","description":"[Forward Feature Selection, Backward Feature Elimination] Check this option if you want to set a bound for the number of selected features. Since Forward Feature Selection adds features while Backward Feature Elimination subtracts them, this will be an upper bound for Forward Feature Selection and a lower bound for Backward Feature Elimination.","optional":false},{"name":"Lower bound for number of features","description":"[Genetic Algorithm, Random] Check this option if you want to set a lower bound for the number of selected features.","optional":false},{"name":"Upper bound for number of features","description":"[Genetic Algorithm, Random] Check this option if you want to set an upper bound for the number of selected features.","optional":false},{"name":"Population size","description":"[Genetic Algorithm] Set the number of individuals in each population. Changing this value directly influences the maximal number of loop iterations which is <i>Population size * (Number of generations &#43; 1) </i> . This is just an upper bound, usually less iterations will be necessary.","optional":false},{"name":"Max. number of generations","description":"[Genetic Algorithm] Set the number of generations. Changing this value directly influences the maximal number of loop iterations which is <i>Population size * (Number of generations &#43; 1)</i> . This is just an upper bound, usually less iterations will be necessary.","optional":false},{"name":"Max. number of iterations","description":"[Random] Set the number of iterations. This is an upper bound. If the same feature subset is randomly generated for a second time, it won&#39;t be processed again but will be counted as iteration. Furthermore, if early stopping is enabled, the algorithm may stop before the max. number of iterations is reached.","optional":false},{"name":"Use static random seed","description":"[Genetic Algorithm, Random] Choose a seed to get reproducible results.","optional":false},{"name":"Random seed","description":"The random seed value for reproducible results.","optional":false},{"name":"Selection strategy","description":"[Genetic Algorithm] Choose the strategy to use for the <a href=\"https://en.wikipedia.org/wiki/Selection_%28genetic_algorithm%29\" rel=\"ugc nofollow noopener noreferrer\">selection of offspring</a> .","optional":false},{"name":"Fraction of survivors","description":"[Genetic Algorithm] Set the fraction of survivors during evaluation of the next generation. <i>1 - fraction of survivors</i> defines the fraction of offspring which is evaluated for the next generation.","optional":false},{"name":"Elitism rate","description":"[Genetic Algorithm] Set the fraction of the best individuals within a generation that are transferred to the next generation without alternation.","optional":false},{"name":"Crossover strategy","description":"[Genetic Algorithm] Choose the strategy to use for <a href=\"https://en.wikipedia.org/wiki/Crossover_%28genetic_algorithm%29\" rel=\"ugc nofollow noopener noreferrer\"> crossover</a> .","optional":false},{"name":"Crossover rate","description":"[Genetic Algorithm] Set the crossover rate used to alter offspring.","optional":false},{"name":"Mutation rate","description":"[Genetic Algorithm] Set the mutation rate used to alter offspring.","optional":false},{"name":"Number of generations without improvement","description":"[Genetic Algorithm] Check this option if you want to enable early stopping which means that the algorithm stops after a specified number of generations without improvement. This is based on a moving average whereby the size of the moving window is the same number as the specified number of iterations.","optional":false},{"name":"Number of iterations without improvement","description":"[Random] Check this option if you want to enable early stopping which means that the algorithm stops after a specified number of iterations without improvement. This is based on a moving average whereby the size of the moving window is the same number as the specified number of iterations.","optional":false},{"name":"Tolerance","description":"[Random] Check this option if you want to enable early stopping which means that the algorithm stops after a specified number of iterations without improvement. If the ratio of improvement is lower than a specified tolerance, the search stops.","optional":false}]}],"links":[{"text":"KNIME Flow Control Guide: Section Loops","url":"https://docs.knime.com/latest/analytics_platform_flow_control_guide/index.html#loops"}],"kudos":[],"kudosCount":0,"bundleInformation":{"bundleVersion":"5.12.0.v202606261225","bundleName":"KNIME Base Nodes","bundleSymbolicName":"org.knime.base","bundleVendor":"KNIME AG, Zurich, Switzerland","featureSymbolicName":"org.knime.features.base","featureName":"KNIME Base nodes","featureVersion":"5.12.0.v202606261225","featureVendor":"KNIME AG, Zurich, Switzerland","extensionId":"*bjR3r1yWOznPIEXS"},"frequentSuccessors":[{"id":"*g9kQ4icd1YZR9cjQ","factoryName":"org.knime.ext.h2o.nodes.table2frame.H2OTableToFrameNodeFactory","probability":0.25},{"id":"*hS9r1NhUrO5Ds6UJ","factoryName":"org.knime.base.node.mine.treeensemble2.node.learner.classification.TreeEnsembleClassificationLearnerNodeFactory2","probability":0.125},{"id":"*IfVMh6WXpGwR09zy","factoryName":"org.knime.base.node.meta.feature.selection.FeatureSelectionFilterNodeFactory","probability":0.125},{"id":"*lISJ_edcE_TG6MVp","factoryName":"org.knime.base.node.mine.bayes.naivebayes.predictor3.NaiveBayesPredictorNodeFactory2","probability":0.125},{"id":"*s4qaF52Z5yh9ASTw","factoryName":"org.knime.ext.weka37.classifier.WekaClassifierNodeFactory:a0b9223","probability":0.125},{"id":"*T2WZJU7jOfyFDtl6","factoryName":"org.knime.base.node.mine.decisiontree2.learner2.DecisionTreeLearnerNodeFactory3","probability":0.125},{"id":"*wa3Cexa-0Df6kyDj","factoryName":"org.knime.base.node.mine.knn.KnnNodeFactory","probability":0.125}]}
