일반적인 함정을 피하면서 Scikit-Learn 결정 트리에서 프로그래밍 방식으로 결정 규칙을 추출하려면 어떻게 해야 합니까?

Mary-Kate Olsen
풀어 주다: 2024-10-26 07:27:02
원래의
894명이 탐색했습니다.

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

Scikit-Learn 결정 트리에서 결정 규칙 추출

머신러닝에서 의사결정 트리는 일반적으로 의사결정 프로세스를 캡처하는 데 사용됩니다. 결정 규칙의 형태. 이러한 규칙은 텍스트 목록으로 표현되어 의사결정 트리의 기본 논리를 명확하게 이해할 수 있습니다.

프로그래밍 방식으로 의사결정 규칙 추출

Python 함수 tree_to_code를 사용하면 훈련된 의사결정 트리에서 의사결정 규칙을 추출합니다. 훈련된 트리와 기능 이름 목록을 입력으로 사용하고 결정 규칙을 나타내는 유효한 Python 함수를 생성합니다.

<code class="python">def tree_to_code(tree, feature_names):
    # ...</code>
로그인 후 복사

생성된 함수는 중첩 if를 사용하여 결정 트리와 동일한 구조를 갖습니다. -else 문은 결정 경로를 나타냅니다. 입력 데이터가 제공되면 함수는 해당 출력을 반환합니다.

출력 예

입력(0에서 10 사이의 숫자)을 반환하려는 의사결정 트리의 경우 ), 생성된 코드는 다음과 같습니다.

<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>
로그인 후 복사

다른 접근 방식의 제한

의사결정 트리에서 의사결정 규칙을 추출할 때 흔히 발생하는 함정은 다음과 같습니다.

  • 리프 노드를 식별하기 위해 실수로 tree_.threshold == -2를 사용함(항상 신뢰할 수 있는 것은 아님)
  • 재귀 함수에 불필요한 여러 if-else 문 포함
  • 리프 때문에 충돌 발생 특성 값이 -2
인 노드

위 내용은 일반적인 함정을 피하면서 Scikit-Learn 결정 트리에서 프로그래밍 방식으로 결정 규칙을 추출하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!