클래스 시각화
Coddy Machine Learning 여정의 데이터와 시각화 섹션에 포함된 레슨. 60개 중 55번째.
클래스들이 서로 분리된 군집을 이루나요? 클래스별로 산점도를 하나씩 그리고, 각 산점도에 target_names에서 가져온 이름을 지정하세요:
그 뒤에 있는 코드:
df = iris.frame
fig, ax = plt.subplots()
for i in range(3):
group = df[df["target"] == i]
ax.scatter(group["sepal length (cm)"], group["sepal width (cm)"], label=iris.target_names[i])
ax.set_title("Iris flowers by sepal size")
ax.set_xlabel("sepal length (cm)")
ax.set_ylabel("sepal width (cm)")
ax.legend()
plt.show()각 호출은 고유한 색상을 가지며, label=iris.target_names[i]는 0, 1, 2를 범례에 표시할 이름으로 바꿉니다.
Setosa는 뚜렷하게 구분되지만, versicolor와 virginica는 겹칩니다. 데이터 분포가 겹치는 부분에서 모델이 실수를 하게 됩니다.
챌린지
중급악성 샘플과 양성 샘플은 서로 다른 군집을 이루나요? 팀원이 만든 차트로는 알 수 없습니다. load_breast_cancer의 모든 데이터를 하나의 산점도로, 한 가지 색으로 그리기 때문입니다.
- 그 산점도를 클래스별 산점도로 바꾸세요. 가로축에는
mean radius, 세로축에는mean concave points를 표시하세요. - 각 산점도에
target_names에서 가져온 클래스 이름을 붙이세요.
준비된 줄은 그대로 두세요. 아래 차트는 다른 두 측정값으로 그린 것으로, 여러분의 차트도 이와 비슷해야 합니다.
프로그램은 아무것도 출력하지 않습니다. Coddy가 차트를 확인하고 설명합니다.
직접 해보기
import matplotlib.pyplot as plt
from sklearn.datasets import load_breast_cancer
cancer = load_breast_cancer(as_frame=True)
df = cancer.frame
# 아래 줄은 변경하지 마세요
fig, ax = plt.subplots()
# 여기에서 코드를 수정하세요
ax.scatter(df["mean radius"], df["mean concave points"])
# 아래 줄들은 변경하지 마세요
ax.set_title("Cells by Diagnosis")
ax.set_xlabel("mean radius")
ax.set_ylabel("mean concave points")
ax.legend()
plt.show()
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
데이터와 시각화의 모든 레슨
직접 연습해 보세요: 온라인 Python 컴파일러