Menu
CoddyTech

포레스트가 작동하는 이유

Coddy Machine Learning 여정의 지도 학습 섹션에 포함된 레슨. 58개 중 42번째.

포리스트의 트리들은 의도적으로 서로 다릅니다. 각 트리는 부트스트랩 샘플로 학습합니다. 행을 복원 추출 방식으로 무작위로 뽑기 때문에, 어떤 행은 반복해서 뽑히고 어떤 행은 선택되지 않습니다.

각 질문도 몇 가지 특성을 무작위로 선택합니다. 트리마다 서로 다른 실수를 하고, 투표로 그 실수들이 상쇄됩니다. 두 종의 반딧불이:

반딧불이 150마리를 보여 주는 차트 두 개. 가로축은 섬광 길이, 세로축은 멈춤 시간이며, 한 종은 파란색 원으로, 다른 종은 빨간색 삼각형으로 표시되어 있습니다. 왼쪽은 트리 하나로, 경계선이 가느다란 띠 모양으로 뻗어 반딧불이 한 마리씩에 닿습니다. 오른쪽은 트리 100개의 포리스트로, 두 무리 사이에 매끄러운 경계선이 있습니다.

숲은 대부분의 나무가 동의하는 곳에만 띠를 유지합니다.

트리들은 forest.estimators_에 들어 있습니다:

third = forest.estimators_[2]
print(round(third.score(X_test, y_test), 3))

이 값은 0.737을 출력합니다. 전체 포리스트의 점수는 0.895입니다.

challenge icon

챌린지

중급

숲은 자신의 나무들을 이길까요? 시작 코드는 forest를 riders.csv에 맞추고, 160 km 라이딩을 6시간 이내에 완주했거나 완주하지 못한 라이더들을 사용하며, 차트를 설정합니다.

  1. 테스트 행에서 숲의 모든 나무를 평가합니다.
  2. 점수를 히스토그램으로 나타내고, bins=10을 사용한 뒤, 빨간색 세로선으로 forest_acc를 표시합니다.
  3. 숲이 이기는 나무의 수를 출력합니다.

다른 라이딩에서는 The forest beats 88 of its 100 trees가 출력되었고 다음과 같은 그래프가 그려졌습니다.

The Forest and Its Trees라는 제목의 히스토그램: 나무의 테스트 정확도는 약 0.53에서 0.85까지이며, 대부분 0.70 근처에 있고, 빨간색 세로선은 약 0.77로 막대 대부분의 오른쪽에 위치함

그런 다음 Coddy가 여러분의 차트를 설명합니다.

직접 해보기

import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier

# 160 km 자선 자전거 행사 참가자: 6시간 이내 완주 (1) 또는 미완주 (0)
riders = pd.read_csv("riders.csv")
features = ["weekly_km", "long_ride_km", "age", "years_riding", "rest_days", "sleep_hours"]
X = riders[features].to_numpy()  # 포레스트의 트리들이 기대하는 형식인 일반 배열
y = riders["under_6h"].to_numpy()
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)

forest = RandomForestClassifier(n_estimators=100, random_state=0)
forest.fit(X_train, y_train)
forest_acc = forest.score(X_test, y_test)

fig, ax = plt.subplots()
ax.set_title("The Forest and Its Trees")
ax.set_xlabel("Test accuracy")
ax.set_ylabel("Trees")

# 아래에 코드를 작성하세요
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

지도 학습의 모든 레슨

직접 연습해 보세요: 온라인 Python 컴파일러