on
[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