모델 평가하기
Coddy Machine Learning 여정의 지도 학습 섹션에 포함된 레슨. 58개 중 4번째.
모델이 얼마나 괜찮은지는 정확도, 즉 테스트 행 중 올바르게 맞힌 비율이 말해 줍니다. 이를 성의 없는 추측과 비교해 보세요:
이 라이브러리의 대출 도서 중 78%가 기한 내에 반납되었으므로, 매번 제시간에 반납된다고 예측하면 점수는 0.78입니다. 이것이 기준선입니다.
from sklearn.metrics import accuracy_score
pred = model.predict(X_test)
print(accuracy_score(y_test, pred))
print(model.score(X_test, y_test))
common = y_train.value_counts().index[0]
print((y_test == common).mean())이 코드는 0.88, 0.88, 0.78을 출력합니다. score는 한 번의 호출로 예측하고 계산하며, 기준선은 항상 가장 흔한 학습 레이블로 답합니다.
모델은 기준선을 넘어설 때만 그 가치를 인정받습니다.
챌린지
쉬움양봉가의 센서는 hives.csv에 있는 벌통 160개의 상태를 관찰합니다. swarm은 각 벌통에 분봉이 있었는지를 나타냅니다. 센서 하나로 분봉을 예측할 수 있을까요? 시작 코드는 센서 이름을 입력받아 해당 센서만으로 모델을 학습합니다.
- 테스트 정확도를 소수점 이하 3자리까지 반올림하여 출력하세요.
- 항상 예측하는 레이블의 이름과 함께 기준선 값을 출력하세요.
- 모델이 기준선보다 나은지 출력하세요.
다른 양봉장과 weight_change_kg의 경우:
Model on weight_change_kg: 0.775
Always "no": 0.7
Beats the baseline: yes직접 해보기
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
# 벌통당 한 행: 센서 데이터와 분봉 여부
hives = pd.read_csv("hives.csv")
sensor = input()
X = hives[[sensor]]
y = hives["swarm"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
model = KNeighborsClassifier()
model.fit(X_train, y_train)
# 아래에 코드를 작성하세요
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
지도 학습의 모든 레슨
직접 연습해 보세요: 온라인 Python 컴파일러