<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.14">
  <compounddef id="classforpy_1_1_classification_opt" kind="class" language="C++" prot="public">
    <compoundname>forpy::ClassificationOpt</compoundname>
    <basecompoundref refid="classforpy_1_1_i_thresh_opt" prot="public" virt="non-virtual">forpy::IThreshOpt</basecompoundref>
    <derivedcompoundref refid="classforpy_1_1_fast_class_opt" prot="public" virt="non-virtual">forpy::FastClassOpt</derivedcompoundref>
    <includes refid="classification__opt_8h" local="no">classification_opt.h</includes>
      <sectiondef kind="user-defined">
      <memberdef kind="function" id="classforpy_1_1_classification_opt_1a45d1b3e24b9a084d5a36e006a2241c9f" prot="public" static="no" const="yes" explicit="no" inline="yes" virt="virtual">
        <type>std::shared_ptr&lt; <ref refid="classforpy_1_1_i_thresh_opt" kindref="compound">IThreshOpt</ref> &gt;</type>
        <definition>virtual std::shared_ptr&lt;IThreshOpt&gt; forpy::ClassificationOpt::create_duplicate</definition>
        <argsstring>(const uint &amp;) const</argsstring>
        <name>create_duplicate</name>
        <reimplements refid="classforpy_1_1_i_thresh_opt_1aefcf9e5a460c3823ab7b92d904c77243">create_duplicate</reimplements>
        <reimplementedby refid="classforpy_1_1_fast_class_opt_1ad3f8e3e48833e4903d0abd9b7b64d2a0">create_duplicate</reimplementedby>
        <param>
          <type>const <ref refid="namespaceforpy_1ad05e34c62859518b61b76b5085e913d8" kindref="member">uint</ref> &amp;</type>
        </param>
        <briefdescription>
<para>Interface implementation. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/threshold_optimizers/classification_opt.h" line="73" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/threshold_optimizers/classification_opt.h" bodystart="73" bodyend="77"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1_classification_opt_1a1d02f8d4123e1e40a1526c256ea23b71" prot="public" static="no" const="no" explicit="no" inline="no" virt="virtual">
        <type>void</type>
        <definition>virtual void forpy::ClassificationOpt::check_annotations</definition>
        <argsstring>(IDataProvider *dprov)</argsstring>
        <name>check_annotations</name>
        <reimplements refid="classforpy_1_1_i_thresh_opt_1ab3766a1229f2862994b827469e7ac2dc">check_annotations</reimplements>
        <param>
          <type><ref refid="classforpy_1_1_i_data_provider" kindref="compound">IDataProvider</ref> *</type>
          <declname>dprov</declname>
        </param>
        <briefdescription>
<para>Interface implementation. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/threshold_optimizers/classification_opt.h" line="78" column="1"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1_classification_opt_1a0057b992bfb58f5396a0459b7b8a894b" prot="public" static="no" const="no" explicit="no" inline="yes" virt="virtual">
        <type>void</type>
        <definition>void forpy::ClassificationOpt::transfer_or_run_check</definition>
        <argsstring>(IThreshOpt *other, IDataProvider *dprov)</argsstring>
        <name>transfer_or_run_check</name>
        <reimplements refid="classforpy_1_1_i_thresh_opt_1a137fdfee9314780967db884e623db3c5">transfer_or_run_check</reimplements>
        <param>
          <type><ref refid="classforpy_1_1_i_thresh_opt" kindref="compound">IThreshOpt</ref> *</type>
          <declname>other</declname>
        </param>
        <param>
          <type><ref refid="classforpy_1_1_i_data_provider" kindref="compound">IDataProvider</ref> *</type>
          <declname>dprov</declname>
        </param>
        <briefdescription>
<para>Interface implementation. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/threshold_optimizers/classification_opt.h" line="79" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/threshold_optimizers/classification_opt.h" bodystart="79" bodyend="87"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1_classification_opt_1ac7ecb5aeedab659bacc8c386441f2ff8" prot="public" static="no" const="yes" explicit="no" inline="no" virt="virtual">
        <type>void</type>
        <definition>virtual void forpy::ClassificationOpt::full_entropy</definition>
        <argsstring>(const IDataProvider &amp;dprov, Desk *) const</argsstring>
        <name>full_entropy</name>
        <reimplements refid="classforpy_1_1_i_thresh_opt_1a938786b8aa4163d1af10bf46d1e7cf7a">full_entropy</reimplements>
        <reimplementedby refid="classforpy_1_1_fast_class_opt_1a539c7c6a9d129da84474cae193bdb13b">full_entropy</reimplementedby>
        <param>
          <type>const <ref refid="classforpy_1_1_i_data_provider" kindref="compound">IDataProvider</ref> &amp;</type>
          <declname>dprov</declname>
        </param>
        <param>
          <type><ref refid="structforpy_1_1_desk" kindref="compound">Desk</ref> *</type>
        </param>
        <briefdescription>
<para>Interface implementation. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/threshold_optimizers/classification_opt.h" line="88" column="1"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1_classification_opt_1acba5e4cd4a2d9f181d1143fd26310554" prot="public" static="no" const="yes" explicit="no" inline="no" virt="virtual">
        <type>void</type>
        <definition>virtual void forpy::ClassificationOpt::optimize</definition>
        <argsstring>(Desk *) const</argsstring>
        <name>optimize</name>
        <reimplements refid="classforpy_1_1_i_thresh_opt_1aa7b9f1c4109199a9122788687756731c">optimize</reimplements>
        <reimplementedby refid="classforpy_1_1_fast_class_opt_1a62c563cd27cedc385ceb48e934d3df42">optimize</reimplementedby>
        <param>
          <type><ref refid="structforpy_1_1_desk" kindref="compound">Desk</ref> *</type>
        </param>
        <briefdescription>
<para>Interface implementation. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/threshold_optimizers/classification_opt.h" line="89" column="1"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1_classification_opt_1ade8863f16f9a5b843144663c1ea53f62" prot="public" static="no" const="no" explicit="no" inline="yes" virt="virtual">
        <type>float</type>
        <definition>float forpy::ClassificationOpt::get_gain_threshold_for</definition>
        <argsstring>(const size_t &amp;)</argsstring>
        <name>get_gain_threshold_for</name>
        <reimplements refid="classforpy_1_1_i_thresh_opt_1ad5f8c0458c82c0b77ca3c034c0375157">get_gain_threshold_for</reimplements>
        <param>
          <type>const size_t &amp;</type>
        </param>
        <briefdescription>
<para>Interface implementation. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/threshold_optimizers/classification_opt.h" line="90" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/threshold_optimizers/classification_opt.h" bodystart="90" bodyend="92"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="protected-attrib">
      <memberdef kind="variable" id="classforpy_1_1_classification_opt_1a4ba5dfcedc849ef5272022f9209e1cc2" prot="protected" static="no" mutable="no">
        <type>size_t</type>
        <definition>size_t forpy::ClassificationOpt::n_thresholds</definition>
        <argsstring></argsstring>
        <name>n_thresholds</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/threshold_optimizers/classification_opt.h" line="112" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/threshold_optimizers/classification_opt.h" bodystart="112" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="classforpy_1_1_classification_opt_1a3340a581f6a2e9e4fe1a12d8922166ec" prot="protected" static="no" mutable="no">
        <type>size_t</type>
        <definition>size_t forpy::ClassificationOpt::n_classes</definition>
        <argsstring></argsstring>
        <name>n_classes</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/threshold_optimizers/classification_opt.h" line="113" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/threshold_optimizers/classification_opt.h" bodystart="113" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="classforpy_1_1_classification_opt_1a7bdc7080f6ddf3716439fcb5c15ee4be" prot="protected" static="no" mutable="no">
        <type>float</type>
        <definition>float forpy::ClassificationOpt::gain_threshold</definition>
        <argsstring></argsstring>
        <name>gain_threshold</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/threshold_optimizers/classification_opt.h" line="114" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/threshold_optimizers/classification_opt.h" bodystart="114" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="classforpy_1_1_classification_opt_1a9d30c5f1c58cd7ec5344f1392419bbca" prot="protected" static="no" mutable="no">
        <type>std::shared_ptr&lt; <ref refid="classforpy_1_1_i_entropy_function" kindref="compound">IEntropyFunction</ref> &gt;</type>
        <definition>std::shared_ptr&lt;IEntropyFunction&gt; forpy::ClassificationOpt::entropy_func</definition>
        <argsstring></argsstring>
        <name>entropy_func</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/threshold_optimizers/classification_opt.h" line="115" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/threshold_optimizers/classification_opt.h" bodystart="115" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="classforpy_1_1_classification_opt_1aa080a3ed5f8f7f65fa15840a6054b3f6" prot="protected" static="no" mutable="no">
        <type>std::shared_ptr&lt; std::vector&lt; <ref refid="namespaceforpy_1ad05e34c62859518b61b76b5085e913d8" kindref="member">uint</ref> &gt; &gt;</type>
        <definition>std::shared_ptr&lt;std::vector&lt;uint&gt; &gt; forpy::ClassificationOpt::class_transl_ptr</definition>
        <argsstring></argsstring>
        <name>class_transl_ptr</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/threshold_optimizers/classification_opt.h" line="116" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/threshold_optimizers/classification_opt.h" bodystart="116" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="classforpy_1_1_classification_opt_1ac1e6f29725993bbc58bed4fa2bc5520e" prot="protected" static="no" mutable="no">
        <type>int</type>
        <definition>int forpy::ClassificationOpt::true_max</definition>
        <argsstring></argsstring>
        <name>true_max</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/threshold_optimizers/classification_opt.h" line="117" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/threshold_optimizers/classification_opt.h" bodystart="117" bodyend="-1"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="friend">
      <memberdef kind="friend" id="classforpy_1_1_classification_opt_1ab2f44cbb59a08132f4c843e5225bba0e" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>friend class</type>
        <definition>friend class cereal::access</definition>
        <argsstring></argsstring>
        <name>cereal::access</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/threshold_optimizers/classification_opt.h" line="126" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/threshold_optimizers/classification_opt.h" bodystart="126" bodyend="-1"/>
      </memberdef>
      <memberdef kind="friend" id="classforpy_1_1_classification_opt_1a10dcc5175898829b1a0c4f71e59e76f3" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>friend std::ostream &amp;</type>
        <definition>std::ostream&amp; operator&lt;&lt;</definition>
        <argsstring>(std::ostream &amp;stream, const ClassificationOpt &amp;)</argsstring>
        <name>operator&lt;&lt;</name>
        <param>
          <type>std::ostream &amp;</type>
          <declname>stream</declname>
        </param>
        <param>
          <type>const <ref refid="classforpy_1_1_classification_opt" kindref="compound">ClassificationOpt</ref> &amp;</type>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/threshold_optimizers/classification_opt.h" line="104" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/threshold_optimizers/classification_opt.h" bodystart="104" bodyend="108"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="public-func">
      <memberdef kind="function" id="classforpy_1_1_classification_opt_1ac0fe8413db473f7dee448770f71b5ac0" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type></type>
        <definition>forpy::ClassificationOpt::ClassificationOpt</definition>
        <argsstring>(const size_t &amp;n_thresholds=0, const float &amp;gain_threshold=1E-7f, const std::shared_ptr&lt; IEntropyFunction &gt; &amp;entropy_function=std::make_shared&lt; InducedEntropy &gt;(2))</argsstring>
        <name>ClassificationOpt</name>
        <param>
          <type>const size_t &amp;</type>
          <declname>n_thresholds</declname>
          <defval>0</defval>
        </param>
        <param>
          <type>const float &amp;</type>
          <declname>gain_threshold</declname>
          <defval>1E-7f</defval>
        </param>
        <param>
          <type>const std::shared_ptr&lt; <ref refid="classforpy_1_1_i_entropy_function" kindref="compound">IEntropyFunction</ref> &gt; &amp;</type>
          <declname>entropy_function</declname>
          <defval>std::make_shared&lt; <ref refid="classforpy_1_1_induced_entropy" kindref="compound">InducedEntropy</ref> &gt;(2)</defval>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>n_thresholds</parametername>
</parameternamelist>
<parameterdescription>
<para>size_t&gt;=0 Number of randomly drawn threshold values that are assessed. If set to 0, the perfect split is determined. Default: 0. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>gain_threshold</parametername>
</parameternamelist>
<parameterdescription>
<para>float &gt;=0.f The minimum information gain a split has to achieve. Default: 1E-7f. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>entropy_function</parametername>
</parameternamelist>
<parameterdescription>
<para>The entropy function to use for gain calculation during the optimization. </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/threshold_optimizers/classification_opt.h" line="66" column="1"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1_classification_opt_1a9d83eb0f86b21b59393371d388a3d15a" prot="public" static="no" const="yes" explicit="no" inline="yes" virt="non-virtual">
        <type>size_t</type>
        <definition>size_t forpy::ClassificationOpt::get_n_classes</definition>
        <argsstring>() const</argsstring>
        <name>get_n_classes</name>
        <briefdescription>
<para>Get the determined number of classes. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/threshold_optimizers/classification_opt.h" line="96" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/threshold_optimizers/classification_opt.h" bodystart="96" bodyend="96"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1_classification_opt_1ac19aef370db773584d6667629257aca5" prot="public" static="no" const="yes" explicit="no" inline="yes" virt="non-virtual">
        <type>std::shared_ptr&lt; std::vector&lt; <ref refid="namespaceforpy_1ad05e34c62859518b61b76b5085e913d8" kindref="member">uint</ref> &gt; &gt;</type>
        <definition>std::shared_ptr&lt;std::vector&lt;uint&gt; &gt; forpy::ClassificationOpt::get_class_translation</definition>
        <argsstring>() const</argsstring>
        <name>get_class_translation</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/threshold_optimizers/classification_opt.h" line="98" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/threshold_optimizers/classification_opt.h" bodystart="98" bodyend="100"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1_classification_opt_1aec6169baf8d50a19740106f0ef60e66f" prot="public" static="no" const="yes" explicit="no" inline="yes" virt="non-virtual">
        <type><ref refid="namespaceforpy_1ad05e34c62859518b61b76b5085e913d8" kindref="member">uint</ref></type>
        <definition>uint forpy::ClassificationOpt::get_true_max_class</definition>
        <argsstring>() const</argsstring>
        <name>get_true_max_class</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/threshold_optimizers/classification_opt.h" line="102" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/threshold_optimizers/classification_opt.h" bodystart="102" bodyend="102"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1_classification_opt_1aa8a81b507f7eaf7317d37b71cb4f99ee" prot="public" static="no" const="yes" explicit="no" inline="no" virt="virtual">
        <type>bool</type>
        <definition>bool forpy::ClassificationOpt::operator==</definition>
        <argsstring>(const IThreshOpt &amp;rhs) const</argsstring>
        <name>operator==</name>
        <reimplements refid="classforpy_1_1_i_thresh_opt_1a255a9a3a07b3988bad9959e9582539eb">operator==</reimplements>
        <reimplementedby refid="classforpy_1_1_fast_class_opt_1a3699be60aabae143b76010a7758f4a1a">operator==</reimplementedby>
        <param>
          <type>const <ref refid="classforpy_1_1_i_thresh_opt" kindref="compound">IThreshOpt</ref> &amp;</type>
          <declname>rhs</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/threshold_optimizers/classification_opt.h" line="109" column="1"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="private-func">
      <memberdef kind="function" id="classforpy_1_1_classification_opt_1ab50a78a3c67ff7caa4c1f651fd8a0818" prot="private" static="no" const="yes" explicit="no" inline="yes" virt="non-virtual">
        <templateparamlist>
          <param>
            <type>typename IT</type>
          </param>
        </templateparamlist>
        <type><ref refid="structforpy_1_1_split_opt_res" kindref="compound">SplitOptRes</ref>&lt; IT &gt; &amp;</type>
        <definition>SplitOptRes&lt;IT&gt;&amp; forpy::ClassificationOpt::optimize__setup</definition>
        <argsstring>(DeciderDesk &amp;d) const</argsstring>
        <name>optimize__setup</name>
        <param>
          <type><ref refid="structforpy_1_1_decider_desk" kindref="compound">DeciderDesk</ref> &amp;</type>
          <declname>d</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/threshold_optimizers/classification_opt.h" line="121" column="1"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1_classification_opt_1a4fda61b0efb0bfdd80575d5f8db03248" prot="private" static="no" const="yes" explicit="no" inline="yes" virt="non-virtual">
        <templateparamlist>
          <param>
            <type>typename IT</type>
          </param>
        </templateparamlist>
        <type>void</type>
        <definition>void forpy::ClassificationOpt::optimize__sort</definition>
        <argsstring>(DeciderDesk &amp;d) const</argsstring>
        <name>optimize__sort</name>
        <param>
          <type><ref refid="structforpy_1_1_decider_desk" kindref="compound">DeciderDesk</ref> &amp;</type>
          <declname>d</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/threshold_optimizers/classification_opt.h" line="123" column="1"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1_classification_opt_1a3c46173c11a746b0a7d1d3067a0d4f33" prot="private" static="no" const="yes" explicit="no" inline="yes" virt="non-virtual">
        <templateparamlist>
          <param>
            <type>typename IT</type>
          </param>
        </templateparamlist>
        <type>std::unique_ptr&lt; std::vector&lt; IT &gt; &gt;</type>
        <definition>std::unique_ptr&lt;std::vector&lt;IT&gt; &gt; forpy::ClassificationOpt::optimize__thresholds</definition>
        <argsstring>(Desk *d) const</argsstring>
        <name>optimize__thresholds</name>
        <param>
          <type><ref refid="structforpy_1_1_desk" kindref="compound">Desk</ref> *</type>
          <declname>d</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/threshold_optimizers/classification_opt.h" line="125" column="1"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1_classification_opt_1a354954f07ee097c25c72a2dca080e460" prot="private" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <templateparamlist>
          <param>
            <type>class Archive</type>
          </param>
        </templateparamlist>
        <type>void</type>
        <definition>void forpy::ClassificationOpt::serialize</definition>
        <argsstring>(Archive &amp;ar, const uint &amp;)</argsstring>
        <name>serialize</name>
        <param>
          <type>Archive &amp;</type>
          <declname>ar</declname>
        </param>
        <param>
          <type>const <ref refid="namespaceforpy_1ad05e34c62859518b61b76b5085e913d8" kindref="member">uint</ref> &amp;</type>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/threshold_optimizers/classification_opt.h" line="128" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/threshold_optimizers/classification_opt.h" bodystart="128" bodyend="133"/>
      </memberdef>
      <memberdef kind="function" id="classforpy_1_1_classification_opt_1aaed84b5295a77d3b6b571156393af617" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type></type>
        <definition>forpy::ClassificationOpt::DISALLOW_COPY_AND_ASSIGN</definition>
        <argsstring>(ClassificationOpt)</argsstring>
        <name>DISALLOW_COPY_AND_ASSIGN</name>
        <param>
          <type><ref refid="classforpy_1_1_classification_opt" kindref="compound">ClassificationOpt</ref></type>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/threshold_optimizers/classification_opt.h" line="135" column="1"/>
      </memberdef>
      </sectiondef>
    <briefdescription>
<para>Optimize split thresholds to optimize classification results. </para>    </briefdescription>
    <detaileddescription>
<para>This threshold optimizer draws <computeroutput>n_thresholds</computeroutput> random values between the minimum and maximum observed feature value and returns the best one, or finds the perfect split if <computeroutput>n_thresholds == 0</computeroutput>.</para><para>The optimizer is robust w.r.t. scaling of the features up to a certain extent. It is important that the least noticable difference is larger than 1E-7 (<ref refid="namespaceforpy_1ad88f878406edc080e84ad4afb30fd910" kindref="member">forpy::CLASSOPT_EPS</ref>). </para>    </detaileddescription>
    <inheritancegraph>
      <node id="18">
        <label>forpy::IThreshOpt</label>
        <link refid="classforpy_1_1_i_thresh_opt"/>
      </node>
      <node id="19">
        <label>forpy::FastClassOpt</label>
        <link refid="classforpy_1_1_fast_class_opt"/>
        <childnode refid="17" relation="public-inheritance">
        </childnode>
      </node>
      <node id="17">
        <label>forpy::ClassificationOpt</label>
        <link refid="classforpy_1_1_classification_opt"/>
        <childnode refid="18" relation="public-inheritance">
        </childnode>
      </node>
    </inheritancegraph>
    <collaborationgraph>
      <node id="21">
        <label>forpy::IThreshOpt</label>
        <link refid="classforpy_1_1_i_thresh_opt"/>
      </node>
      <node id="20">
        <label>forpy::ClassificationOpt</label>
        <link refid="classforpy_1_1_classification_opt"/>
        <childnode refid="21" relation="public-inheritance">
        </childnode>
      </node>
    </collaborationgraph>
    <location file="/Users/classner/git/forpy/include/forpy/threshold_optimizers/classification_opt.h" line="55" column="1" bodyfile="/Users/classner/git/forpy/include/forpy/threshold_optimizers/classification_opt.h" bodystart="55" bodyend="136"/>
    <listofallmembers>
      <member refid="classforpy_1_1_classification_opt_1ab2f44cbb59a08132f4c843e5225bba0e" prot="public" virt="non-virtual"><scope>forpy::ClassificationOpt</scope><name>cereal::access</name></member>
      <member refid="classforpy_1_1_classification_opt_1a1d02f8d4123e1e40a1526c256ea23b71" prot="public" virt="virtual"><scope>forpy::ClassificationOpt</scope><name>check_annotations</name></member>
      <member refid="classforpy_1_1_classification_opt_1aa080a3ed5f8f7f65fa15840a6054b3f6" prot="protected" virt="non-virtual"><scope>forpy::ClassificationOpt</scope><name>class_transl_ptr</name></member>
      <member refid="classforpy_1_1_classification_opt_1ac0fe8413db473f7dee448770f71b5ac0" prot="public" virt="non-virtual"><scope>forpy::ClassificationOpt</scope><name>ClassificationOpt</name></member>
      <member refid="classforpy_1_1_classification_opt_1a45d1b3e24b9a084d5a36e006a2241c9f" prot="public" virt="virtual"><scope>forpy::ClassificationOpt</scope><name>create_duplicate</name></member>
      <member refid="classforpy_1_1_classification_opt_1aaed84b5295a77d3b6b571156393af617" prot="private" virt="non-virtual"><scope>forpy::ClassificationOpt</scope><name>DISALLOW_COPY_AND_ASSIGN</name></member>
      <member refid="classforpy_1_1_classification_opt_1a9d30c5f1c58cd7ec5344f1392419bbca" prot="protected" virt="non-virtual"><scope>forpy::ClassificationOpt</scope><name>entropy_func</name></member>
      <member refid="classforpy_1_1_classification_opt_1ac7ecb5aeedab659bacc8c386441f2ff8" prot="public" virt="virtual"><scope>forpy::ClassificationOpt</scope><name>full_entropy</name></member>
      <member refid="classforpy_1_1_classification_opt_1a7bdc7080f6ddf3716439fcb5c15ee4be" prot="protected" virt="non-virtual"><scope>forpy::ClassificationOpt</scope><name>gain_threshold</name></member>
      <member refid="classforpy_1_1_classification_opt_1ac19aef370db773584d6667629257aca5" prot="public" virt="non-virtual"><scope>forpy::ClassificationOpt</scope><name>get_class_translation</name></member>
      <member refid="classforpy_1_1_classification_opt_1ade8863f16f9a5b843144663c1ea53f62" prot="public" virt="virtual"><scope>forpy::ClassificationOpt</scope><name>get_gain_threshold_for</name></member>
      <member refid="classforpy_1_1_classification_opt_1a9d83eb0f86b21b59393371d388a3d15a" prot="public" virt="non-virtual"><scope>forpy::ClassificationOpt</scope><name>get_n_classes</name></member>
      <member refid="classforpy_1_1_classification_opt_1aec6169baf8d50a19740106f0ef60e66f" prot="public" virt="non-virtual"><scope>forpy::ClassificationOpt</scope><name>get_true_max_class</name></member>
      <member refid="classforpy_1_1_i_thresh_opt_1afa431da7d4223d42ddd8f6d09f552f71" prot="protected" virt="non-virtual"><scope>forpy::ClassificationOpt</scope><name>IThreshOpt</name></member>
      <member refid="classforpy_1_1_classification_opt_1a3340a581f6a2e9e4fe1a12d8922166ec" prot="protected" virt="non-virtual"><scope>forpy::ClassificationOpt</scope><name>n_classes</name></member>
      <member refid="classforpy_1_1_classification_opt_1a4ba5dfcedc849ef5272022f9209e1cc2" prot="protected" virt="non-virtual"><scope>forpy::ClassificationOpt</scope><name>n_thresholds</name></member>
      <member refid="classforpy_1_1_classification_opt_1a10dcc5175898829b1a0c4f71e59e76f3" prot="public" virt="non-virtual"><scope>forpy::ClassificationOpt</scope><name>operator&lt;&lt;</name></member>
      <member refid="classforpy_1_1_classification_opt_1aa8a81b507f7eaf7317d37b71cb4f99ee" prot="public" virt="virtual"><scope>forpy::ClassificationOpt</scope><name>operator==</name></member>
      <member refid="classforpy_1_1_classification_opt_1acba5e4cd4a2d9f181d1143fd26310554" prot="public" virt="virtual"><scope>forpy::ClassificationOpt</scope><name>optimize</name></member>
      <member refid="classforpy_1_1_classification_opt_1ab50a78a3c67ff7caa4c1f651fd8a0818" prot="private" virt="non-virtual"><scope>forpy::ClassificationOpt</scope><name>optimize__setup</name></member>
      <member refid="classforpy_1_1_classification_opt_1a4fda61b0efb0bfdd80575d5f8db03248" prot="private" virt="non-virtual"><scope>forpy::ClassificationOpt</scope><name>optimize__sort</name></member>
      <member refid="classforpy_1_1_classification_opt_1a3c46173c11a746b0a7d1d3067a0d4f33" prot="private" virt="non-virtual"><scope>forpy::ClassificationOpt</scope><name>optimize__thresholds</name></member>
      <member refid="classforpy_1_1_classification_opt_1a354954f07ee097c25c72a2dca080e460" prot="private" virt="non-virtual"><scope>forpy::ClassificationOpt</scope><name>serialize</name></member>
      <member refid="classforpy_1_1_i_thresh_opt_1a6c8b839e4f30ace4616d51f88dbae9d3" prot="public" virt="virtual"><scope>forpy::ClassificationOpt</scope><name>supports_weights</name></member>
      <member refid="classforpy_1_1_classification_opt_1a0057b992bfb58f5396a0459b7b8a894b" prot="public" virt="virtual"><scope>forpy::ClassificationOpt</scope><name>transfer_or_run_check</name></member>
      <member refid="classforpy_1_1_classification_opt_1ac1e6f29725993bbc58bed4fa2bc5520e" prot="protected" virt="non-virtual"><scope>forpy::ClassificationOpt</scope><name>true_max</name></member>
      <member refid="classforpy_1_1_i_thresh_opt_1a8d564990e2f3b13d39f66a3448e288ea" prot="public" virt="virtual"><scope>forpy::ClassificationOpt</scope><name>~IThreshOpt</name></member>
    </listofallmembers>
  </compounddef>
</doxygen>
