Heim > Backend-Entwicklung > Python-Tutorial > Wie können wir Entscheidungsregeln programmgesteuert aus Scikit-Learn-Entscheidungsbäumen extrahieren und dabei häufige Fallstricke vermeiden?

Wie können wir Entscheidungsregeln programmgesteuert aus Scikit-Learn-Entscheidungsbäumen extrahieren und dabei häufige Fallstricke vermeiden?

Mary-Kate Olsen
Freigeben: 2024-10-26 07:27:02
Original
978 Leute haben es durchsucht

How Can We Programmatically Extract Decision Rules from Scikit-Learn Decision Trees While Avoiding Common Pitfalls?

Entscheidungsregeln aus Scikit-Learn-Entscheidungsbäumen extrahieren

Beim maschinellen Lernen werden Entscheidungsbäume häufig verwendet, um Entscheidungsprozesse im zu erfassen Form von Entscheidungsregeln. Diese Regeln können als Textlisten dargestellt werden und bieten ein klares Verständnis der zugrunde liegenden Logik in einem Entscheidungsbaum.

Entscheidungsregeln programmgesteuert extrahieren

Die Python-Funktion „tree_to_code“ ermöglicht die Extraktion von Entscheidungsregeln aus einem trainierten Entscheidungsbaum. Es verwendet als Eingabe den trainierten Baum und eine Liste von Feature-Namen und generiert eine gültige Python-Funktion, die die Entscheidungsregeln darstellt.

<code class="python">def tree_to_code(tree, feature_names):
    # ...</code>
Nach dem Login kopieren

Die generierte Funktion hat dieselbe Struktur wie der Entscheidungsbaum und verwendet verschachtelte if -else-Anweisungen zur Darstellung der Entscheidungspfade. Wenn die Eingabedaten bereitgestellt werden, gibt die Funktion die entsprechende Ausgabe zurück.

Beispielausgabe

Für einen Entscheidungsbaum, der versucht, seine Eingabe zurückzugeben (eine Zahl zwischen 0 und 10). ), könnte der generierte Code wie folgt aussehen:

<code class="python">def tree(f0):
  if f0 <= 6.0:
    if f0 <= 1.5:
      return [[ 0.]]
    else:  # if f0 > 1.5
      if f0 <= 4.5:
        if f0 <= 3.5:
          return [[ 3.]]
        else:  # if f0 > 3.5
          return [[ 4.]]
      else:  # if f0 > 4.5
        return [[ 5.]]
  else:  # if f0 > 6.0
    if f0 <= 8.5:
      if f0 <= 7.5:
        return [[ 7.]]
      else:  # if f0 > 7.5
        return [[ 8.]]
    else:  # if f0 > 8.5
      return [[ 9.]]</code>
Nach dem Login kopieren

Einschränkungen anderer Ansätze

Einige häufige Fallstricke beim Extrahieren von Entscheidungsregeln aus Entscheidungsbäumen sind:

  • Fälschliche Verwendung von tree_.threshold == -2 zur Identifizierung von Blattknoten (nicht immer zuverlässig)
  • Einschließlich unnötiger mehrfacher if-else-Anweisungen in der rekursiven Funktion
  • Absturz aufgrund von Blattknoten Knoten mit einem Merkmalswert von -2

Das obige ist der detaillierte Inhalt vonWie können wir Entscheidungsregeln programmgesteuert aus Scikit-Learn-Entscheidungsbäumen extrahieren und dabei häufige Fallstricke vermeiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage