캐글의 유방암 초음파 이미지 데이터셋을 활용하여 CNN classification Task를 진행해보고자 합니다.
해당 코드는 작성자의 Github에 공유되어 있습니다.
유방암은 여성 사망 원인 중 하나로, 조기 발견이 매우 중요하다. 본 프로젝트는 유방 초음파 이미지를 사용하여 유방암을 분류하는 모델을 개발하는 것을 목표로 한다.
이 데이터셋은 2018년에 25세에서 75세 여성 600명을 대상으로 수집된 유방 초음파 이미지를 포함하며, 총 780개의 이미지가 PNG 형식으로 이루어져 있다.
이미지 크기는 평균 500*500 픽셀이고, 정상, 양성, 악성 세 가지 클래스로 이루어져 있다고 한다.
해당 코드는 Github 레파지토리의
00_eda.py에 공유되어있습니다.
실제로 딥러닝 학습을 하기 전, 데이터셋을 충분히 이해하는 것은 데이터의 품질을 확인하고 데이터의 분포를 파악하여 적절한 모델을 선택하고 전처리방법을 강구하는 데에 매우 중요하다.
우선 데이터셋 설명을 통해 각각의 이미지의 크기가 다름을 유추할 수 있다. 그러므로 우선 이미지의 크기를 확인해보았다.

Class: benign
Average Width: 614.19
Average Height: 495.86
Max Width: 1028
Max Height: 719
Min Width: 315
Min Height: 324
Width Quartiles: [554. 563. 714.]
Height Quartiles: [464. 471. 574.]
Class: malignant
Average Width: 597.90
Average Height: 493.96
Max Width: 1048
Max Height: 677
Min Width: 190
Min Height: 332
Width Quartiles: [552. 564. 650.]
Height Quartiles: [463. 474. 555.]
Class: normal
Average Width: 651.17
Average Height: 532.85
Max Width: 948
Max Height: 712
Min Width: 391
Min Height: 310
Width Quartiles: [556. 616. 765.]
Height Quartiles: [470. 493. 587.]
class benign : 891 files found!
class malignant : 421 files found!
class normal : 266 files found!
width, height의 평균과 사분위수를 확인해본 결과, 대략적으로 width는 500~700 사이, height는 450~600 사이에 50%의 데이터가 존재함을 확인했다.
3개의 클래스에는 각각 891개, 421개, 266개의 파일이 확인된다. 클래스별 데이터 갯수 편차가 있기 때문에 학습 시 stratified sampling과 같은 methodology가 요구된다.
또한 클래스별 데이터 갯수도 적은 편이기 때문에 필요에 따라 data-augmentation이 요구되며, k-fold cross-validation 기법을 사용할 수도 있다.

시각적으로도 normal 클래스에서는 종양이 관찰되지 않고, malignant 클래스와 benign 클래스에서는 관찰됨이 확인된다.
malignant클래스와 benign클래스간에는 선명도 정도의 차이가 있는 것이 대략적으로 확인되었다.
class benign : 437 files found!
Class: benign
Mean of pixel values: 86.28
Standard deviation of pixel values: 8.82
class malignant : 210 files found!
Class: malignant
Mean of pixel values: 79.77
Standard deviation of pixel values: 9.29
class normal : 133 files found!
Class: normal
Mean of pixel values: 81.01
Standard deviation of pixel values: 9.45
Mean of pixel values(All class): 83.63
Standard deviation of pixel values(All class): 9.16
추후 Normalization을 위해 채널별 평균 표준편차도 확인하였다.