<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=CN2_algorithm</id>
	<title>CN2 algorithm - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=CN2_algorithm"/>
	<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=CN2_algorithm&amp;action=history"/>
	<updated>2026-10-26T12:47:14Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=CN2_algorithm&amp;diff=4063606&amp;oldid=prev</id>
		<title>imported&gt;Fadesga: /* External links */</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=CN2_algorithm&amp;diff=4063606&amp;oldid=prev"/>
		<updated>2025-06-26T18:55:13Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;External links&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Refimprove|date=September 2012}}&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;CN2 induction algorithm&amp;#039;&amp;#039;&amp;#039; is a [[Algorithmic learning theory|learning algorithm]] for [[rule induction]].&amp;lt;ref&amp;gt;Clark, P. and Niblett, T (1989) The CN2 induction algorithm. Machine Learning 3(4):261-283.&amp;lt;/ref&amp;gt; It is designed to work even when the training data is imperfect. It is based on ideas from the [[AQ algorithm]] and the [[ID3 algorithm]]. As a consequence it creates a rule set like that created by AQ but is able to handle noisy data like ID3.&lt;br /&gt;
&lt;br /&gt;
==Description of algorithm==&lt;br /&gt;
The algorithm must be given a set of examples, TrainingSet, which have already been classified in order to generate a list of classification rules. A set of conditions, SimpleConditionSet, which can be applied, alone or in combination, to any set of examples is predefined to be used for the classification.&lt;br /&gt;
&lt;br /&gt;
 routine CN2(TrainingSet)&lt;br /&gt;
    let the ClassificationRuleList be empty&lt;br /&gt;
    repeat&lt;br /&gt;
       let the BestConditionExpression be Find_BestConditionExpression(TrainingSet)&lt;br /&gt;
       if the BestConditionExpression is not nil&lt;br /&gt;
          then&lt;br /&gt;
             let the TrainingSubset be the examples covered by the BestConditionExpression&lt;br /&gt;
             remove from the TrainingSet the examples in the TrainingSubset&lt;br /&gt;
             let the MostCommonClass be the most common class of examples in the TrainingSubset&lt;br /&gt;
             append to the ClassificationRuleList the rule&lt;br /&gt;
                &amp;#039;if &amp;#039; the BestConditionExpression &amp;#039; then the class is &amp;#039; the MostCommonClass&lt;br /&gt;
    until the TrainingSet is empty or the BestConditionExpression is nil&lt;br /&gt;
 return the ClassificationRuleList&lt;br /&gt;
&lt;br /&gt;
 routine Find_BestConditionExpression(TrainingSet)&lt;br /&gt;
    let the ConditionalExpressionSet be empty&lt;br /&gt;
    let the BestConditionExpression be nil&lt;br /&gt;
    repeat&lt;br /&gt;
       let the TrialConditionalExpressionSet be the set of conditional expressions,&lt;br /&gt;
          {x and y where x belongs to the ConditionalExpressionSet and y belongs to the SimpleConditionSet}.&lt;br /&gt;
       remove all formulae in the TrialConditionalExpressionSet that are either in the ConditionalExpressionSet (i.e.,&lt;br /&gt;
           the unspecialized ones) or null (e.g., big = y and big = n)&lt;br /&gt;
       for every expression, F, in the TrialConditionalExpressionSet&lt;br /&gt;
          if&lt;br /&gt;
             F is statistically significant&lt;br /&gt;
                and F is better than the BestConditionExpression&lt;br /&gt;
                by user-defined criteria when tested on the TrainingSet&lt;br /&gt;
             then&lt;br /&gt;
                replace the current value of the BestConditionExpression by F&lt;br /&gt;
       while the number of expressions in the TrialConditionalExpressionSet &amp;gt; user-defined maximum&lt;br /&gt;
          remove the worst expression from the TrialConditionalExpressionSet&lt;br /&gt;
       let the ConditionalExpressionSet be the TrialConditionalExpressionSet&lt;br /&gt;
    until the ConditionalExpressionSet is empty&lt;br /&gt;
 return the BestConditionExpression&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* [https://doi.org/10.1023%2FA%3A1022641700528  CN2 Algorithm Description]&lt;br /&gt;
&lt;br /&gt;
[[Category:Machine learning algorithms]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{algorithm-stub}}&lt;br /&gt;
{{machine-learning-stub}}&lt;/div&gt;</summary>
		<author><name>imported&gt;Fadesga</name></author>
	</entry>
</feed>