Menu
CoddyTech

모델 평가하기

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

모델이 얼마나 괜찮은지는 정확도, 즉 테스트 행 중 올바르게 맞힌 비율이 말해 줍니다. 이를 성의 없는 추측과 비교해 보세요:

테스트 대출 50건의 정확도를 나타내는 막대 2개: 항상 제때 상환한다고 추측하면 0.78, k-NN 모델은 0.88

이 라이브러리의 대출 도서 중 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는 한 번의 호출로 예측하고 계산하며, 기준선은 항상 가장 흔한 학습 레이블로 답합니다.

모델은 기준선을 넘어설 때만 그 가치를 인정받습니다.

challenge icon

챌린지

쉬움

양봉가의 센서는 hives.csv에 있는 벌통 160개의 상태를 관찰합니다. swarm은 각 벌통에 분봉이 있었는지를 나타냅니다. 센서 하나로 분봉을 예측할 수 있을까요? 시작 코드는 센서 이름을 입력받아 해당 센서만으로 모델을 학습합니다.

  1. 테스트 정확도를 소수점 이하 3자리까지 반올림하여 출력하세요.
  2. 항상 예측하는 레이블의 이름과 함께 기준선 값을 출력하세요.
  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)

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

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

지도 학습의 모든 레슨

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