[Python]유전자 분석을 통한 암 진단 프로젝트

[Python]유전자 분석을 통한 암 진단 프로젝트

728x90

1. 프로젝트 개요

암 유전자를 분석하는 인공지능 제작하기

2. 데이터 준비

- 유전자 정보가 담긴 csv 파일 4개 준비

데이터 출처 : 미국 국립 보건원 산하 국립 암센터(NCI)에서 운영하는 GDC 포털 데이터

- 피쳐 (feature) : 2만 개의 유전자 활성 정도

- 레이블(label) : 암의 종류

- 프로젝트의 노멀라이즈 방법 : 각 피쳐를 최대값으로 나누기 -> 모든 수치가 0~1 사이로 정리 됨.

- 데이터 분할 (트레이님 80%, 테스트 20%)

3. 신경망 구조

4. 신경망 만들기

1) 인공신경망 제작과 컴파일.

2) 인공신경망 학습

학습 시 발생할 수 있는 문제

오버피팅(과적합) 현상

- 학습 데이터를 과하게 학습시켜 실제 데이터에 대해서 오차가 있는 것.

- 훈련 데이터는 성능이 좋아지는데, 테스트 데이터는 개선이 없는 경우

- 복잡한 모형일수록, 데이터가 적을수록 과적합이 일어나기 쉬움.

해결방안 1) 콜백 적용하여 신경망 학습

early_stop = keras.callbacks.EarlyStopping(monitor='val_loss', patience=10)

history = model.fit(dr.train_X, dr.train_Y, epochs=EPOCHS,

validation_data=(dr.test_X, dr.test_Y),

callbacks=[early_stop])

해결방안2) 인공신경망 제작시 Dropout 설정

Keras.layers.Dropout(rate = 0.5)

Rate 만큼의 노드를 0으로 만들어서 overfitting 방지하는 방법

5. 모델 학습 결과(성능 확인)

테스트 데이터를 넣었을 때의 정확도인 val_accuracy 값으로 확인해 볼 수 있음.

모델학습 결과 99.8 %의 정확도를 가진 모델.

로스분석

-> 빨간색은 훈련데이터의 손실율, 파란색은 테스트 데이터의 손실율

손실율이 적어져야 좋은 것인데 훈련을 할수록 점차 줄어드는 것을 확인 할 수 있음.

from http://eungu25.tistory.com/82 by ccl(A) rewrite - 2021-12-22 11:00:38