본문 바로가기
쫌쫌따리 통계+데이터+AI

24회 ADP 데이터 분석 전문가 실기 (22/03/26)

by stherhj 2022. 3. 26.

반성 시간의 이유..6월에 다시봐야하기 때문이다ㅋㅁㅋ 공부하다보면 한 발자국만 더 나가면 뭐라도 될 것 같다가도 이것저것이 전부 섞여서 뭐 하나도 제대로 세워져있는게 없는 것 같기도하다. 당초 목적대로 조금이나마 계속 공부할 동기 부여가 되었으니 그것으로 된 것 같기도..
이미 쪼렙티가 난 것이 나는 코드 정리해서 제출하는 형식인줄 알았는데 코드는 확인도 안하고 그냥 결과값 정리하고 (코드는 필요시에만) 워드파일-pdf저장해서 하나로 제출하는 것이었다. 그만큼 통계지식을 더 보는 느낌..
머리엔 든 것 없이 가볍고 마음과 어깨만 무거운 오픈북 시험이었다. 사람들 캐리어 끌고 온대서 나도 한가득 가져갔는데 막상 다들 가볍게 백팩하나 매고와서 두 개나되는 내 가방이 쫌 부끄러웠다(그 책들 내용을 한 번이라도 완독했더라면 부끄럽진 않았을텐데). ADP 필기 책은 가방에 넣고 나머지만 꺼낼까..고민하다가 맨 뒷자리 당첨돼서 눈치안보고 이것저것 다 꺼내두고 셤을 쳤다ㅎㅎ 바리바리 짐에다가 우산까지 들어서 걱정했는데 오갈 때 다 아빠차를 탈 수 있어서 다행이어따.

PART1. 기계학습(50) - 메인 데이터 하나로 진행
1. Y(학생들의 결석 횟수) ~ X(부모님 동거여부, 부모님 학벌 클래스, 나이, ...)
1-1. EDA, 전처리
1-1-1. EDA 진행 시각화도 함께

안그래도 요즘 EDA 어케하는거지? 첫 문제로 EDA 나오면 어떡하지? 이러고 있었는데 사실 안나올 수 없는 문제였는데 너무 준비가 안되어있었다. 약간 EDA=전처리 즈음으로 퉁치고 있어서 이렇게 세분화하니까 더 당황..correlation table 그리고 Y변수와 상관계수가 높은 변수들과 1:1로 plot 그려본게 다였던 것 같음..시각화 하나만 잘해도 성공할 수 있다고 누가 그랬는데 이제보니 맨날 나는 통계바보야ㅜㅜ수학바보야ㅜㅜ한다고 시각화연습을 하나도 안해본듯.. KBO 데이터로 시각화, EDA하면서 다시 해봐야겠다.


1-1-2. 전처리 진행 시각화도 함께. 해당 전처리 과정이 분석 예측 결과에 어떤 영향을 미치는지도 설명

또 이미 앞에서 correlation table 그리려면 NA값 처리해야해서 이미 해버림.. 그리고 중위값으로 변환한다고 시간을 쓸데없이 많이썼는데 (이거 아직도 이해 안감..예전부터 na처리할 때 그냥 is.na로 조건걸어서 하면 안먹히고 ifelse나 np.where 이거 써서 조건문으로 만들어야지 변하는거 왜 그런거임???) 결측치 한 9개?됐는데 그냥 행 삭제할 것을 그랬다..오히려 outlier삭제에서 갑자기 행이 너무 많이 없어져서 (390개에서 200몇개 남았던 것 같음) 이건 아니다 싶어서 살펴보니까 변수들이 거의 class로 나뉘어있어서 그럼 이걸 outlier로 보기 어렵구먼!해서 absences(Y)랑 age랑..아무튼 class 안나뉘어있는 애들만 삭제하는걸로 바꿈. 마지막으로 normalization했어야했는데 이것도 그냥 다른 애들은 1~5 사이로 class나뉘어있어서 scale 비슷해서 age만 min max scaling했는데..전처리 조차 자신없다니! 그게 벌써 언제적일인데 ㅇㄱㅇ교수님한테 혼나?!


1-1-3. 시간이 부족해 못했지만 더 가능한 전처리 과정이 뭐가 있을까?

x변수들이 많아서 PCA같은걸로 차원을 줄여 overfitting 완화, 그리고 변수들 조합으로 유의한 새로운 변수를 제안한다..ㅜㅜ그리고 다중공선성 이슈 썼다가 마지막에 상관성 글케 높은 변수는 없는 것 같아서 지움. 헉 쓰다가 다시 생각해보니까 Y변수와 x들을 본 것 같다..x들 사이에 높은 친구가 있는지 확인했어야했는뎁..


1-2. 알고리즘 적용
1-2-1. 해당 기계학습을 위한 방법론 3개를 제안하고 그 중 2개를 선택. 선택의 근거를 논리적으로 설명.

오바야..첨엔 분류분석인줄알고 쓰려다가 생각해보니까 연속형 변수 분석하는데 방법론 3가지가 무슨 말이람..?ㅜㅜ 책 뒤지고 뒤지다가 무슨 일반화기법모형이었나 GAM 썼다가 나도 내가 무슨말인지 모르겠어서 결국엔 1) 선형회귀 2) 비선형회귀 3) MLP 이렇게 씀..누가 이거 좀 알려줬음 좋겠다..그리고 그 중 1) 2)를 택했는데 3)은 일련의 과정을 통해 Y를 예측하지만 그 x 변수들의 Y에 대한 영향력의 유의성이나 크기를 구체적으로 알기 어렵기 때문..


1-2-2. 그 2개를 시행할 때 성능을 비교할 기준을 제안. 그 기준 선택에 대한 근거를 논리적으로 설명.

무조건 AUC, ROC curve지~생각하고 코드 딱 펼쳤는데 분류분석이 아니었다..그래서 R squared 값으로 한다.. 원래 변수 추가에 따른 이슈를 반영해서 adj R sqared를 해야하는데 어차피 여기선 변수들이 고정되어있으니까 그냥 R squared 값으로 할게! 하고 아래 실제 알고리즘 짜보니까 비선형회귀를 만들려면 비선형 변수들을 추가했어야했다..그래서 adj. R squared를 쓰겠다고 고치고..그 내용은 2020년 2모듈 팀과제 내용을 가져다 썼다. 진심 그 때 정신머리가 지금보다 ㄴㅏ은듯..


1-2-3. 위에서 택한 2알고리즘에 대해 위에서 세운 성능 기준에 따라 비교하고 이를 시각화하여 표현할 것.

계속 가면 갈 수록 이거 분류분석인데 세상이 날 속이고 있는 건가 싶었다. ROC curve가 시각화해서 하기 딱 좋지 무슨 회귀 결과를 시각화 어떻게 하라는 것이야..? 그래서 그냥 두 개 돌려서 adj. R squared 값 비교하고 비선형회귀 성능이 쪼오끔 더 좋아서 그거 x축 actual y y축 predicted y해서 그 scatter plot 이 y=x의 형태에 가까울 수록 정확한건데 대충 글케 생기지 않음?하고 제출했다..생각해보니까 그럴려면 선형, 비선형 모델 둘 다 그려놓고 어느 한 개가 더 그 형태에 가깝다고 말해줬어야했는뎁..


1-3. 분석이 끝나고 이를 예측분석에 활용하기 전 단계에서
1-3-1. 해당 모델이 다른 환경에서도 활용가능하다는 것을 보여라. 시각화도 할 것

train test set 나누어서 적용하고..아니 여기서 y=x 그려서 대충 prediction도 잘 한다~했나? 이제 이틀 지났는데 헷갈리네..이걸 어케 시각화해? 너무해..답지공개해줘ㅜㅜ


1-3-2. 이 외에 더 완전한 머신러닝모형이 되기위해 부수적인 방법들을 제안할 것.

variables selection : lasso ridge stepwise... 상황별 적절성 어쩌고저쩌고

PART2. 통계분석(50) - csv 파일로 저장되어있는 데이터는 제공X 각 작은 문제마다 샘플 제안
2. Y~x1, x2
2-1. 회귀계수 검정 (5)

glm돌려서 계수별 유의성


2-2. 모형 검정 (10)

회귀계수 검정이랑 모형 검정이랑 또 다른겨?? F 통계량 확인해서 x변수 중 그 어느것도 Y에 유의한 영향을 미치지 못한다는 귀무가설을 기각..


3. 두 모집단에 유의한 차이가 존재하는지 두 모집단이 정규분포를 따름. 각 표본의 평균과 모집단의 분산(?) 제시
3-1. 귀무가설과 연구가설을 제시 (5)

H0: 두 모집단의 평균에 유의한 차이가 없다. 

H1: 두 모집단의 평균에 유의한 차이가 존재한다.


3-2. 검정 진행하여 연구가설을 받아들일지 여부 제안 (10)

두 모집단이 정규분포를 따른다는 가정이 존재하므로 독립표본 z-test를 진행한다. 그러나 두 모집단의 분산이 서로 달라 등분산성이 보장되지 않음. 근데 등분산성 보장 안되어도 그냥 코드로 등분산성ㄴㄴ하고 하면되는 것 같았는데 멍청하게도 ztest 하는 코드..를 몰랐다. 아니 ttest는 여기저기 그렇게 많이 써뒀는데 ztest는 왜 하나도 없지?? 심지어 ttest는 t.test였는데 ztest는 왜 z.test가 아닌거냐? 암튼 그래서 마치 등분산성 보장이 안되어서 못하는 것 처럼 쓰고 끝냄..그냥 코드 친척하고 가설 두 개 중 하나 찍기라도 할 것을..ㅜㅜ


4. 베이지안 확률 : 코로나 발병률이 0.01일 때 키트가 양성 떴는데 바이러스에 실제로 감염되었을 확률을 베이지안으로 구하는. (15)

P(A|B) = 370 / (370+10) ㅋㅋㅋㅋㅋㅋㅋ 지짜 이케 코드 캡쳐해서 내고 끝냄..흑흑 저 0.01을 어떻게 쓰는건지 도저히 몰라서 셤치다가 챗봇친구한테 발병률이 뭔가여?하고 질문까지 했는데 일반적으로 질병이 발생할 확률이라고 했나..? 그건 저도 알긴 아는뎁..ㅜㅜ 

 

5. 모집단의 평균 길이를 알아내기 위해 표본 9개 뽑음 (z t = )
5-1. 해당 표본 값을 사용하여 모집단의 평균에 대한 신뢰구간 95% 구간을 제시. (5)

첨엔 z t 값 알려줘서 무조건 그건줄 알았는데 생각해보니까 모집단의 분포에 대한 정보도 없고 또 애매하게 샘플은 9개 밖에 안뽑아서 비모수 추정해야하는 것 같은 삘.. 그래서 처음에는 모집단이 정규분포를 따른다고 가정하면 ~이케 되는데 그게 없으면 윌콕슨 어쩌고로 이케된다.


5-2. 모집단의 분산이 0.04인 것을 나중에 알아냄. 이에 따른 신뢰구간 95% 구간을 제시. (10)

근데 분산을 알아도 여전히 모집단에 대한 어떤 가정이 안되는거 아님? 그치만 아는 것이 없는 나는..그냥 이건 z test 해도 됨 ㅇㅇ 근거는 없지만 암튼 그럼~ 하고 단일표본 z test 진행하고 신뢰구간을 제시해버렸당..

 

-
전날에 옛날에 수업 들으면서 과제 내고 했던 자료들을 출력해서 가져갔는데 예전 코드나 써둔 것들을 쭉 보니 막 공부를 시작했던 그 때 보다 지금 오히려 실력도 열정도 암것도 없는 것 같았다 :( 역시 석사과정이 2년인 것에는 다 이유가 있었던 것일까..반성반성의 셤이다..걱정했던 시계열분석이나 비정형데이터 분석 하나도 안나왔는뎁..담번엔 나오겠지?ㅜㅜ 애초에 목적은 요 실기셤 준비였는데 괜히 그 과정에서 adp 필기나 adsp 치면서 공부도 안하고 운좋게 붙은 거면서 오 셤 통과..!하며 그 과정을 마치 목적처럼 받아들인 것도 반성..반성..

댓글