특성과 레이블 비교
Coddy Machine Learning 여정의 머신러닝을 위한 통계 섹션에 포함된 레슨. 64개 중 58번째.
레이블과 함께 변하는 특성은 무엇일까요? 각 특성과 레이블(악성은 0, 양성은 1) 사이의 상관관계를 구하고, 상관관계의 강도에 따라 순위를 매겨 보세요.
X.corrwith(y)는 모든 특성의 r을 한 번에 제공합니다:
X = cancer.data[cancer.feature_names[:10]]
r = X.corrwith(cancer.target)
strength = np.abs(r).sort_values(ascending=False)
for name in strength.index[:3]:
print(name, np.round(r[name], 2))다음과 같이 출력됩니다:
mean concave points -0.78
mean perimeter -0.74
mean radius -0.73음의 r은 해당 특성이 클래스 0에서 더 크다는 뜻입니다. 즉, 악성 세포에는 오목한 점이 더 많습니다. np.abs는 부호와 관계없이 강도를 기준으로 순위를 매깁니다.
0에 가까운 특성은 프랙털 차원과 마찬가지로 클래스 간 차이가 거의 없습니다. 제외할 후보입니다.
챌린지
중급모델은 어떤 조직 특성부터 시도해야 할까요? 입력은 그룹인 error 또는 worst와 k이며, 시작 코드에서는 그룹의 특성을 X에 넣습니다.
y와의 r 강도에 따라 특성의 순위를 매깁니다.- 상위
k개와 부호가 있는 r 값을 소수점 이하 2자리까지 출력합니다. - 부호를 확인합니다. 가장 강한 특성의 클래스별 평균을 출력합니다.
mean 그룹과 k = 2인 경우:
Top 2 mean features:
mean concave points: -0.78
mean perimeter: -0.74
mean concave points by class: malignant 0.09, benign 0.03직접 해보기
import numpy as np
from sklearn.datasets import load_breast_cancer
group = input()
k = int(input())
cancer = load_breast_cancer(as_frame=True)
df = cancer.frame
y = cancer.target
# 그룹의 10개 특성: mean, error 또는 worst
start = {"mean": 0, "error": 10, "worst": 20}[group]
X = cancer.data[cancer.feature_names[start:start + 10]]
# 아래에 코드를 작성하세요
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
머신러닝을 위한 통계의 모든 레슨
직접 연습해 보세요: 온라인 Python 컴파일러