<p dir="auto">Right now Scikit-Learn provides several <a href="http://scikit-learn.org/stable/modules/naive_bayes.html" rel="nofollow">Naive Bayes models</a>.</p>
<ul dir="auto">
<li><code class="notranslate">GaussianNB</code>: For continuous features that are assumed to be Gaussian distributed.</li>
<li><code class="notranslate">MultinomialNB</code>: For discreet features that are multinomially distributed, e.g. counts of words of occurrences</li>
<li><code class="notranslate">BernoulliNB</code>: For indicator features (True/False) which are assumed to be Bernoulli distributed</li>
</ul>
<p dir="auto">The obvious thing that is missing is a variant for categorical features like color for instance. It is of course possible to use dummy encoding to transform a categorical feature into indicator features for each category but this breaks the categorical correlation. If a car is red, it obviously isn't green and yellow.</p>
<p dir="auto">So long story short, are there any plans to add a <code class="notranslate">CategoricalNB</code>? Would you like to see a PR? Or am I missing here something obvious?</p>
<p dir="auto">Random Forest is a popular classification technique; recent benchmarks [1][2] have shown that performance of sklearn's RandomForestClassifier is inferior to competing software implementations.</p>
<p dir="auto">The performance penalty most likely stems from the underlying tree building procedure, however, changes here require considerable effort. These changes include:</p>
<ul dir="auto">
<li>Better representations for data set partitions (currently we use a bit mask)</li>
</ul>
<p dir="auto">Some low-hanging fruits may be found in the forest module itself:</p>
<ul dir="auto">
<li>Sampling w/ replacement requires memory copies and re-computation of X_argsorted -&gt; this can be mitigated by introducing sample weights (see <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2706412" data-permission-text="Title is private" data-url="https://github.com/scikit-learn/scikit-learn/issues/522" data-hovercard-type="pull_request" data-hovercard-url="/scikit-learn/scikit-learn/pull/522/hovercard" href="https://github.com/scikit-learn/scikit-learn/pull/522">#522</a>)</li>
</ul>
<p dir="auto">[1] <a href="http://continuum.io/blog/wiserf-use-cases-and-benchmarks" rel="nofollow">http://continuum.io/blog/wiserf-use-cases-and-benchmarks</a><br>
[2] <a href="http://wise.io/wiserf.html" rel="nofollow">http://wise.io/wiserf.html</a></p>