기술나눔

기계 학습 - 의사결정 트리(참고)

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

목차

1. 의사결정나무 이해하기

1. 소개

2. 의사결정나무 생성 과정

2. Sklearn의 의사결정 트리

1. tree.DecisionTreeClassifier(분류 트리)

(1) 모델의 기본 매개변수

(2) 모델 속성

(3) 인터페이스

2. tree.DecisionTreeRegressor(회귀 트리)

3. tree.export_graphviz(생성된 의사결정 트리를 특히 그리기를 위해 DOT 형식으로 내보내기)

4. 기타(보충)

3. 의사결정나무의 장점과 단점

1. 장점

2. 단점


1. 의사결정나무 이해하기

1. 소개

의사결정나무는비모수적 지도 학습 방법, 일련의 항목 중에서 선택할 수 있습니다. 결정 규칙은 특징과 레이블이 포함된 데이터로 요약되며, 이러한 규칙은 분류 및 회귀 문제를 해결하기 위해 트리 다이어그램 구조로 표시됩니다.의사결정 트리 알고리즘은 이해하기 쉽고 다양한 데이터에 적용 가능하며 다양한 문제 해결에 탁월한 성능을 발휘합니다. 특히 트리 모델을 핵심으로 하는 다양한 통합 알고리즘은 다양한 산업 및 분야에서 널리 사용되고 있습니다.

2. 의사결정나무 생성 과정

위의 데이터 세트는 알려진 종 목록 및 해당 카테고리에 대한 데이터 .우리의 현재 목표는 동물을 다음과 같이 나누는 것입니다.포유류와 비포유동물 . 수집된 데이터를 기반으로 의사결정 트리 알고리즘은 다음 의사결정 트리를 계산할 수 있습니다.

이제 몸에 비늘이 있고 태생이 아닌 냉혈동물인 새로운 종 A가 발견된다면 이 의사결정나무를 통해 그 종을 판단할 수 있다. 범주

관련된 주요 개념: 노드

① 루트 노드 : 들어오는 에지가 없고 나가는 에지가 있습니다. 초기 기능 중심 질문이 포함되어 있습니다.

② 중간 노드 : 들어오는 가장자리와 나가는 가장자리가 모두 있습니다. 들어오는 가장자리는 하나만 있지만 나가는 가장자리는 여러 개 있을 수 있습니다. 모두 특성에 관한 질문입니다.

③ 리프 노드: 들어오는 가장자리는 있고 나가는 가장자리는 없습니다. 각 리프 노드는 범주 레이블입니다.

④ 자식 노드와 부모 노드: 연결된 두 개의 노드 중 루트 노드에 더 가까운 것이 부모 노드이고, 다른 하나가 자식 노드입니다.

2. Sklearn의 의사결정 트리

관련 모듈: sklearn.tree

1. tree.DecisionTreeClassifier(분류 트리)

(1) 모델의 기본 매개변수

(2) 모델 속성

(3) 인터페이스

2. tree.DecisionTreeRegressor(회귀 트리)

중요한 매개변수표준

        회귀 트리는 분기 품질을 측정합니다., 지원되는 표준은 세 가지입니다.

    ① 평균 제곱 오차(MSE)를 사용하려면 "mse"를 입력하세요., 부모 노드와 리프 노드 사이의 평균 제곱 오차의 차이는 특징 선택의 기준으로 사용됩니다. 이 방법은 리프 노드의 평균값을 사용하여 L2 손실을 최소화합니다.

     ② Feldman 평균 제곱 오차를 사용하려면 "friedman_mse"를 입력하세요., 잠재 분기의 문제에 대해 Friedman의 수정 평균 제곱 오차를 사용하는 측정항목입니다.

     ③ 평균 절대 오차 MAE(평균 절대 오차)를 사용하려면 "mae"를 입력합니다., 이 메트릭은 리프 노드의 중앙값을 사용하여 L1 손실을 최소화합니다.

3. tree.export_graphviz(생성된 의사결정 트리를 특히 그리기를 위해 DOT 형식으로 내보내기)

4. 기타(보충)

        ① 정보 엔트로피 계산은 비키니 계수보다 느립니다. 왜냐하면 지니계수 계산에는 로그가 포함되지 않기 때문입니다.게다가 정보 엔트로피는 불순물에 더 민감하기 때문에정보 엔트로피를 지표로 사용하면 의사결정 트리의 성장이 더욱 "세분화"됩니다., 따라서 고차원 데이터나 노이즈가 많은 데이터의 경우 정보 엔트로피가 과적합되기 쉬우며 이 경우 지니 계수가 더 잘 작동하는 경우가 많습니다.

② random_state는 브랜치에서 무작위 패턴의 매개변수를 설정하는 데 사용됩니다. 기본값은 None입니다.낮은 차원 데이터(예: 붓꽃 데이터 세트)에서는 무작위성이 더 명확해집니다. . 임의의 정수를 입력하면 동일한 트리가 항상 성장하여 모델이 안정화됩니다.

③ 스플리터는 의사결정 트리의 무작위 옵션을 제어하는 ​​데도 사용됩니다. 두 가지 입력 값이 있습니다. 분기 시 의사결정 트리가 무작위이지만 여전히 분기에 대한 더 중요한 기능에 우선순위를 부여합니다. feature_importances_ 속성을 통해 볼 수 있음)"random"을 입력하면 분기할 때 의사결정 트리가 더 무작위화됩니다., 트리에는 불필요한 정보가 더 많이 포함되어 있기 때문에 트리가 더 깊고 커질 것이며 이러한 불필요한 정보로 인해 훈련 ​​세트에 대한 피팅이 감소할 것입니다.

④ 제한이 없으면 불순물을 측정하는 지수가 최적이 될 때까지 또는 더 이상 사용할 수 있는 기능이 없을 때까지 의사결정 트리가 과적합되는 경우가 많습니다.의사결정트리를 더 잘 일반화하려면 의사결정트리를 다음과 같이 만들어야 합니다.전정 . 가지치기 전략은 의사결정나무에 큰 영향을 미칩니다.올바른 가지치기 전략은 의사결정나무 알고리즘 최적화의 핵심이다

3. 의사결정나무의 장점과 단점

1. 장점

① 나무를 그려보고 볼 수 있어 이해하고 설명하기 쉽습니다.

② 데이터 준비가 거의 필요하지 않습니다. 다른 많은 알고리즘에는 데이터 정규화, 더미 변수 생성, Null 값 제거 등이 필요한 경우가 많습니다.하지만sklearn의 의사결정 트리 모듈은 결측값 처리를 지원하지 않습니다.

③ 이용 나무 비용(예를 들어 데이터를 예측할 때)는 트리를 훈련하는 데 사용되는 데이터 포인트 수를 로그로 나타낸 것인데, 이는 다른 알고리즘에 비해 비용이 매우 저렴합니다.

④ 수치형 데이터와 범주형 데이터를 동시에 처리할 수 있으며,회귀와 분류 모두 가능 . 다른 기술은 종종 하나의 변수 유형만으로 데이터 세트를 분석하는 데 특화되어 있습니다.

⑤ 다중 출력 문제, 즉 다중 라벨 문제 처리 가능 (단, 하나의 라벨에서 다중 라벨 분류 문제와 구별된다는 점 참고)

⑥은 흰색 상자 모델 , 결과를 쉽게 해석할 수 있습니다. 주어진 상황을 모델에서 관찰할 수 있다면 불리언 논리를 통해 조건을 쉽게 설명할 수 있습니다. 대조적으로, 블랙박스 모델(예: 인공 신경망)에서는 결과를 해석하기가 더 어려울 수 있습니다.

⑦ 통계적 검증을 통해 모형을 검증할 수 있어 모형의 신뢰성을 고려할 수 있다. 가정이 데이터를 생성한 실제 모델을 어느 정도 위반하더라도 잘 수행될 수 있습니다.

2. 단점

① 의사결정 트리 학습자는 데이터를 잘 일반화하지 못하는 지나치게 복잡한 트리를 생성할 수 있습니다. 이것을 과적합이라고 합니다. 치다,리프 노드에 필요한 최소 샘플 수 설정 또는 트리의 최대 깊이 설정과 같은 메커니즘이 문제를 피하려면 필요합니다.

② 의사결정 트리는 불안정할 수 있으며, 데이터의 작은 변화로 인해 전혀 다른 트리가 생성될 수 있으므로 이 문제는 통합된 알고리즘을 통해 해결되어야 합니다.

③ 의사결정나무 학습은 다음을 기반으로 한다.그리디 알고리즘, 그것은 의존한다 로컬 최적 최적화 (각 노드의 최적) 전체 최적을 달성하려고 시도하지만 이 접근 방식은 전역 최적 결정 트리 반환을 보장하지 않습니다. 이 문제는 앙상블 알고리즘으로도 해결할 수 있습니다. 랜덤 포레스트에서는 분기 프로세스 중에 특징과 샘플이 무작위로 샘플링됩니다.

④ XOR, 패리티, 멀티플렉서 문제와 같은 일부 개념은 의사결정 트리가 쉽게 표현되지 않기 때문에 학습하기 어렵습니다.

⑤ 라벨의 특정 클래스가 지배적이라면 의사결정 트리 학습자는 지배적인 클래스에 편향된 트리를 생성합니다.따라서 의사결정 트리를 피팅하기 전에 다음을 수행하는 것이 좋습니다.균형 잡힌 데이터 세트