Books

앵버박사 2017. 5. 13. 01:27


1장 - 데이터 분석 입문


- 데이터 분석 절차 : 정의 -> 분해 -> 평가 -> 결정


- 데이터 분석은 문제를 식별하고 해결 하는 것


- 정의

  1) 문제를 정의하기 위해 고객ㅇ게서 많은 정보를 얻어내야 함

  2) 질문하기 : 수량을 물어봐서 목적이나 믿음을 정량화 한다. 목적을 분명하게 하기위한 질문 피룡(데이터 관련 질문)


- 분해

  1) 큰 문제를 작은 문제로 분해하면 좀 더 쉽게 접근(예, 매출을 어떻게 늘릴까? 를 몇 가지 질문으로 분리해보자)

  2) 데이터를 작게 분해

  3) 비교, 대조

  4) 현 상황(고객의견)과 데이터에 관한 사실을 적음


- 평가

  1) 고객의견과 데이터 두 사실을 비교하여 평가


- 결정

  1) 나의 생각을 넣어 잘 정리


- 멘탈모델 : 세계는 복잡하기 때문에 우리는 이를 이해하기 위해 멘탈모델을 사용한다. 멘탈모델은 현실을 보는 렌즈. 멘탈모델에 따라 같은 것도 다른점에 주목하여 보게 됨


- 거꾸로 이력서 : 내가 모르는 것에 대해 정의하고 써보는 것(불확실성의 구체화).



2장 - 실험


- 비교법 : 조사한 데이터를 다른 데이터와 비교하여 유의미한 결과를 찾는 방법


- 관찰연구 : 관찰 대상자가 자신이 속한 그룹('소비를 많이하는 그룹' 등)을 스스로 결정하는 연구 방법으로 설문지가 대표적인 예이며, 반면 실험은 실험자가 그루블 결정함


- 가치문제 : 가치에 대한 인식이 문제의 원인이 된다는 생각


- 관찰연구로만 인과관계를 파악할 수 없고, 다른 방법이 필요


- 원인에 대해 A->B 를 의심했다면 B->A 도 생각해보면 좋음


- 교락인자(Confounder) : 무엇이 무엇에 대한 원인인지 알 수 없게하는 편향된 인자들(이상치).


- 자신의 견해를 시각화 하면 좋음


- 교락인자를 관리하기 위해 데이터를 작은 균질한(Homogeneous; 그룹별로 동일한 특성을 갖도록) 그룹으로 나누어 비교해봄


- 여러 전략과 이론을 뒷받침하기 위해 실험을 하라


- 실험을 할 때는 전체에 적용하지 말고, 일부만 적용하여 비교하는 대조실험을 해야 비교법을 활용할 수 있음(A/B 테스트). 아니면 진짜 원인인지 알 수 없음. 단지 지난 시간과 비교하는 역사적 대조방식은 동일조건이라 할 수 없음. 따라서 동시대조방식이 좋음


- 대조군(새로운 조치)의 반대는 실험군(기존 유지)


- 실험에도 교락인자를 조심해야 함


- 교락인자 해결의 예 : 지리적으로 큰 지역을 작은 지역으로 나누고, 그 작은 지역을 무작위로 대조군과 실험군으로 분류(장소가 교락인자일 가능성이 있을 때)


- 무작위(임의성)은 교락인자를 각 그룹이 균일하게(동일확률 이기 때문에) 포함하게 하여 편향을 막아 실험을 성공적으로 이끈다.



3장 - 최적화


- 최적화 문제 : '무엇'을 가능한 만이 또는 적게 하고 싶고, 다른 값들을 변경해 가면서 이러한 것들을 할 수 있다면 여기에는 최적화 문제가 존재함


- 제한조건이 있을 수 있고, 이에 따른 제약을 받음


- 결정변수는 통제가능, 결정변수를 제약 내에서 조절해 최적화 함


- 목적은 최적화할 무엇이고, 이를 찾기위해 목적함수를 사용

  C1X1 + C2X2= P (C는 제약, X는 결정변수, P는 목적)


- 그래프로 제약선을 시각화하면 실행가능 영역을 쉽게 볼 수 있음


- 우리의 모델은 현실보다 단순화 된 것이다. 하지만 가정이 정확하고 데이터가 적절하다면 유용하다.


- 음의 상관관계 처럼 변수가 종속일 수 있음. 데이터에 따른 가정을 적용해 봄



4장 - 데이터 시각화



5장 - 가설검정


- 통계적 가설검정은 확실한 증거가 없으면 주장을 채택하는 방향성을 가짐


- 데이터 변수를 확인할 때는 변수들이 어느 한쪽이 증가하면 다른 한쪽도 증가하는 양의 상관관계를 가지고 있는지, 아니면 음의 상관관계를 가지고 있는지 알아보는 것이 좋음. 이 상관관계를 네트워크 다이어그램으로 표시하여 시각화하면 좋음


- 선형은 직관적이라 이해하기 쉽지만 현실의 문제들(인과관계)은 선형이 아니라 네트워크 형 이다.


- 가장 적당하다고 생각되는 가설을 선택하는 것이 '만족화' 이다. 이것은 다른 가설을 잘 분석하지 않고 문제가 나오도 선택을 고수할 가능성이있어 추천하지 않으며, 반증은 확인되지 않은 가설을 제거해 나가고 남은 것을 선택하는 방식으로 조금 더 이성적으로 인지적 함정에 빠지지 않아 좋음


- 반증 후 더이상 제거하기 어려울 때 다음 스텝으로 증거를 사용하여 가설에 증거를 거스르는 것이 적은 순으로 순위를 매기면 좋음. 이것이 가능하려면 증거가 진단가능성이 있어야 함. 가설의 순위를 매길 때 증거가 도움이 되는 경우는 진단가능성이 있고, 모든 가설을 뒷받침 해주면 진단가능성이 없는 것임



6장 - 베이지안 통계


- 독감에 걸렸을 경우 검사에서 양성이 나올 확률 90% 일 때, 양성일 경우 독감에 걸렸을 확률과는 다름. 독감에 걸린 사람이 극소수인 경우 애당초 전제조건인 독감에 걸렸을 확률이 낮음


- 여기서 독감에 걸린 사람의 비율(예, 1%)를 기준비율 또는 사전확률이라고 함


- 기준비율을 활용하지 못하면 기준비율 오류(Base rate fallacy)에 빠질 수 있음


- 거짓 양성(False positive) <-> 진짜 음성, 진짜 양성 <-> 거짓 음성


- P(L|+)를 구하는 베이즈 정리에서 기준비율은 P(L)



7장 - 주관적 확률


- 여러 문제에 대해 각자 의견이 분분 할 때는 거의 ~, 십중팔구 등의 모호한 확률용어를 쓰기보다 주관적 확률로 나타내는 것이(80% 등) 명확하고 실제 의견차이가 나는 부분에 집중 할 수 있음


- 주관적 확률을 표를 만들고 그래프로 그리면 더 효과적


- 각 문제들의 주관적 확률의 표준편차를 구해 가장 차이가 큰 문제를 파악할 수 있음


- 주관적 확률로 베이즈 정리를 이용하여 원하는 것에 대한 확률을 구할 수 있음

  P(S1) = S1이 일어날 주관적 확률을 구했다가 새로운 사실 E가 발생 했을 때,

  P(S1|E) 에 대해 베이즈 정리를 통해 구할 수 있음. 구하기 위한 재료는 또 다시 주관적 확률로 얻음



8장 - 휴리스틱 분석


- 직관 : 매우 빨리 결정을 내려야 하거나 데이터가 없을 때 사용


- 최적화 : 모든 선택지를 분석하여 완벽한 해답을 이끌어 냄(이상적임)


- 휴리스틱(Heuristics)

  1) 직관과 최적화의 사이. 바둑기사가 모든 경우의 수를 수읽기 할 수 엇어, 직관적인 몇 가지 수만(직관) 정밀하게 읽어보는 것(최적화)과 같음

  2) 심리학적 정의 : 어렵거나 이해하기 어려운 속성을 보다 친밀한 속성으로 대신하는 것

  3) 컴퓨터학적 정의 : 정확한 답을 낼 가능성은 높지만 최적성이 보장되지 않는 문제(항상 정답을 낼 것이라고 보장하지 못하지만 해결이 되는 알고리즘)

  4) 인간이 이런 방법을 많이 쓰기 때문에 휴리스틱임


- 데이터 분석은 더 나은 판단을 위해 문제를 다루기 쉬운 요소로 분해하고 멘탈모델과 데이터 모델을 데이터에 맞추는 작업으로 항상 올바른 답을 얻는 다는 보장은 없음


- 멘탈모델, 휴리스틱.. 데이터 분석은 굉장히 철학적인 듯 하다


- 휴리스틱을 도식화하여 표현한 것을 '빠르고 검약적인 트리(Fast and frugal tree)' 라고 함(검약 : 남김 없이 아낌)

  예) 일반시민의 쓰레기 무단투기 인식이 높아졌나 - 예 -> 쓰레기 처리업자는 무단투기가 줄었다고 생각하는가 - 예 -> 계속 지원

                                                       - 아니오 -> 지원 중단                                          - 아니오 -> 지원 중단


- 고정관념도 휴리스틱이다. 고정관념을 가진 사람을 설득하기 위해 그 사람의 휴리스틱을 이해할 필요가 있으며, 올바른 휴리스틱을 제시 할 수 있음



9장 - 히스토그램


- 히스토그램의 모양이 두개의 종모양이라면 여러조건으로 분리하여 각각 그려보면서 어디에서 그런 원인이 있는지 어떤 조건이 차이를 만드는 지 확인 할 수 있음



10장 - 회귀


- 사람의 사고방식을 수학적으로 모델링 할 수 있을 것 같다. A가 어떤 입력이 주어졌을 때, 그것을 어떻게 처리해서 어떤 결과를 냈는지 데이터를 확보하고 입력과 출력에 대해 회귀선을 찾아 수식화하면 그 사람의 사고(생각의 방식)를 대수식으로 표현(모델링) 할 수 있다.


- 왜 회귀인가? 이 방법을 발견한 사람은 아버지 키로 아들 키를 구하는 연구 중 평균 키가 작은 아버지는 키가 큰 아들이 있고, 평균 키가 큰 아버지는 키가 작은 아들이 있는 것을 보고 '평범으로의 회귀'라고 불렀다는데서 유래되었다(별 의미없음)


- 산포도의 각 x구간의 y의 평균으로 평균 산포도를 그릴 수 있고, 이것에서 회귀선을 찾을 수 있음



11장 - 오차


- 외삽 : 회귀식을 이용하여 데이터 범위 밖의 값을 예측하는 것


- 보간 : 데이터 범위 내의 값을 예측하는 것


- 외삽은 제대로 알 수 없음


- 우리가 예측하고자 하는 무엇의 변화도에 따라 회귀 모델링의 반복주기를 결정해야 함


- 확률오차(Chance error) : 결과와 예측 사이에 발생하는 편차로 잔차(Residuals)라고도 함


- 잔차분석을 잘 하면 모델을 더 잘 이해할 수 있음


- 예측을 단일 값보다 범위로 하는 것이 더 합리적임


- R.M.S 오차(제곱 평균 제곱근) : 회귀선에 대한 확률오차. 표준편차와 비슷. 오차를 정량화하는 수단. 회귀선의 위아래로 이 오차 범위르 그려 시각화 할 수 있음


- 데이터 분포가 구간에 따라 달라질 때 데이터 그룹을 나누는 것을 '분할'이라고 함. 구간별로 확률오차를 구해봤을 때 차이가 나는 부분이 있다면 분하를 사용하는 것이 좋음. 맞는 모델이 서로 다른 것일 수 있음


- 너무 많은 분할을 하면 예측능력이 감소하므로 적정한 분할이 필요. 모든 점을 분할하면 오차는 0이지만 예측이 안되고, -1000% ~ 1000% 사이로 답을 정하면 예측은 100%지만 오차가 너무 커 설명이 안됨



12장 - 관계형 데이터베이스



13장 - 데이터 정리


- R에서 데이터 정

  data <- read.csv("http://...", header=TRUE)

  head(data) // 데이터 일부보기

  NewLastName <- sub("\\(.*\\)", "", data$성) // 정규식으로 데이터 정리

  head(NewLastName)

  data$성 <- NULL

  data["성"] <- NewLastName

  write.csv(data, file="data.csv")

  getwd() // 파일이 저장된 디렉터리 위치 출력


- 데이터 정리 프로세스

  1) 복사본 생성(백업)

  2) 원하는 결과물 미리 시각화 해보기

  3) 데이터에서 반복되는 패턴 찾기

  4) 정리와 재구성을 반복

  5) 완성된 데이터를 사용