Zum Inhalt springen

Bayes-Klassifikator

aus Wikipedia, der freien Enzyklopädie

Ein Bayes-Klassifikator (IPA: [<templatestyles src="IPA/styles.css" />{{#if:|[}}ˈbɛɪ̯z.klasifiˌkaːtoːɐ̯{{#if:

    | ] <phonos file="{{{Tondatei}}}"></phonos>
  }}{{#invoke:TemplatePar|check

|all= 1= |opt= 2= Tondatei= |template=Vorlage:IPA |errNS= 0 |cat=Wikipedia:Vorlagenfehler/Vorlage:IPA |format=@@@ }}], {{#ifeq: 1 | 0

    | {{#if: De-Bayes-Klassifikator.ogg

| {{#ifexist: Media:De-Bayes-Klassifikator.ogg

   | Vorlage:CodexIcon{{#ifeq: 0 | 1 | Vorlage:CodexIcon}}
   | !?! }}

| }} anhören?/

    | <phonos file="De-Bayes-Klassifikator.ogg">anhören</phonos>/?

}}, benannt nach dem englischen Mathematiker Thomas Bayes) ist ein aus dem Satz von Bayes hergeleiteter Klassifikator. Er ordnet jedes Objekt der Klasse zu, zu der es mit der größten Wahrscheinlichkeit gehört, oder bei der durch die Einordnung die wenigsten Kosten entstehen. Formal handelt es sich um eine mathematische Funktion, die jedem Punkt eines Merkmalsraums eine Klasse zuordnet.

Bayes-Klassifikatoren sind Beispiele für Bayessche Netze.

Definition

Ein Bayes-Klassifikator <math>\hat{c}^{\text{Bayes}}</math> ist eine Funktion, die Feature-Vektoren aus dem <math>f</math>-dimensionalen reellwertigen Merkmalsraum auf eine Menge von Klassen <math>C</math> abbildet:

<math>\hat{c}^{\text{Bayes}}\colon \mathbb{R}^{f} \rightarrow C</math>

Der Bayes-Klassifikator weist einem Feature-Vektor diejenige Klasse zu, deren A-posteriori-Wahrscheinlichkeit (beim vorliegenden Feature Vektor) maximal ist<ref name="scikit-learn">{{#if:|{{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}| |}}}}{{#if:|{{{autor}}}: }}{{#if:|{{#if:1.9. Naive Bayes|[{{#invoke:Vorlage:Internetquelle|archivURL|1={{#invoke:URLutil|getNormalized|1={{{archiv-url}}}}}}} {{#invoke:Vorlage:Internetquelle|TitelFormat|titel=1.9. Naive Bayes}}]{{#if:| ({{{format}}})}}{{#if:| {{{titelerg}}}{{#invoke:Vorlage:Internetquelle|Endpunkt|titel={{{titelerg}}}}}}}}}|{{#if:https://scikit-learn.org/stable/modules/naive_bayes.html%7C{{#if:{{#invoke:TemplUtl%7Cfaculty%7C}}%7C{{#invoke:Vorlage:Internetquelle%7CTitelFormat%7Ctitel={{#invoke:WLink%7CgetEscapedTitle%7C1=1.9. Naive Bayes}}}}|[{{#invoke:URLutil|getNormalized|1=https://scikit-learn.org/stable/modules/naive_bayes.html}} {{#invoke:Vorlage:Internetquelle|TitelFormat|titel={{#invoke:WLink|getEscapedTitle|1=1.9. Naive Bayes}}}}]}}{{#if:| ({{{format}}}{{#if:{{#if: 2021-09-29 | {{#if:{{#invoke:TemplUtl|faculty|}}||1}}}}

          | )
          | {{#if:{{#ifeq:en|de||{{#if:en|1}}}}| ; 
              | )}}}}}}{{#if:| {{{titelerg}}}{{#invoke:Vorlage:Internetquelle|Endpunkt|titel={{{titelerg}}}}}}}}}}}{{#if:https://scikit-learn.org/stable/modules/naive_bayes.html%7C{{#if:{{#invoke:URLutil%7CisResourceURL%7C1=https://scikit-learn.org/stable/modules/naive_bayes.html}}%7C%7C}}}}{{#if:1.9. Naive Bayes|{{#if:{{#invoke:WLink|isValidLinktext|1=1.9. Naive Bayes|lines=0}}||}}}}{{#if: | In: {{#invoke:Vorlage:Internetquelle|TitelFormat|titel={{{werk}}}}}}}{{#if: | {{{hrsg}}}{{#if: |,|{{#if: 2021-09-29 | {{#if:{{#invoke:TemplUtl|faculty|}}|;|,}}}}}}}}{{#if: | {{#if:{{#invoke:DateTime|format|{{{datum}}}|noerror=1}}
            |{{#invoke:DateTime|format|{{{datum}}}|T._Monat JJJJ}}
            |{{#invoke:TemplUtl|failure|1=Fehler bei Vorlage:Internetquelle, datum={{{datum}}}|class=Zitationswartung}} }}{{#if: |,|{{#if: 2021-09-29 | {{#if:{{#invoke:TemplUtl|faculty|}}|;|,}}}}}}}}{{#if: | S. {{{seiten}}}{{#if: |,|{{#if: 2021-09-29 | {{#if:{{#invoke:TemplUtl|faculty|}}|;|,}}}}}}}}{{#if: {{#invoke:TemplUtl|faculty|}}| {{#if:|{{#if:|archiviert|ehemals}}|{{#if:|Archiviert|Ehemals}}}} {{#if:|vom|im}} Vorlage:Referrer{{#if:{{#invoke:TemplUtl|faculty|}}| (nicht mehr online verfügbar)}}{{#if: | am {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}|{{{archiv-datum}}}{{#if:154409||(?)}}}}}}{{#if: 2021-09-29|;}}}}{{#if: 2021-09-29| {{#if:{{#invoke:TemplUtl|faculty|}}|abgerufen|Abgerufen}} {{#switch: {{#invoke:Str|len| {{#invoke:DateTime|format| 2021-09-29 |ISO|noerror=1}} }}
       |4=im Jahr
       |7=im
       |10=am
       |#default={{#invoke:TemplUtl|failure|1=Fehler bei Vorlage:Internetquelle, abruf=2021-09-29|class=Zitationswartung}} }} {{#invoke:DateTime|format|2021-09-29|T._Monat JJJJ}}
    | {{#invoke:TemplUtl|failure|1=Vorlage:Internetquelle | abruf=2026-MM-TT ist Pflichtparameter}} }}{{#if:{{#ifeq:en|de||{{#if:en|1}}}}|{{#if:{{#if: 2021-09-29 | {{#if:{{#invoke:TemplUtl|faculty|}}||1}}}}
       |  (
       | {{#if: | |  (}}
       }}{{#ifeq:{{#if:en|en|de}}|de||
          {{#invoke:Multilingual|format|en|slang=!|split=[%s,]+|shift=m|separator=, }}}}{{#if: |{{#ifeq:{{#if:en|en|de}}|de||, }}{{{kommentar}}}}})}}{{#if: {{#if: 2021-09-29 | {{#if:{{#invoke:TemplUtl|faculty|}}||1}} }}en|{{#if: |: {{
 #if: 
 | {{
     #ifeq: {{#if:{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|de}} | de
     | Vorlage:Str trim
     | {{#invoke:Vorlage:lang|flat}}
     }}
 | {{#ifeq: {{#if:{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|de}} | de
     | „Vorlage:Str trim“
     | {{#invoke:Text|quote
         |1={{#if: 
              | {{#invoke:Vorlage:lang|flat}}
              | {{#invoke:Vorlage:lang|flat}} }}
         |2={{#if: {{#invoke:TemplUtl|faculty|}}|de-CH|de}}
         |3=1}} }}

}}{{#if:

   |  (<templatestyles src="Person/styles.css" />{{#if:  | :  }}{{#if:  | , deutsch: „“ }})
   | {{#if: 
       |  ({{#if:  | , deutsch: „“ }})
       | {{#if:  |  (deutsch: „“) }}
 }}

}}{{#if: {{{zitat}}}

   | {{#if: 
       | {{#if: {{{zitat}}}
           | Vorlage:": Text= und 1= gleichzeitig, bzw. Pipe zu viel }} }}
   | Vorlage:": Text= fehlt }}{{#if:  | {{#if: {{#invoke:Text|unstrip|{{{ref}}}}}
             | Vorlage:": Ungültiger Wert: ref=
             | {{{ref}}} }}

}}|.{{#if:{{#invoke:TemplUtl|faculty|}}|{{#if:||{{#ifeq: | JaKeinHinweis |{{#switch:

   |0|=Vorlage:Toter Link/Core{{#if: https://scikit-learn.org/stable/modules/naive_bayes.html
       | {{#if:  | [1] }} (Seite {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. Suche im Internet Archive ){{#if: 
           | {{#if: deadurlausgeblendet | | Vorlage:Toter Link/archivebot }}
         }}
       |   (Seite {{#switch:|no|0|=|#default=dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}.)
     }}{{#switch: 
         |no|0|=
         |#default={{#if:  ||  }}
    }}{{#invoke:TemplatePar|check
         |opt      = inline= url= text= datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
    }}{{#if: https://scikit-learn.org/stable/modules/naive_bayes.html
      | {{#if:{{#invoke:URLutil|isWebURL|https://scikit-learn.org/stable/modules/naive_bayes.html}}
          || {{#if:  ||  }} 
        }}
      | {{#if: 
           | {{#if:  ||  }}
           | {{#if:  ||  }}
        }}
    }}{{#if: 
       | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
         }}
    }}{{#switch: deadurl
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}|#default= https://wiki-de.moshellshocker.dns64.de/index.php?title=Wikipedia:Defekte_Weblinks&dwl=https://scikit-learn.org/stable/modules/naive_bayes.html Die nachstehende Seite ist {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar]{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. (Suche im Internet Archive. )  {{#if: 
            | {{#if: deadurlausgeblendet | | Vorlage:Toter Link/archivebot }}
         }}Vorlage:Toter Link/Core{{#switch: 
          |no|0|=
          |#default= {{#if:  ||  }}
        }}{{#invoke:TemplatePar|check
         |all      = inline= url=
         |opt      = datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
       }}{{#if: https://scikit-learn.org/stable/modules/naive_bayes.html
       | {{#if:{{#invoke:URLutil|isWebURL|https://scikit-learn.org/stable/modules/naive_bayes.html}}
          || {{#if:  ||  }} 
        }}
    }}{{#if: 
         | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
           }}
    }}{{#switch: deadurl
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}[https://scikit-learn.org/stable/modules/naive_bayes.html }}|{{#switch: 
   |0|=Vorlage:Toter Link/Core{{#if: https://scikit-learn.org/stable/modules/naive_bayes.html
       | {{#if:  | [2] }} (Seite {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. Suche im Internet Archive ){{#if: 
           | {{#if:  | | Vorlage:Toter Link/archivebot }}
         }}
       |   (Seite {{#switch:|no|0|=|#default=dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}.)
     }}{{#switch: 
         |no|0|=
         |#default={{#if:  ||  }}
    }}{{#invoke:TemplatePar|check
         |opt      = inline= url= text= datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
    }}{{#if: https://scikit-learn.org/stable/modules/naive_bayes.html
      | {{#if:{{#invoke:URLutil|isWebURL|https://scikit-learn.org/stable/modules/naive_bayes.html}}
          || {{#if:  ||  }} 
        }}
      | {{#if: 
           | {{#if:  ||  }}
           | {{#if:  ||  }}
        }}
    }}{{#if: 
       | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
         }}
    }}{{#switch: 
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}|#default= https://wiki-de.moshellshocker.dns64.de/index.php?title=Wikipedia:Defekte_Weblinks&dwl=https://scikit-learn.org/stable/modules/naive_bayes.html Die nachstehende Seite ist {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar]{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. (Suche im Internet Archive. )  {{#if: 
            | {{#if:  | | Vorlage:Toter Link/archivebot }}
         }}Vorlage:Toter Link/Core{{#switch: 
          |no|0|=
          |#default= {{#if:  ||  }}
        }}{{#invoke:TemplatePar|check
         |all      = inline= url=
         |opt      = datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
       }}{{#if: https://scikit-learn.org/stable/modules/naive_bayes.html
       | {{#if:{{#invoke:URLutil|isWebURL|https://scikit-learn.org/stable/modules/naive_bayes.html}}
          || {{#if:  ||  }} 
        }}
    }}{{#if: 
         | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
           }}
    }}{{#switch: 
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}[https://scikit-learn.org/stable/modules/naive_bayes.html }} }}}}}}}}}}{{#if:|
        {{#invoke:Vorlage:Internetquelle|archivBot|stamp={{{archiv-bot}}}|text={{#if:|Vorlage:Webarchiv/archiv-bot}}

}}}}{{#invoke:TemplatePar|check |all= url= titel= |opt= autor= hrsg= format= sprache= titelerg= werk= seiten= datum= abruf= zugriff= abruf-verborgen= archiv-url= archiv-datum= archiv-bot= kommentar= zitat= AT= CH= offline= |cat= {{#ifeq: 0 | 0 | Wikipedia:Vorlagenfehler/Vorlage:Internetquelle}} |template= Vorlage:Internetquelle |format=0 |preview=1 }}</ref>:

<math>\hat{c}^{\text{Bayes}}(f_1, \dots f_n) = \arg\max_c p(C=c| f_1, \dots f_n) = \arg\max_c \frac{p(C=c) p(f_1, \dots f_n|C=c)}{p(f_1, \dots f_n)} \propto \arg\max_c p(C=c) p(f_1, \dots f_n|C=c),</math>

wobei <math>p(C=c)</math> die apriori Auftrittswahrscheinlichkeit der Klasse <math>c</math> ist und <math>p(f_1, \dots f_n|C=c)</math> die bedingte Auftrittswahrscheinlichkeit der Features <math>f_1,\dots f_n</math> für die gegebene Klasse. Die apriori Auftrittswahrscheinlichkeit der Klasse <math>c</math> kann zum Beispiel durch die Auftrittshäufigkeit der Klasse im Trainingsdatensatz geschätzt werden.

Beide Formen (Naiver Bayes-Klassifikator und Bayes-Klassifikator) setzen voraus, dass die Wahrscheinlichkeit, dass ein Punkt des Merkmalsraums zu einer bestimmten Klasse gehört, bekannt ist, jede Klasse also durch eine Wahrscheinlichkeitsdichte beschrieben wird. In der Realität sind diese Dichtefunktionen aber nicht bekannt; man muss sie abschätzen. Dazu vermutet man hinter jeder Klasse einen Typ von Wahrscheinlichkeitsverteilung – in der Regel eine Normalverteilung – und versucht anhand der vorhandenen Daten, deren Parameter abzuschätzen.

Naiver Bayes-Klassifikator

Datei:Naive corral.png
Beispiel eines Naiven Bayes-Klassifikators, welcher als Bayessches Netz dargestellt ist

Der Naive Bayes-Klassifikator nimmt (in naiver Weise) an, dass die A-posteriori-Verteilung aus Wahrscheinlichkeiten aufgebaut ist, bei denen (bei gegebener Klasse) die Features unabhängig voneinander sind:<ref name="scikit-learn"/>

<math>\hat{c}^{\text{Bayes}}(f_1, \dots f_n) = \arg\max_c p(C=c| f_1, \dots f_n)\propto \arg\max_c p(C=c) \prod_{i=1}^n p(f_i| C=c)</math>

Aufgrund seiner schnellen Berechenbarkeit bei guter Erkennungsrate ist auch der naive Bayes-Klassifikator sehr beliebt. Mittels des naiven Bayes-Klassifikators ist es möglich, die Zugehörigkeit eines Objektes (Klassenattribut) zu einer Klasse zu bestimmen. Er basiert auf dem Satz von Bayes. Man könnte einen naiven Bayes-Klassifikator auch als sternförmiges Bayessches Netz betrachten.

Die naive Grundannahme ist dabei, dass jedes Attribut nur vom Klassenattribut abhängt. Obwohl dies in der Realität selten zutrifft, erzielen naive Bayes-Klassifikatoren bei praktischen Anwendungen häufig gute Ergebnisse, solange die Attribute nicht zu stark korreliert sind.

Für den Fall starker Abhängigkeiten zwischen den Attributen ist eine Erweiterung des naiven Bayes-Klassifikators um einen Baum zwischen den Attributen sinnvoll. Das Ergebnis wird baumerweiterter naiver Bayes-Klassifikator genannt.

{{#invoke:Vorlage:Anker|f |errCat=Wikipedia:Vorlagenfehler/Vorlage:Anker |errHide=1}} Klassifizierung bei normalverteilten Features

Die Entscheidungsgrenze enthält beim Bayes-Klassifikator diejenigen Punkte mit gleicher A-posteriori-Wahrscheinlichkeit (je benachbarter Klasse). Wird angenommen, dass die bedingten Wahrscheinlichkeiten <math>p(X|C=c) \sim \mathcal{N}(\mu_c, \sigma_c)</math> Normalverteilungen sind, so ist die aus dem Bayes-Klassifikator resultierende Entscheidungsgrenze quadratisch.<ref>Gaussian classifiers (PDF; 0,6 MB)</ref>

Werden die Normalverteilungen darüber hinaus durch die gleiche Kovarianzmatrix beschrieben, ist die dazwischen liegende Entscheidungsgrenze sogar linear. In diesen beiden Fällen lässt sich die Diskriminanzfunktion besonders einfach beschreiben, was die Klassifikation einfach und effizient berechenbar macht. Soll ein Gaußscher Bayes-Klassifikator eingesetzt werden, so sollten die Features zum Beispiel mit der Yeo-Johnson-Transformation präprozessiert werden, um sie möglichst normalverteilt zu machen.

Herleitung

Um den Bayes-Klassifikator herzuleiten, wird ein Kostenmaß benötigt, das jeder möglichen Klassifizierung Kosten zuweist. Der Bayes-Klassifikator ist genau derjenige Klassifikator, der die durch alle Klassifizierungen entstehenden Kosten minimiert. Das Kostenmaß wird gelegentlich auch Risikofunktion genannt; man sagt dann, der Bayes-Klassifikator minimiere das Risiko einer Fehlentscheidung und sei über das minimum-risk-Kriterium definiert, siehe auch Empirische Risikominimierung.

Wird ein primitives Kostenmaß verwendet, das ausschließlich bei Fehlentscheidungen Kosten verursacht, so minimiert der Bayes-Klassifikator die Wahrscheinlichkeit einer Fehlentscheidung. Typischerweise wird als Kostenmaß die folgende 0-1 Verlustfunktion gewählt:

<math>L(x,y)= 1-\delta_{x,y}=\begin{cases}0 & \text{if } x=y \\ 1 & \text{if } x\neq y \end{cases},</math>

wobei <math>\delta_{x,y}</math> das Kronecker-Delta ist.

Der erwartete Fehler (also die Risikofunktion) ist dann der Bayes Fehler (EPE):

<math> EPE = E_x[ \sum_{c \in \{c\}} L(c, \hat{c}(x))P(C=c|x)]</math>

wobei x ein Feature-Vektor, <math>E[]</math> der Erwartungswert, c ist eine Klasse, P(C=c|x) ist die bedingte Wahrscheinlichkeit einer Klasse c bei gegebenem Feature-Vektor x.

<math> EPE = E_x \left[ \sum_{c \in \{c\}} L(c, \hat{c}(x))P(C=c|x)\right] =E_x\left[\sum_{c \in \{c\}, c \neq \hat{c}(x)} P(C=c|x)\right] = E_x[1-P(C=\hat{c}(x)|x)] </math>,

wobei das letzte Gleichheitszeichen aufgrund der Gegenwahrscheinlichkeit gilt. Diese Verlustfunktion EPE ist minimal, falls <math>P(C=\hat{c}(x)|x)</math> maximal ist (was durch die Definition des Bayes-Klassifikator gewährleistet wird).

Man sagt dann, der Bayes-Klassifikator sei über das Maximum-a-posteriori-Kriterium definiert.

Anwendungen

Ein Beispiel für eine praktische Anwendung eines Bayes-Klassifikator ist der Bayes-Spamfilter.

Der Bayes-Klassifikator auch häufig zur Beurteilung anderer Klassifikatoren verwendet: Man entwirft künstlich einige Klassen und deren Wahrscheinlichkeitsdichten, erzeugt mit diesem Modell eine zufällige Stichprobe und lässt den anderen Klassifikator die Objekte dieser Stichprobe in Klassen einteilen. Das Ergebnis vergleicht man mit der Einordnung, die der Bayes-Klassifikator vorgenommen hätte. Da der Bayes-Klassifikator in diesem Fall optimal ist (und dann nur der irreduzible Bayes-Fehler vorliegt), erhält man eine Abschätzung, wie nahe der andere Klassifikator am Optimum liegt. Gleichzeitig liefert der Bayes-Klassifikator eine untere Schranke für die Fehlerwahrscheinlichkeit aller anderen Klassifikatoren in diesem Szenario; besser als der optimale Bayes-Klassifikator können diese nicht werden.

Einzelnachweise

<references />