Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

의사 결정 트리를 사용하여 Python에서 회귀자를 구현하는 방법은 무엇입니까?

<시간/>

의사 결정 트리는 랜덤 포레스트 알고리즘의 기본 빌딩 블록입니다. 기계 학습에서 가장 널리 사용되는 알고리즘 중 하나로 간주되며 분류 목적으로 사용됩니다. 의사 결정 트리에서 내린 결정은 특정 예측이 이루어진 이유를 설명하는 데 사용할 수 있습니다. 이는 프로세스 안팎이 사용자에게 명확하다는 것을 의미합니다. CART, 즉 분류 및 회귀 트리라고도 합니다. 이진 트리(데이터 구조 및 알고리즘에서 연구된 것)로 시각화할 수 있습니다.

트리의 모든 노드는 단일 입력 변수를 나타내며 리프 노드(터미널 노드라고도 함)에는 출력 변수가 포함됩니다. 이 리프 노드는 노드에 대한 예측을 수행하는 데 사용됩니다. 의사 결정 트리가 생성될 때 기본 아이디어는 주어진 공간이 여러 섹션으로 분할된다는 것입니다. 더 적은 비용과 최상의 예측 값을 얻기 위해 모든 값이 설정되고 다른 분할이 시도됩니다. 이 값은 탐욕스럽게 선택됩니다.

이러한 노드의 분할은 트리의 최대 깊이에 도달할 때까지 계속됩니다. 의사 결정 트리를 사용하는 배경은 모든 대상 변수가 하나의 단일 범주에 속할 때까지 특정 기능 값을 기반으로 입력 데이터 세트를 더 작은 데이터 세트로 나누는 것입니다. 이 분할은 모든 단계에 대해 최대 정보 이득을 얻기 위해 이루어집니다.

모든 의사 결정 트리는 루트로 시작하며 이것이 첫 번째 분할이 이루어지는 곳입니다. 노드가 정의되도록 효율적인 방법을 고안해야 합니다.

여기서 지니 가치가 등장합니다. 지니는 불평등을 측정하기 위해 가장 일반적으로 사용되는 측정 중 하나로 간주됩니다. 불평등은 노드의 모든 하위 집합이 속할 수 있는 대상 클래스(출력)를 나타냅니다.

아래 구문은 DecisionTreeRegressor를 사용하는 동안 사용됩니다 -

class sklearn.tree.DecisionTreeRegressor (*, criterion=’mse’,…

DecisionTreeRegressor가 어떻게 사용될 수 있는지 이해합시다 -

예시

from sklearn import tree
my_data = [[1, 1], [5, 5], [2,3], [7,11]]
target_vals = [0.1, 1.5, 0.75, 1.73]
clf = tree.DecisionTreeRegressor()
print("The decision tree regressor has been called")
DTreg = clf.fit(my_data, target_vals)
print("Data has been fit")
pred_val = DTreg.predict([[4, 7]])
print("The predicted data is ")
print(pred_val)

출력

The decision tree regressor has been called
Data has been fit
The predicted data is
[1.5]

설명

  • 필수 패키지를 환경으로 가져옵니다.
  • 특성 벡터 및 대상 값이 정의됩니다.
  • DecisionTreeRegressor가 호출되고 데이터가 모델에 적합합니다.
  • 'predict' 기능은 특성 값의 값을 예측하는 데 사용됩니다.
  • 출력은 콘솔에 표시됩니다.