트리는 질문을 합니다
Coddy Machine Learning 여정의 지도 학습 섹션에 포함된 레슨. 58개 중 27번째.
이 장은 농장 대출을 설명하는 트리로 끝납니다. 결정 트리는 스무고개처럼 작동합니다. 특성에 대해 한 번에 예 또는 아니요로 답하는 질문을 하나씩 던져 답에 도달합니다.
훈련 과정에서는 각 질문의 답이 클래스를 가능한 한 깔끔하게 나누도록 질문을 선택합니다:
from sklearn.tree import DecisionTreeClassifier
tree = DecisionTreeClassifier(max_depth=2, random_state=0)
tree.fit(X_train, y_train) # 꽃잎의 길이와 너비, cm
print(tree.predict([[4.5, 1.4]]))이렇게 하면 [1]인 versicolor가 출력됩니다. max_depth=2는 경로당 두 개의 질문을 허용합니다. 스케일링은 필요하지 않습니다. 각 질문은 하나의 특성을 읽습니다.
챌린지
중급카메라 대여점은 장비가 늦게 반납될 수 있을 때 알림 문자를 보냅니다. 시작 코드는 과거 대여 데이터를 분할하고 새 대여 정보를 한 행짜리 표 new_rental에 읽어 들입니다.
- 경로당 질문 수가 최대 2개인 결정 트리를 학습시키세요(
random_state=0). - 테스트 정확도(소수점 이하 3자리)와 새 대여에 대한 예측 결과를 출력하세요. 1이면
likely late, 0이면likely on time입니다.
다른 대여점의 경우:
Test accuracy: 0.792
This rental: likely on time직접 해보기
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
# 이전 대여 기록: late의 1은 장비가 늦게 반납되었음을 뜻합니다
rentals = pd.read_csv("rentals.csv")
features = ["rental_weeks", "gear_value_usd", "customer_age", "late_before"]
X_train, X_test, y_train, y_test = train_test_split(rentals[features], rentals["late"], test_size=0.25, random_state=0)
# 새 대여 건: 예약한 주 수, 장비의 가치, 고객의 나이, 지금까지의 연체 반납 횟수
weeks = int(input())
value = int(input())
age = int(input())
late_before = int(input())
new_rental = pd.DataFrame([[weeks, value, age, late_before]], columns=features)
# 아래에 코드를 작성하세요
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
지도 학습의 모든 레슨
직접 연습해 보세요: 온라인 Python 컴파일러