데이터 사이언스 강의 후기 – 의학 전공자들

의학 전공자 1번 – 수학 & 통계학 강의 수강 후

지난 주말 수학 및 통계학 강의를 들었던 XXX 이라고 합니다.

저는 이과이기는 하나 의학 전공자로 학부 시절 수학 및 통계학에 대해 접할 기회가 없었습니다.
수련 후 박사 과정 중 radiomics라는 분야를 다루고 있는데, 처음에 시도했을 때는 단순히 code developer의
지식이 필요하다고 생각했었는데, 실제 prediction model을 만들어가는 과정에서 수학 및 통계학적 깊이가
없는 것에 대해 배움의 필요성을 느끼고 있습니다.

현재 학교에서 machine learning을 하시는 분들과 collabo를 하고 있지만, domain 지식에 대한 차이 및
언어가 다르기에 서로 이해하는 것이 어려워 협업작업이 꼭 성공적이지만은 않습니다. 그래서 제가 이분야에
대해 좀더 공부를 하는 것이 어떨까 하여 선생님의 강의를 듣고자 하였습니다.

그런데, 수업을 듣고 보니 표현하는 언어에 차이가 있는 것을 느끼게 되었습니다. 제가 주로 다루는 부분은
암환자의 의무기록 및 유전체 자료, 영상자료인데, 이러한 부분에도 강의 내용을 적용할 수 있을까요?
일반적인 강의 내용에서 다루는 부분이라기 보다는 특수한 한 부분이라고 생각됩니다.
그리고 수식 부분에서 좀 이해가 어려운 부분이 있었습니다… 이후의 수업을 따라갈 수 있을지요?

이번 수업을 통해 수학 및 통계학적 기본의 중요함을 다시 한번 깨달았고, 그점에 있어서는
선생님의 의견에 전적으로 동감합니다. 그러나 현실에서는 그런 부분에 대해 자문을 구할 수 있는
분들이 매우 적습니다. 특히나 제가 있는 분야의 도메인 지식까지 갖춘 분을 찾는 것이 매우 어렵습니다.

(중략)

의학 전공자 1번 – 데이터 사이언스 메인 강좌 수강 중 질문

0. 제가 가진 data로 pca regression을 해보려고 하는데,

training set에서 얻은 pc를 validation set에 어떻게 씌우는 것인지 잘 모르겠습니다. 결국 제가 얻고 싶은 것은 data가 nxp matrix라고 할 때, nxm (m < p) 의 새로운 값을 얻어 outcome regerssion에 쓰고 싶은 것입니다.

data에 대해 잠시 설명을 드리면 총 166명 환자의 MRI에서 752개의 feature들을 수치로 얻은 것으로 survival 을 설명하는 예측 모델을 만드는 것입니다. correlation plot을 그려보면 feature들 사이에 correlation이 매우 높아, MRI feature관련한 모델로는 elastic net으로 feature selection하는 것과 PCA를 하기로 했습니다.

(개인 정보 보호를 위해 이하 질문 내용 생략)

 

위 질문에 대한 답변

깊은 고민이 담긴 메일 잘 읽었습니다.
이해한 내용을 바탕으로 부족한 답변을 작성해봅니다.

0. Correlation이 높은데 왜 Factor Analysis (FA) 대신 PCA를 쓰고 있을까?
특히 Elastic net을 쓰고 있다는 이야기는 결국 LASSO와 Ridge 사이의 밸런스를 찾는 방식으로 변수 몇 개를 죽이겠다는 뜻인데,
PCA는 변수를 고르는게 아니라, 변수들이 만들어내는 vector space에서 새로운 변수를 찾아내는 방식입니다.

Scaling이 된 상태라고 가정하면, correlation과 covariance가 같게 나올테니 결국은 covariance가 큰 변수들의 집합이라고 보입니다.
극단적으로는 변수 k개를 선형결합하면 다른 변수들을 만들어 낼 수도 있는 상황이라고 치면, 더더욱 PCA대신 FA가 맞다고 보입니다.

FA는 지난 수업에 말씀드린대로 숨겨진 변수 (latent variable)을 찾아내는 작업인데, 752개의 “눈에 보이는” 변수 뒤에 숨어있는 변수를 찾아내는게 더 맞지 않나 싶습니다

1. PCA regression?
PC들을 이용해서 regression을 하는 것 자체는 큰 의문점은 없습니다만, 원하시는 내용이 PC대신 FA에서 뽑은 Factor들로 regression 하는 작업이지 않을까 싶습니다.

그리고 training set에서 뽑아낸 PC 값을 validation set의 PC 값으로 치환하는 것은 좋은 방법이라고 생각되질 않습니다.
굳이 PCA regression을 하겠다면, training set을 이용해서 얻어낸 coefficient들을 validation set의 PC에 적용하는 것이 맞는 것 같습니다.
따라서 위의 1번에서 말씀하시는 내용은 최소한 수학적으로는 맞는 접근이 아닙니다.

(그런데, W가 아래 계산에서 왜 등장하는지 잘 모르겠습니다. Eigen decomposition을 하면 X로 만들어진 sigma matrix를
V x A x t(V)로 decompose할 텐데, 여기서 eigen vector들은 V에 들어있습니다. A는 eigenvalue로 이뤄진 대각행렬이구요.
굳이 score나 loading을 이용하고 싶다면 V x sqrt(A) 이나 t(V) x sqrt(A)를 써야할텐데, 여기서 W가 어떤 의미를 가지는지 잘 모르겠습니다.)

2. 말씀주신 2번 포인트도 위와 같은 맥락입니다
Rotation은 eigen vector를 이야기하고, 위에 쓴대로 loading은 t(V) x sqrt(A)를 말합니다.
Score와 loading은 데이터의 가로축과 세로축 기준으로 봤을 때 PC에 주는 가중치라고 생각하시면 됩니다.
(가로는 시간, 세로는 여러개의 변수라고 치면, score는 시간이 바뀌면서 PC에 주는 가중치가 변하는 값, loading은 다른 변수들이 PC에 주는 가중치가 변하는 값)
말씀하신 문제를 봤을 때, 만약에 outcome regression에 활용한다면 score를 PC1부터 순서대로 재배열해서 활용해야할 것 같아 보입니다.
참고로 scaling, centering은 PC를 잡아내는데 직접적인 영향을 주지는 않습니다. 어차피 correlation이나 covariance나 vector space는 (이론적으로는) 같거든요.

3. tSNE vs. PCA
PCA는 위에 보셨듯이 vector space를 그린다음, 그 space에서 새로운 축을 뽑아내는 작업입니다.
계산이 Linear 과정을 거치고, (당황스럽겠지만) 간단한 계산으로 데이터를 도식화할 수 있는 수학 개념이라고 할 수 있습니다.

tSNE는 사용자가 임의로(k개) 묶은 데이터 그룹을 Gaussian kernel로 표준화하고, 서로간의 거리를 최소화하는 기준점들을 찾아내서 그 점들만으로 데이터간 유사도를 표현합니다.
굳이 따지자면, knn과 PCA를 합친 작업이라고 보면 맞지 않나 생각됩니다. 더군다나 결과값을 강제로 t 분포에 찍어넣어서 2차원 평면에 도식화할 수 있는 큰 장점이 있습니다.
다만 knn의 k값에 해당하는 perplexity를 어떤 값을 쓰느냐에 따라 기준이 되는 데이터 그룹의 크기가 달라지고, 따라서 데이터간 비슷한 정도를 계산한 값도 심하게 바뀝니다.
또 iteration을 몇 번 하느냐에 따라 결과값이 영향을 받고, 데이터 그룹간 유사도가 매우 낮은* 경우에는 어차피 서로간 그룹이 멀리 떨어져 있어서 perplexity와 iteration에 관계없이
2차원 평면에 도식화된 데이터 그룹이 단순한 섬들로만 구성되는 경우도 생깁니다.
(*매우 낮은- ex. 100개의 변수를 가진 데이터에서 PC30까지 봐도 전체의 40~50% 남짓에 불과한 경우)

tSNE가 Non-linear 맵핑을 통해서 data visualization을 쉽게 해 주는 측면은 있습니다만, PCA보다 계산이 더 복잡한 만큼 활용할 때는 주의할 점이 많습니다.

제대로 설명이 됐는지 잘 모르겠습니다.
하시는 전공을 봤을 때 이런 내용을 공유할 수 있는 배경지식을 가진 분을 학교에서 찾기 쉽지 않을 것 같은데, 고민이 많으실 것 같아서 제 나름대로는 최선을 다했으니 부족하더라도 양해해주셨으면 좋겠습니다.

 

의학 전공자 2번 – 데이터 사이언스 메인 강좌 수강 후

수강후기로는 현재 수학실력이 기초미적분학을 보고 있는 수준이여서 수식이 나오면 답답했습니다. 역설적으로 수강목표가 알고리즘을 수식을 통해 조금이라도 이해해 보자였는데, 욕심이였네요.

느낌상 공업수학정도는 알고 있어야 많이 얻어가지 않을까 생각이 들었습니다.

의학 전공자 2번 – 데이터 사이언스 메인 강좌 수강 후 + 복습 후

수업을 이해하는 데 필요한 강의 (주관적 의견)
———————————————
calculus 3 (다변수 미적분, 어느정도)
선형대수
기초 통계학
머신러닝용어를 익히기 위한 정말 쉬운 기초 강의

개인적으로 공부했던 강의
—————봤던 강의——————–
3blue1brown (유튜브)
calculus
linear algebra (추천)

주재걸 교수님 강의
linear algebra
머신러닝 강의

—————공부 중인 강의들—————–

khan academy – (유투브)
multivariate calculus (추천 3blue1brown이 강의한 동영상)

Andrew NG -(유투브)
머신러닝 강의

문일철 교수님 강의 – (유투브)
머신러닝 강의

이 정도에서 데이터 사이언스 메인 강좌 강의동영상을 복습하니 조금씩 이해가 가고 있네요. (현재 강의4동영상을 공부하고 있습니다.)
개인적인 소감은 다변수 미적분, 선형대수, 기초통계학 지식이 좀 있어야 하네요. 그렇지 않으면 안 듣는 걸 추천합니다.

장기간 복습 후기에 대한 답변

복습 열심히 하고 있으신 것 같아서 반갑습니다. 미방, 선대, 기초 통계 모르면 오지 말라고 자르는 것도 같은 이유입니다.

통계학과에서도 그런 기초 과정을 다 듣고 난 다음에 회귀분석을 들을텐데, 회귀분석을 공대에서 바꿔쓰는게 머신러닝이고, 경제학과에서 바꿔쓰는게 계량경제학이에요. 학부 시절에 계량 교수님들이 첫 시간에 퀴즈보고 학생들을 쫓아냈었습니다. 기초가 부족하면 못 따라오는걸 알고 있으니까요.

모쪼록 복습 많이 하셔서 더 많이 배우게 되시길 빕니다.

2018-08-27

0 responses on "데이터 사이언스 강의 후기 - 의학 전공자들"

Leave a Message

Design @ Pabii Co., Ltd. All rights reserved.
X