> 백엔드 개발 > 파이썬 튜토리얼 > 랜덤 포레스트 알고리즘 원리 및 실제 적용에 대한 Python 예제(완전한 코드 포함)

랜덤 포레스트 알고리즘 원리 및 실제 적용에 대한 Python 예제(완전한 코드 포함)

王林
풀어 주다: 2024-01-23 18:09:06
앞으로
1155명이 탐색했습니다.

Random Forest 알고리즘은 다중 의사결정 트리와 부트스트랩 및 집계라는 기법을 사용하여 회귀 및 분류 작업을 수행할 수 있는 앙상블 기법입니다. 이에 대한 기본 아이디어는 단일 결정 트리에 의존하는 대신 여러 결정 트리를 결합하여 최종 출력을 결정하는 것입니다.

기계 학습의 Random Forest

Random Forest는 수많은 분류 트리를 생성합니다. 포리스트의 각 트리 아래에 입력 벡터를 배치하여 입력 벡터를 기반으로 새 개체를 분류합니다. 각 트리에는 "투표"라고 부르는 클래스가 할당되며, 최종적으로 가장 많은 표를 얻은 클래스가 선택됩니다.

다음 단계는 랜덤 포레스트 알고리즘의 작동 방식을 이해하는 데 도움이 됩니다.

1단계: 먼저 데이터 세트에서 무작위 샘플을 선택합니다.

2단계: 각 샘플에 대해 알고리즘은 결정 트리를 생성합니다. 그러면 각 의사결정 트리의 예측 결과가 얻어집니다.

3단계: 이 단계에서 예상되는 각 결과가 투표됩니다.

4단계: 마지막으로 가장 많은 표를 얻은 예측 결과를 최종 예측 결과로 선택합니다.

랜덤 포레스트 방법은 다음과 같은 장점이 있습니다

  • 다양한 의사결정 트리의 출력을 평균화하거나 통합하여 과적합 문제를 해결합니다.
  • 다양한 데이터 항목의 경우 랜덤 포레스트가 단일 의사결정 트리보다 더 나은 성능을 발휘합니다.
  • 랜덤 포레스트 알고리즘은 대량의 데이터가 누락된 경우에도 높은 정확도를 유지합니다.

Random Forest의 특징

Random Forest 알고리즘의 주요 특징은 다음과 같습니다.

  1. 은 현재 사용 가능한 알고리즘 중 가장 정확한 알고리즘입니다.
  2. 대규모 데이터베이스에 적합합니다.
  3. 수만 개의 입력 변수를 하나도 삭제하지 않고 처리할 수 있습니다.
  4. 숲이 성장함에 따라 일반화 오류에 대한 내부 편견 추정치가 생성됩니다.
  5. 대량의 데이터가 손실되는 경우에도 정확성을 유지합니다.
  6. 준 모집단에서 고르지 않은 데이터 세트의 부정확성을 균형잡기 위한 방법이 포함되어 있습니다.
  7. 생성된 숲은 저장되어 향후 다른 데이터로 활용될 수 있습니다.
  8. 변수와 범주 간의 관계를 보여주는 프로토타입을 만듭니다.
  9. 예제 쌍 사이의 거리를 계산합니다. 이는 클러스터링, 이상값 감지 또는 데이터에 대한 매력적인 보기 제공(규모 조정)에 유용합니다.
  10. 레이블이 지정되지 않은 데이터는 위 기능을 사용하여 비지도 클러스터링, 데이터 시각화 및 이상값 식별을 생성하는 데 사용할 수 있습니다.

랜덤 포레스트에는 기본 학습 모델로 여러 의사결정 트리가 있습니다. 데이터세트에서 행 샘플링과 특징 샘플링을 무작위로 수행하여 각 모델에 대한 샘플 데이터세트를 구성합니다. 이 부분을 부트스트랩이라고 합니다.

랜덤 포레스트 회귀 기법 사용 방법

  1. 특정 문제나 데이터를 설계하고 소스를 얻어 필요한 데이터를 결정합니다.
  2. 데이터가 접근 가능한 형식인지 확인하고, 그렇지 않으면 필요한 형식으로 변환하세요.
  3. 필요한 데이터를 얻는 데 필요할 수 있는 명백한 이상 현상과 누락된 데이터 포인트를 지정하세요.
  4. 기계 학습 모델을 만듭니다.
  5. 구현하려는 기준 모델을 설정합니다.
  6. 데이터 머신러닝 모델을 학습합니다.
  7. 테스트 데이터를 사용하여 모델에 대한 통찰력을 제공하세요
  8. 이제 테스트 데이터와 모델 예측 데이터의 성능 지표를 비교해 보세요.
  9. 만족스럽지 않으면 그에 따라 모델을 개선하거나 다른 데이터 모델링 기술을 사용해 볼 수 있습니다.
  10. 이 단계에서는 얻은 데이터가 그에 따라 해석되고 보고됩니다.

Random Forest 알고리즘 프로세스의 Python 구현

1단계: 필요한 라이브러리를 가져옵니다.

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
로그인 후 복사

2단계: 데이터세트 가져오기 및 인쇄

ata=pd.read_csv('Salaries.csv')
print(data)
로그인 후 복사

3단계: 데이터세트에서 x까지 모든 행과 열 1을 선택하고 y

x=df.iloc[: ,:-1]로 모든 행과 열 2를 선택합니다. #":"는 모든 행을 선택한다는 뜻이고, ":-1"은 마지막 열을 무시한다는 의미입니다.

y=df.iloc[:,-1:]#":"는 모든 행을 선택한다는 뜻입니다. "- 1:"은 마지막 열을 제외한 모든 열을 무시한다는 의미입니다.

#"iloc()" 함수를 사용하면 데이터세트의 특정 셀을 선택할 수 있습니다. 즉, 데이터 프레임이나 데이터세트에서 특정 셀을 선택하는 데 도움이 됩니다. 값 집합에서 특정 행이나 열에 속하는 값을 선택합니다.

4단계: 데이터세트에 임의의 포리스트 회귀자를 맞추세요

from sklearn.ensemble import RandomForestRegressor
regressor=RandomForestRegressor(n_estimators=100,random_state=0)
regressor.fit(x,y)
로그인 후 복사

5단계: 새로운 결과 예측

Y_pred=regressor.predict(np.array([6.5]).reshape(1,1))
로그인 후 복사

6단계: 결과 시각화

随机森林算法原理 随机森林python实例流程(附完整代码)

X_grid=np.arrange(min(x),max(x),0.01)
X_grid=X_grid.reshape((len(X_grid),1))
plt.scatter(x,y,color='blue')
plt.plot(X_grid,regressor.predict(X_grid),
color='green')
plt.title('Random Forest Regression')
plt.xlabel('Position level')
plt.ylabel('Salary')
plt.show()
로그인 후 복사

위 내용은 랜덤 포레스트 알고리즘 원리 및 실제 적용에 대한 Python 예제(완전한 코드 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:163.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿