클래스별 탐색
Coddy Machine Learning 여정의 데이터와 시각화 섹션에 포함된 레슨. 60개 중 54번째.
어떤 측정값으로 종을 구분할 수 있을까요? 꽃잎 길이에 따라 모든 꽃을 한 줄에 놓고, 종마다 한 줄씩 배치해 보세요:
레이블별로 groupby를 사용하면 해당 평균을 계산합니다:
df = iris.frame
means = df.groupby("target")["petal length (cm)"].mean()
print(means)다음과 같이 출력됩니다:
target
0 1.462
1 4.260
2 5.552
Name: petal length (cm), dtype: float64클래스들이 서로 멀리 떨어져 있다는 뜻이므로, 꽃잎 길이가 클래스들을 구분합니다. 모델은 이를 주요 기준으로 삼게 됩니다.
비율은 차이가 얼마나 큰지 알려 줍니다. means[2] / means[1]는 약 1.3입니다. 1에서 멀수록 해당 특성이 두 클래스를 더 잘 구분해 줍니다.
챌린지
중급어떤 세포 측정값이 악성 샘플을 가려낼까요? load_breast_cancer에서 클래스 0은 악성이고 클래스 1은 양성입니다. 시작 코드는 일부 특성 이름을 features에 읽어 들입니다.
- 각 특성에 대해 악성 평균을 양성 평균으로 나눈 값을
round를 사용해 소수점 이하 2자리까지 반올림하여 출력하세요. - 반복문이 끝난 후 비율이 가장 큰 특성의 이름을 출력하세요.
worst radius와 worst texture 특성의 경우:
worst radius: malignant is 1.58 times benign
worst texture: malignant is 1.25 times benign
Best separator: worst radius직접 해보기
from sklearn.datasets import load_breast_cancer
cancer = load_breast_cancer(as_frame=True)
# 비교할 특성
n = int(input())
features = []
for i in range(n):
features.append(input())
# 아래에 코드를 작성하세요
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
데이터와 시각화의 모든 레슨
직접 연습해 보세요: 온라인 Python 컴파일러