손글씨 숫자 인식
Coddy Machine Learning 여정의 지도 학습 섹션에 포함된 레슨. 58개 중 57번째.
우체국의 분류 기계는 한눈에 보는 숫자에서 본 8×8 스캔 이미지로부터 손으로 쓴 우편번호 숫자를 읽습니다. load_digits:
두 후보가 그 일자리를 원합니다. 엔지니어가 제안한 k를 사용하는 k-NN과 100개의 트리로 이루어진 랜덤 포레스트입니다.
이번에는 실수가 중요합니다. 사무실에서는 더 공정한 모델과 보지 못한 스캔에서의 점수, 그리고 가장 흔한 혼동 사례를 알아야 하므로, 해당 숫자는 사람이 확인합니다.
챌린지
어려움프로그램은 엔지니어의 k를 읽고, 시작 코드는 제목이 있는 차트를 설정합니다.
- 계층화된 테스트 데이터 4분의 1을 분리합니다.
random_state=0. - 학습 데이터에서 해당
k를 사용하는 k-NN과 트리 100개로 구성된 랜덤 포레스트(random_state=0)를 5겹 교차 검증합니다. 각 평균(소수점 3자리)과 승자를 출력합니다. - 승자를 학습시키고 테스트 정확도를 출력합니다.
- 테스트 혼동 행렬에서 가장 큰 오분류를 출력한 다음,
ax에 행렬을 그려 표시합니다.
다른 머신과 3을 사용하면:
k-NN: CV accuracy 0.979
Random forest: CV accuracy 0.968
Winner: k-NN
Test accuracy: 0.976
Most confused: 7 read as 2 (3 times)그런 다음 Coddy가 행렬을 표시합니다.
직접 해보기
import matplotlib.pyplot as plt
from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split, cross_val_score
from sklearn.neighbors import KNeighborsClassifier
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay
digits = load_digits()
X = digits.data
y = digits.target
k = int(input())
fig, ax = plt.subplots()
ax.set_title("Test Digits")
# 아래에 코드를 작성하세요
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
지도 학습의 모든 레슨
직접 연습해 보세요: 온라인 Python 컴파일러