728x90
반응형

유방암 데이터 세트(Wisconsin Diagnostic Breast Cancer)

  • 유방암 세포의 특징 10개에 대해 평균, 표준 오차, 최대 이상치가 기록되어 있다.
  • 위스콘신 대학교에서 제공한 유방암 진단 결과 데이터
  • 레코드수 - 569개

 

해결할 문제는 유방암 데이터 샘플이 악성 종양(True)인지 정상 종양(False)인지 구분하는 이진 분류 문제

 

의학분야에서 건강한 종양을 양성 종양, 건강하지 않은 종양을 악성 종양이라고 부른다.

하지만 이진 분류에서는 해결해야 할 목표를 양성 샘플이라고 부른다.

해결과제가 악성 종양이므로 양성 샘플이 악성 종양인 셈이다.

 

  의학 이진 분류
좋음 양성 종양(정상 종양) 음성 샘플
나쁨 악성 종양 양성 샘플 (해결 과제)

 

 

유방암 데이터 세트 준비하기

# 유방암 데이터 세트 준비
# 사이킷런의 datasets 모듈 아래에 있는 load_breast_cancer() 함수를 사용하면 된다.

import matplotlib.pyplot as plt
import numpy as np
from sklearn.datasets import load_breast_cancer
cancer = load_breast_cancer()

 

 

입력 데이터 확인해보기

# 입력 데이터 확인

print("cancer.data.shape :",cancer.data.shape, "cancer.target.shape : ",cancer.target.shape)

[그림1] 입력 데이터 확인

 

레코드수가 569개 였으므로 정상

 

 

cancer.data[:5] # 실수 범위의 값, 양수와 음수가 석여있다.

[그림2] 데이터 확인

 

 

박스 플롯으로 특성 사분위 관찰하기

# 박스플롯으로 특성 사분위 관찰
# 박스플롯은 1사분위와 3사분위 값으로 상자를 그린 다음 그 안에 2사분위(중간값)값을 표시한다. 
# 그 다음 1사분위와 3사분위 사이 거리(interqurartile range)의 거리 1.5배만큼 위아래 거리에서 각각 가장 큰 값과 가장 작은 갓까지 수염을 그린다.


plt.boxplot(cancer.data)
plt.xlabel('featrue')
plt.ylabel('value')
plt.show()

[그림3] 박스플롯 유방암 데이터

 

특성이 다른 3개 확인해보기

# 4, 14, 24번 특성이 다른 특성보다 분포가 크다.  데이터 확인하기
cancer.feature_names[[3,13,23]] # index 0 부터 시작하니 3,13,23
# 모두 넓이와 관련된 특성

[그림4] 특성다른 3개 확인

 

타깃 데이터 확인

# 타깃 데이터 확인

np.unique(cancer.target, return_counts=True)
# cancer.target 배열 안에는 0과 1만 들어있다. 
# 0은 음성 1은 양성 클래스를 의미한다.
# unique()함수를 사용하면 고유한 값을 찾아 반환한다. 
# return_counts 매개변수를 True로 지정하면 고유한 값이 등장하는 횟수까지 세어 반환한다.
# 212개 음성 클래스, 357개 양성 클래스

[그림5] 타깃 데이터 확인하기

 

unique함수 사용 시 직접 확인을 안 해도 각 데이터의 클래스와 구성을 알 수 있다.

 

 

훈련 데이터 저장

# 훈련 데이터 세트 저장
x = cancer.data
y = cancer.target
728x90
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기