스터디 포스트 >  실전문제로 배우는 머신러닝

유방암 분류

오혜수 멘토
안녕하세요! 저는 머신러닝에 관심 있는 취준생입니다!

실전문제로 배우는 머신러닝 - 1주차

 
💡
머신러닝 실무 프로젝트 : “유방암 분류”
 
 
저희의 첫 번째 머신러닝 실무 프로젝트는 ‘유방암 분류’ 입니다!
 
📰
유방암 진단한 ‘구글 AI’, 99%의 정확도 기록
구글 AI와 해군 메디컬 센터가 암을 진단하는 AI 시스템을 개발했다. 이를 통해 99 %의 종양 탐지 정확도를 달성했다.
 
출처 : KOTRA 실리콘밸리 뉴스
 
뉴스에서도 알 수 있듯이, 숙련된 의사들은 79%의 정확도로 암을 진단한 반면, 머신러닝 기술로는 90%가 넘는 높은 정확도로 진단을 한다고 합니다.
암을 이해하기 위해 악성 종양음성 종양에 대해 알아봅시다
 
  • 악성 종양 : 흔히 아는 암입니다
  • 음성 종양 : 종양이 환자들의 몸 안에서 퍼지지 않아 암으로 발전하지 않습니다
 
이 둘을 구분하는 방법은 형태에 있습니다.
 
notion image
 
저희는 이번 프로젝트에서 각 이미지의 특성으로 이 둘을 구분할 것입니다.
 
프로젝트 진행 방식은 다음과 같습니다.
  • 주어진 데이터는 총 569개로, 212개의 악성 사례와 357개의 음성 사례를 가지고 있습니다. 그리고 각 데이터는 30개의 특성을 가지고 있습니다.
  • 30가지의 특성으로 악성일 때 0, 음성일 때 1을 판단하도록 학습시킬 것입니다.
  • 예를 들어, 반경이 크고 부드러운 종양은 1(음성)이네?라고 판단하게끔 하는 것입니다.
 
이러한 학습을 위해 저희는 분류 모델 중 하나인 SVM 모델을 사용할 것입니다.
 
SVM 개념 간단히 익히기
분류(classification), 회귀(regression), 특이점 판별(outliers detection) 에 쓰이는 지도 학습 머신 러닝 방법 중 하나이다.
이 프로젝트는 데이터가 이진으로 나뉘어져 있기 때문에 선형일거라 가정을하고 SVC(Support Vector Classification)을 사용할 것이다.

SVC

notion image
 
예를 들어, 동그라미와 네모로 두 범주를 나누는 분류 문제를 푼다고 가정해보자. 구분을 위해 두 범주 사이에 선을 긋는다고 한다면, 위 그림과 같이 다양한 방법으로 선을 그을 수 있다.
notion image
만약, 위 그림처럼 두 개의 점선으로 두 그룹을 구분할 수 있다면 두 점선 간 거리를 마진(Margin) 이라고 한다. 또한, 마진이 최대값을 가질 때의 중간 경계선을 최적 초평면(optimal hyperplane) 또는 결정 경계(Decision Boundary) 라고 한다.
따라서 SVM 은 각 그룹이 최대로 떨어질 수 있는 최대 거리(최대마진)를 찾고 , 해당 거리의 중간지점(최적 초평면)으로 각 그룹을 구분짓는 기법이다.
이와 같은 SVC 는 데이터가 선형인 경우에는 잘 작동하지만, 데이터가 비선형인 경우에는 잘 작동하지 않을 수 있다. 반대로 SVR은 데이터가 비선형일때 사용하기 적절하며, SVC와 그목표를 반대로 하면 되는데, 마진 내부에 데이터가 최대한 많이 들어가도록 학습하는 것이다.
마진의 폭은 epilson 이라는 하이퍼파라미터(절대상수)를 사용하여 조절이 가능하다.
 
 
이제 분류 예제를 시작하겠습니다!

Jupyter notebook을 사용한 유방암 분류 예제

 
 
 


 
 

1️⃣ 라이브러리 호출

 
notion image
 

 

2️⃣ 데이터셋 호출

 
notion image
notion image
 

 

3️⃣ 데이터 살펴보기

 
notion image
notion image
notion image
notion image
notion image
notion image
 

 

4️⃣ 데이터 시각화

 
notion image
notion image
notion image
notion image
notion image
notion image
notion image
notion image
notion image
notion image
notion image
 

 

5️⃣ 모델 학습

 
notion image
notion image
notion image
notion image
notion image
notion image
 

 

6️⃣ 모델 평가

 
notion image
notion image
notion image
 

 

7️⃣ 모델 개선

 
모델 개선은 두가지로 진행합니다.
1. 정규화
2. SVM의 C와 gamma 파라미터를 최적화
 
먼저, 정규화로 모델을 개선해보겠습니다.
 
 
 
notion image
notion image
notion image
notion image
notion image
⇒ 스케일링이 잘 되었음을 확인
 
notion image
notion image
notion image
notion image
notion image
 

 
이제 SVM의 C와 gamma 파라미터를 최적화하는 방식으로 모델을 개선해보겠습니다.
 
notion image
notion image
notion image
notion image
notion image
notion image
notion image
notion image
 

모델의 개선 전 후를 비교해봅시다.

 
notion image
notion image
모델 개선
모델 개선
  • 2사분면에 있는 1종 오류가 7 → 4로 감소했습니다.
  • 1종 오류는 종양이 악성으로 예측했으나 실제 환자는 건강한 것이기 때문에 이정도의 오류는 발생해도 큰 문제는 생기지 않습니다!
  • 반대의 경우인 2종 오류가 중요한데, 0건이니 모델이 분류를 잘 했네요!
 
 
 
본 스터디는 Udemy의 <【한글자막】 Machine Learning 완벽 실습 : 6가지 실제 사례 직접 해결하기> 강의를 활용해 진행됐습니다. 강의에 대한 자세한 정보는 아래에서 확인하실 수 있습니다.
 
 
프밍 스터디는 Udemy Korea와 함께 합니다.
 
원하는 스터디가 없다면? 다른 스터디 개설 신청하기
누군가 아직 원하는 스터디를 개설하지 않았나요? 여러분이 직접 개설 신청 해 주세요!
이 포스트는
"실전문제로 배우는 머신러닝" 스터디의 진행 결과입니다
진행중인 스터디
실전문제로 배우는 머신러닝
머신러닝 실전 프로젝트를 매주 1개씩 진행하면서 실무 능력을 길러봅시다!
오혜수 멘토
안녕하세요! 저는 머신러닝에 관심 있는 취준생입니다!