차례:
- 데이터로드
- 3 번 행은 방금 만든 무작위 포리스트 분류기의 인스턴스를 가져온 다음 fit 메서드를 호출하여 교육 데이터 집합으로 모델을 교육합니다.
- n_estimators
비디오: [GLOBAL LEADERS FORUM 2018] Session1 (세션1) - 다닐 프로호로프 (Danil Prokhorov) 2024
임의의 산림 모델은 예측 분석에 사용된다. 모델을 만들기 위해 의사 결정 트리의 앙상블 (선택)을 취합니다. 아이디어는 약한 학습자 (훈련 데이터의 무작위 하위 집합)의 무작위 표본을 추출하여 가장 강력하고 최상의 모델을 선택하도록합니다. 임의의 포리스트 모델은 분류 또는 회귀에 사용할 수 있습니다. 다음 예에서는 임의의 포리스트 모델을 사용하여 아이리스 종을 분류합니다.
데이터로드
이 코드 목록은
홍채
데이터 세트를 sklearn의 >>>> 세션에로드합니다. 데이터 집합 가져 오기 load_iris >>>> iris = load_iris ()
분류 자의 인스턴스 만들기
다음 두 줄의 코드는 분류 자의 인스턴스를 만듭니다. 첫 번째 행은 임의의 포리스트 라이브러리를 가져옵니다. 두 번째 줄은 무작위 포리스트 알고리즘의 인스턴스를 만듭니다.
>>>> sklearn에서. 앙상블 가져 오기 RandomForestClassifier >>>> rf = RandomForestClassifier (n_estimators = 15,
random_state = 111)
생성자의
n_estimators
매개 변수는 임의 포리스트 모델에 일반적으로 사용되는 튜닝 매개 변수입니다. 이 값은 포리스트의 트리 수를 작성하는 데 사용됩니다. 일반적으로 데이터 세트의 10 ~ 100 %이지만 사용하는 데이터에 따라 다릅니다. 여기서 값은 데이터의 10 % 인 15로 설정됩니다. 나중에 매개 변수 값을 150 (100 %)으로 변경하면 동일한 결과가 생성됩니다.
n
_estimators
는 모델 성능과 overfitting을 조정하는 데 사용됩니다. 값이 클수록 성능은 좋지만 초과 구현 비용은 들게됩니다. 값이 작을수록 오버 피팅의 가능성은 높아지지만 성능이 저하됩니다. 또한, 수를 늘리면 일반적으로 정확도가 향상되어 성능이 크게 향상 될 수 있습니다. 생성자에서 생략 된 경우 매개 변수의 기본값은 10입니다.
무작위 포리스트 분류기 인스턴스를 만들기 전에 데이터 집합을 교육 및 테스트 집합으로 분할해야합니다. 다음 코드는이 작업을 수행합니다: sklearn import cross_validation >>>> X_train, X_test, y_train, y_test =
cross_validation에서 >>>>. train_test_split (홍채 데이터, 홍채 목표, test_size = 0.10, random_state = 111) >>>> rf = rf. fit (X_train, y_train)
1 행은 데이터 세트를 두 부분으로 나눌 수있는 라이브러리를 가져옵니다.2 행은 데이터 집합을 두 부분으로 나눈 라이브러리에서 함수를 호출하고 현재 분할 된 데이터 집합을 두 쌍의 변수에 할당합니다.
3 번 행은 방금 만든 무작위 포리스트 분류기의 인스턴스를 가져온 다음 fit 메서드를 호출하여 교육 데이터 집합으로 모델을 교육합니다.
테스트 데이터 실행
다음 코드에서 첫 번째 행은 테스트 데이터 집합을 모델에 공급 한 다음 세 번째 행은 >>>> predicted = rf 출력을 표시합니다. 예측 된 (X_test) >>>> 예측 된 배열 ([0, 0, 2, 2, 2, 0, 0, 2, 2, 1, 2, 0, 1, 2, 2]) > 모델 평가
예측 결과를
y_test
배열과 교차 참조 할 수 있습니다. 결과적으로 두 개의 테스트 데이터 포인트가 잘못 예측되었다는 것을 알 수 있습니다. 따라서 임의의 포리스트 모델의 정확도는 86. 67 %입니다.
sklearn import metrics >>>>
- array ([0, 0, 2, 2, 2, 0, 0, 2, 2, 1, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 0, 1, 2, 2]) >>>> y_test
- 2, 2]) >>>> 메트릭스. precision_score (y_test, predicted)
- 0. (True, True, True, True, False, True, True, True, True, True, True, True, True, True) true, false, True, dtype = bool)
n_estimators
매개 변수를 150으로 변경하면 임의의 포리스트 모델이 어떻게 수행됩니까? 이 작은 데이터 세트에 차이가 발생하지 않는 것 같습니다. 동일한 결과를 생성합니다: >>>> rf = RandomForestClassifier (n_estimators = 150,
random_state = 111) >>>> rf = rf. fit (X_train, y_train) >>>> forecast = rf. 예측 된 (X_test) >>>> 예측 된 배열 ([0, 0, 2, 2, 2, 0, 0, 2, 2, 1, 2, 0, 1, 2, 2]) >