>  기사  >  백엔드 개발  >  Python에서 의사결정나무 알고리즘을 구현하는 원리와 구현방법

Python에서 의사결정나무 알고리즘을 구현하는 원리와 구현방법

PHPz
PHPz앞으로
2024-01-22 19:24:11466검색

决策树算法原理 Python实现决策树算法

결정 트리 알고리즘은 지도 학습 알고리즘의 범주에 속하며 연속형 및 범주형 출력 변수에 적합하며 일반적으로 분류 및 회귀 문제를 해결하는 데 사용됩니다.

의사결정 트리는 각 내부 노드가 속성 테스트를 나타내고, 각 분기가 테스트 결과를 나타내며, 각 노드가 클래스 레이블에 해당하는 흐름도와 유사한 트리 구조입니다.

의사결정 트리 알고리즘 아이디어

전체 훈련 세트를 루트로 취급하는 것부터 시작하세요.

정보 획득의 경우 속성이 범주형이라고 가정하고, 지니 지수의 경우 속성이 연속형이라고 가정합니다.

레코드는 속성 값을 기준으로 재귀적으로 배포됩니다.

통계적 방법을 사용하여 속성을 루트 노드로 정렬합니다.

가장 좋은 속성을 찾아 트리의 루트 노드에 배치하세요.

이제 데이터 세트의 훈련 세트를 하위 세트로 분할합니다. 하위 집합을 만들 때 교육 데이터 세트의 모든 하위 집합이 동일한 속성 값을 가져야 합니다.

각 하위 집합에서 1과 2를 반복하여 모든 가지에서 리프 노드를 찾습니다.

Python

에서 의사결정 트리 알고리즘을 구현하려면

구성 단계와 데이터 세트 전처리라는 두 가지 구성 및 운영 단계가 필요합니다. Python sklearn 패키지를 사용하여 데이터 세트를 학습 및 테스트에서 분할합니다. 분류기를 훈련시킵니다.

운영단계에서는 예측을 해보세요. 계산 정확도.

데이터 가져오기, 데이터를 가져오고 조작하기 위해 Python에서 제공하는 pandas 패키지를 사용합니다.

여기에서는 데이터세트를 다운로드하지 않고 UCI 사이트에서 직접 데이터세트를 가져오기 위해 URL을 사용하고 있습니다. 시스템에서 이 코드를 실행하려고 할 때 시스템이 인터넷에 연결되어 있는지 확인하십시오.

데이터세트가 ","로 구분되어 있으므로 sep 매개변수의 값을 as로 전달해야 합니다.

또 한 가지 주의할 점은 데이터세트에 헤더가 포함되어 있지 않기 때문에 Header 매개변수의 값을 없음으로 전달한다는 것입니다. 헤더 매개변수를 전달하지 않으면 데이터세트의 첫 번째 행을 헤더로 간주합니다.

데이터 슬라이싱은 모델을 교육하기 전에 데이터 세트를 교육 및 테스트 데이터 세트로 분할해야 합니다.

훈련용과 테스트용 데이터세트를 분할하기 위해 sklearn 모듈 train_test_split

을 사용했습니다. 먼저 대상 변수를 데이터세트의 속성에서 분리해야 합니다.

X=balance_data.values[:,1:5]
Y=balance_data.values[:,0]

위는 데이터세트를 구분하는 코드 줄입니다. 변수 X에는 속성이 포함되고, 변수 Y에는 데이터 세트의 대상 변수가 포함됩니다.

다음 단계는 훈련 및 테스트 목적으로 데이터 세트를 분할하는 것입니다.

X_train,X_test,y_train,y_test=train_test_split(
X,Y,test_size=0.3,random_state=100)

이전 줄은 훈련용과 테스트용 데이터 세트를 분할합니다. 훈련과 테스트 사이에 70:30의 비율로 데이터 세트를 분할하므로 test_size 매개변수의 값을 0.3으로 전달합니다.

random_state 변수는 무작위 샘플링에 사용되는 의사 난수 생성기 상태입니다.

위 내용은 Python에서 의사결정나무 알고리즘을 구현하는 원리와 구현방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 163.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제