본문 바로가기
개발 관련/데이터

데이터 과학자의 가설 사고

by lazysnack 2024. 11. 23.

이 내용을 책 리뷰에 넣을지 데이터라는 카테고리를 새로 만들어서 넣을지 꽤 고민을 했다.

일단은, 책 읽은 것만이 아닌 작게나마 스터디도 진행했으니 카테고리를 새로 만들어서 넣어본다.

 

시작은 데이터의 시대니 데이터 자체에 대해 뭔지는 알자 하는 생각으로 시작된 스터디 였는데

잘 골랐다는 생각이 드는 책으로 개념도 쉽게 설명되어 있고 기본기를 잡는다는 의미에서는 충분히 목표를 달성했다는 생각이 들었다.

 

책은 총 7장으로 되어 있으며, 각 장에서는 퀴즈를 통해 개념들을 설명하고 있다.

 

1장은 서론이므로 넘어가고, 2장부터 책을 읽으면서 정리한 내용들을 적어본다.

 

 

2. 데이터를 읽는 힘을 기른다.

더보기

- 무엇을 생각하면서 데이터와 마주하면 좋을지
- 데이터 전체의 경향을 파악하는 방법
- 데이터의 세부 내용을 확인하는 관점
- 데이타의 관계성을 파악하는 방법

1. 생각하면서 데이터를 읽자
- 데아터를 파악할 때 데이터를 읽는 목적과 데이터에 있는 배경을 생각하자
- 그래프를 이용해서 데이터의 특징이나 경향 차이를 판단
- 하나의 데이터에 복수의 관점(성별, 직업 취미 등)이 있는 경우가 있는데, 목적에 따라 어떤 관점으로 데이터를 확인해야 좋을지를 판단해야 한다.


2. 전체의 경향을 파악하자
- 데이터의 대푯값: 평균값, 최빈값, 중앙값
    - 평균값: 데이터의 값을 더해서 데이터의 개수로 나눈 값
    - 최빈값: 데이터 가운데 가장 출현 빈도가 많은 값
    - 중앙값: 데이터를 큰 수로 늘어놨을 때 한가운데 있는 값
- 3개의 값은 데이터를 집약한 대푯값이지 데이터 자체를 나타내는 것은 아님
- 대푯값만으로 판단하면 데이터의 특징을 놓칠 가능성이 있으므로 실제 데이터의 분포를 관찰해서 해당 데이터의 특징을 간파해야 한다.
- 데이터가 발생한 배경 이나 관측된 배경 을 의식하면서 데이터를 마주해야 한다.

 

3. 데이터의 세부 내용을 확인하자
- 다른 데이터와 비교해서 극단적으로 큰(혹은 작은) 값을 상이값이라 부름
- 상이값 중에서 값이 극단적인 원인 혹은 이유를 알 수 있는 것을 이상값 이라고 함
- 데이터가 없는 것을 결측 이라고 하고, 어떤 조건으로 데이터 취득이 끝난 데이터를 중도절단 데이터라고 함
- 결측값과 중도절단 유무를 확인함과 동시에 배경을 생각하면서 데이터를 파악해야 한다.


4. 데이터의 관계성을 파악하자
- 두 데이터의 관계성을 확인할 때 세로축과 가로축에 대응하는 값을 그려서 데이터 간의 관계성을 확인하는 산포도를 사용한다.
- 한쪽 데이터가 크면 다른 한쪽 데이터도 큰 관계성을 보이는 것을 상관관계라고 한다.
- 상관관계 가운데서도 한쪽이 원인이고, 다른 한 쪽이 결과인 관계를 인과관계 라고 한다.
- 상관관계가 있으면 모두 인과관계가 되는 건 아니고, 겉보기에는 상관관계가 있는 것처럼 보이지만, 두 데이터 사이에 인과관계가 없는 것을 허위상관 이라고 한다.
- 상관관계에서는 양의 상관과 음의 상관 이 있는데, 이 상관의 정도를 나타내는 지표를 상관계수라고 한다.
- 상관계수는 -1~1 까지의 값을 취하며, 1 에 가까울 수록 양의 상관관계가 -1에 가까울수록 음의 상관관계가 있다.
- 다양한 각도에서 데이터를 파악하고, 두 개의 데이터 사이에 관계성이 있는지를 확인해야 한다.

 

3. 데이터를 설명하는 힘을 기른다.

더보기

- 데이터 시각화
- 데이터 비교
- 데이터에서 과제를 찾아내는 순서

1. 데이터를 시각화해보자
- 데이터를 시각화함으로써 입수한 데이터의 특징과 상이점, 관련성을 찾아낸다.
- 설명하고 싶은 내용이나 데이터 종류에 따라 선택할 그래프 표현을 정한다.
    - 막대 그래프: 수치 데이터의 항목 간  차이를 표현할 때 활용
    - 꺾은선 그래프: 시계열 데이터의 시간적 변화를 표현할 때 활용
    - 산포도: 수치 데이터의 항목 간 관계성을 표현할 때 활용
    - 원 그래프: 수치 데이터의 구성을 표현할 때 활용

 

2. 데이터를 비교한다는 것은?
- 데이터를 비교함으로써 대상이 되는 사실이나 현상의 우열이나 간격, 계획밧에 대한 달성 상황을 확인
- 적절한 비교 대상 설정
- 같은 성질을 가진 것끼리 비교
- Apple to Apple 비교
- 단어의 정의를 확인하면서 신중하게 비교 대상을 설정
- 데이터를 비교하는 4가지 시점
    1. 어떤 시점과의 비교: 기준이 되는 시점으로부터의 변화(변화율, 성장률)
    2. 계획값과의 비교: 계획값에 대한 실적 달성 정도(달성률)
    3. 타자와의 비교: 성질이 같은 것끼리의 차이(우열, 간격)
    4. 전체와의 비교: 전체 대비 구성비(공현도, 영향도, 점유율)
- 전년도와 비교할 때, 같은 주의 같은 요일로 비교함
- 곱셈에 의한 분해
    - 매출 = 고객 수 x  고객 단가
    - 고객 단가 = 상품 단가 x 구입 개수
- 덧셈에 의한 분해
    - 고객 수 = 신규 고객 수 + 기존 고객 수
    - 기존 고객 수 = 활동 고객 수 + 휴면 고객 수

 

3. 데이터에서 과제를 찾아낸다.
- 데이터를 시각화해서 비교함으로써 과제를 차아내어 해결책을 검토
- 매출 데이터에서 과제를 찾아내는 순서
    1. 데이터 집계값을 확인하자
    2. 데이터를 시각화하고, 특이점이나 경향성, 상이성을 찾자
    3. 복수의 데이터를 조합해 관련성을 찾자
    4. 데이터에서 얻은 내용을 정리해 해결 방안을 검토하자
- 그래프를 파악할 때의 확인 포인트
    - 특이점: 값이 특이한 데이터는 없는가?
    - 경향성: 데이터에 반복해서 보이는 경향은 없는가?
    - 상이성: 다른 것과 비교했을 때 차이점은 없는가?
    - 관련성: 데이터와 데이터 사이에 관련은 없는가?

 

4. 데이터를 분류하는 힘을 기른다.

더보기

- 특징이 비슷한 데이터로 그룹을 만드는 방법
- 목적에 따라 데이터를 분류하는 일의 중요성
- 데이터를 기계적으로 분류하는 방법

1. 특징이 비슷한 데이터를 그룹으로 만들자
- 데이터를 몇 개의 그룹으로 나눠서 그룹별 특징과 해결 방안을 고찰합니다.
- 커피숍 이용객의 이용 데이터를 통해
    - 커피와 디저트를 모두 자주 주문하는 사람
    - 커피와 디저트 모두 별로 주문하지 않는 사람
    - 커피는 주문하지만 디저트는 주문하지 않는 사람
- 데이터를 그룹으로 나누는 의미
- 대량의 데이터를 몇 개의 그룹으로 나눠 생각하면 데이터를 파악, 비교하기 쉬워지기 때문
- 특징이 비슷한 데이터끼리 모아서 그룹을 만드는 것은 중요
- 적절하게 그룹을 나눈 다는 말은 특징이 비슷한 데이터는 같은 그룹으로 분류하고, 반대로 특징이 비슷하지 않은 데이터는 다른 그룹으로 분류한다는 뜻
- 그룹별 해결 방안을 생각한다.
- 데이터를 그룹으로 나누면 데이터에 바탕을 둔 해결 방안을 생각하기 쉬워진다.
    - 첫 방문 촉진 - 첫 회 한정 쿠폰 등 
    - 재방문 촉진 - 커피 쿠폰 등
    - 상품 추천 - 커피를 주문한 사람에게 디저트 추천
- 데이터의 특징이 비슷하다는 판단
- 데이터의 거리가 가까우면 '비슷하다' 멀면 '비슷하지 않다' 고 판단을 내린다.
- 스케일이 다른 데이터는 데이터 표준화 (평균값을 0, 분산을 1로 만드는 처리) 를 한다.
- 세로축과 가로축에 스케일이 다른 데이터가 배치되지 않았는지 확인하도록 하자.

2.  목적에 맞게 데이터를 분류하자.
- 데이터를 분류하는 목적을 명확하게 정한 뒤 그 목적에 따라 특징이 비슷한 데이터는 같은 그룹으로 분류하고, 반대로 특징이 비슷하지 않은 데이터는 다른 그룹으로 분류한다.
- 데이터 분류의 어려움
- 사전에 데이터를 분류하는 목적을 확실하게 정해두는 것이 중요하다.
- 데이터를 그룹으로 나눠달라는 의뢰를 받으면 먼저 반드시 분류 목적을 확인한다.
    - 단순히 전체 성적이 높은 학생을 찾는지
    - 체육 과목을 잘하는 학생을 찾는지
    - 문과,이과 구분을 위한 학생을 찾는지

3. 데이터를 기계적으로 분류하자
- k-means법
- 우선 데이터를 몇 개의 그룹으로 분류할지 결정한다.
- 무작위로 초깃값이 되는 값을 (그룹 갯수에 맞게) 구한다.
- 초깃값에서 가까운 사람을 그룹으로 만들고 그곳의 중심값을 구한다.
- 중심값에서 가까운 사람을 다시 그룹으로 만든다.
- 새로 생긴 그룹에서 다시 중심값을 구하고 그룹으로 만드는 행위를 반복한다.
- 중심값이 더이상 변하지 않을때까지 기계적으로 반복한다.
- k-means법은 편리하지만 초깃값을 고르는 방법에 따라서 분류 결과가 달라질 수 있기 때문에 여러번 진행을 해봐야 한다.

4. 데이터 분류를 체험하자.
    1. 데이터를 분류하는 목적을 명확하게 하자
    2. 데이터를 분류하기 위한 관점을 정리하자
    3. 데이터를 그룹으로 나누자
    4. 그룹에 이름을 붙이고 방안을 검토하자
- 데이터를 그룹으로 나눌 때, 먼저 분류하는 목적을 명확하게 정한다.
    - 스테이크 페어 특별 쿠폰 그룹
    - 파스타 페어 특별 쿠폰 그룹
    - 새로운 디저트 특별 시식 쿠폰 그룹
- 주문 횟수를 잘 보기 위해 데이터에 색깔을 칠해서 데이터의 특징을 확인하는 데, 이를 히트 맵(heat map) 이라고 부른다.
- k-means 법에 따른 분류
    - 데이터 : 단골 18명의 주문 횟수 데이터
    - 데이터 항목 : 각 메뉴의 주문 횟수
    - 작성 하는 그룹 수 : 3개
- k-means 로 분류한 그룹은 해당 그룹의 특징을 나타내는 이름으로 지으면, 추후 해결 방안 검토나 업무 진행 시 편해짐

 

5. 데이터에서 법칙을 발견하는 힘을 기른다.

더보기

- 데이터에서 법칙을 찾아내기 위한 기본적인 사고방식
- 의사결정 트리 모델
- 판별 문제의 정밀도를 평가하는 방법
- 데이터에서 법칙을 찾아내 판별 문제를 푸는 순서

1. 데이터에서 법칙을 발견한다!
- 데이터에서 법칙을 찾아내 그 법칙을 적용함으로써 과제 해결이나 방법 제정으로 연결
- 생존/사망 처럼 두 가지 상황 가운데 어느 쪽인지를 묻는 문제를 판별 문제(A-B테스트) 라 한다.
- '왜' 라는 물음이 직감과 맞는지를 생각하면서 데이터를 확인한다.
- 판별 문제의 특징
- 둘 중 한쪽 값을 반드시 추측해야 한다.
- 법칙을 끌어내기 위한 데이터를 많이 모아야 한다.

2. 판별 문제를 푸는 의사결정 트리 모델
- 많은 데이터에서 근거를 바탕으로 추측할 수 있도록 '의사결정 트리 모델'을 작성한다.
- 의사결정 트리 모델은 조건 가지치기를 여러 차례 반복하면서 나무를 성장시킬 수 있습니다.
- 상자에 한 명이 포함될 법한 조건으로는 새로운 조건 가지치기를 작성하지 않는다.

3. 판별 문제의 정밀도를 평가해보자!
- 2x2 크로스 표로 정리한다.
- 두 종류의 각 데이터를 모을 필요가 있다.

 

  코로나 바이러스에 감염된 인원 수 실제로는 코로나 바이러스에
감염되지 않은 인원 수
코로나 바이러스에 감염
되었다고 판정된 인원 수
참 양성 TP 거짓 양성 FP
코로나 바이러스에 감염
되지 않았다고 판정된 인원 수
거짓 음성 FN 참 음성 TN


    - 참 양성(True Positive) : 올바르게 양성이라고 판정
    - 거짓 양성(False Positive) :  사실은 음성이지만 잘못해서 양성이라고 판정
    - 거짓 음성(False Negative) : 사실은 양성이지만 잘못해서 음성이라고 판정
    - 참 음성(True Negative) : 올바르게 음성이라고 판정

- 판별 문제의 정밀도를 평가하는 방법
    1. 정답률
        - 전체 가운데 올바르게 판단(정답)한 비율
        - 정답률 = (참 양성 TP + 참 음성 TN) / 전체
    2. 적합률
        - 양성 혹은 음성이라고 판정한 가운데 정답을 맞힌 비율
        - 양성 적합률 = 참 양성 TP / (참 양성 TP + 거짓 양성 FP)
    3. 재현율
        - 실제로 양성 혹은 음성이었던 값을 정답을 맞힌 비율
        - 양성 재현율 = 참 양성 TP / (참 양성 TP + 거짓 음성 FN)

- 적합률과 재현을 가운데 어느 쪽이 중요할까?
- 오검치를 낮추고 싶다면 '적합률' 로, 놓치는 부분을 낮추고 싶다면 '재현율' 로 평가하면 된다.

4. 의사결정 트리 모델을 활용해보자!
- 데이터에서 법칙을 찾아내서 판별 문제를 푸는 순서
    1. 데이터 항목을 확인하고, 대략적인 가설을 세워보자
    2. 데이터를 관찰하고, 비정형 데이터가 없는지 확인하자
    3. 데이터에서 법칙을 찾아내자
    4. 데이터에서 찾은 법칙에 적용해 추측하자

 

6. 데이터를 보고 예측하는 힘을 기른다.

더보기

- 수치 데이터의 관계성을 인식하는 방법
- 내삽과 외삽
- 데이터에 치우침이 있는 경우 무엇을 주의해야 하는지
- 시계열 데이터를 다루는 방법
- 데이터를 보고 예측하는 순서

1. 수치 데이터의 관계성을 확인하자
- 주어진 숫자 안에서 관계성을 찾아내고, 찾아낸 관계성을 적용함으로써 미지의 수치를 예측
- 데이터 사이의 관계성을 유추하는 일은 어려워서 주어진 데이터에서 멀리 멀어지면 멀어질수록 예상되는 관계성에 따라 값이 크게 달라짐
- 주어진 데이터로부터는 관계성을 좁히는 일이 불가능한 경우도 있다
- 한 발짝 떨어져서 데이터 전체를 바라보면서 데이터끼리의 관계성이 없는지를 살펴보는 것도 중요하다

2. 내삽과 외삽에 주의하자
- 데이터를 보고 찾아낸 관계성을 적용할 수 있는 경우와 적용할 수 없는 경우가 있다.
- 이미 알고 있는 데이터에 둘러싸인 안쪽을 향해 미지의 데이터를 예측하는 것을 내삽이라고 한다
- 이미 알고 있는 데이터로부터 바깥쪽을 향해 미지의 데이터를 예측하는 것을 외삽이라고 한다
- 외삽으로 예측했을 때는 실제로는 말도 안되는 예측 결과가 나오는 경우가 흔히 있다

3. 데이터의 치우침에 주의하자
- 관계성을 찾아내기 위해 사용한 데이터의 치우침에 주의해야 한다
- 데이터의 관계성을 확인할 때는 그 관계성의 배후에 데이터의 치우침이 없는지 주의해야 한다
- 관계성을 적용할 수 있는 범위에 제한이 생길 가능성이 있다는 사실을 알아두어야 한다
- 입수한 데이터에 치우침이 있을지도 모른다
- 데이터에서 찾아낸 관계성을 상식이나 도메인 지식에 비춰보고, 조금이라도 위화감이 있으면 확인하는 습관을 가지도록 하자
- 데이터의 수에도 주의를 기울여야 하는데, 데이터가 극단적으로 적은 경우에는 데이터에서 찾아낸 관계성이 다른 데이터에 제대로 적용되지 않을 수 있기 때문이다

4. 시간 변화에 주목하자
- 시계열 데이터에는 같은 주기로 변화를 반복하는 '주기성' 이 포함되어 있을 때가 많다
- 세세한 변동을 제외한 데이터의 경향을 '트렌드' 라고 부른다
- 시계열 데이터에서는 다양한 변동(주기성) 을 찾을 수 있다
- 시계열 데이터에 포함된 '트렌드' 와 '주기성' 을 고려해서 미래의 수치를 예측할 수 있다

5. 데이터를 보고 예측하자
- 데이터에서 예측하는 순서
    1. 데이터 항목을 확인하고, 대략적인 가설을 세워보자
    2. 데이터를 관찰하고, 비정형 데이터가 없는지 확인하자
    3. 수치 데이터의 관계성을 찾아내자
    4. 수치 데이터에서 찾아낸 관계성을 적용해 예측하자
- 데이터를 입수하면 먼저 데이터의 전체상을 살펴보고 가설을 세운다
- 수치 데이터의 관계를 확인할 때 산포도를 활용한다
- 예측한 결과에는 오차가 포함될 수도 있다

 

7. 업무에서 데이터 리터러시를 활용한다.

더보기

- 데이터를 읽는 힘
- 데이터를 설명하는 힘
- 데이터를 분류하는 힘
- 데이터에서 법칙을 발견하는 힘
- 데이터에서 예측하는 힘

1. 데이터를 읽는 힘을 활용한다.
- 데이터를 읽는 목적이나 데이터 뒤에 있는 배경을 생각하면서 데이터와 마주한다
- 데이터의 전체 경향을 파악할 때, 대푯값만으로 판단하지 않고, 반드시 데이터 분포나 내역을 확인한다
- 복수의 데이터를 조합하면서 상관관계나 인과관계를 탐색한다
- 상관관계가 있다고 해서 반드시 인과관계가 있는 건 아니라는 사실을 유의한다
- 이 평균값의 바탕이 된 데이터는 어떤 분포를 보이는지, 극단적으로 치우친 데이터에서 계산한 평균값은 아닌지 확인한다
- 냉정하게 데이터 사이의 관계성을 판별하자

2. 데이터를 설명하는 힘을 활용한다.
- 목적에 맞는 그래프 표현을 골라 설득력 있는 보고서나 제안서를 작성한다
- 읽는 사람에게 오해를 불러일으키는 그래프를 만들지 않도록 주의한다
- 데이터를 비교함으로써 대상이 되는 사실이나 현상의 우열, 간격을 확인한다
- 그래프의 특이점이나 경향성, 상이성이나 관련성에 주목해서 데이터에서 과제를 찾아낸다
- 판매 분석 결과가 잘못 전달되면 적절한 의사결정을 하지 못하게 된다
- 과제 발견에는 데이터의 시각화가 유용하다

3. 데이터를 분류하는 힘을 활용한다
- 특징이 비슷한 데이터를 그룹으로 모아 대량의 데이터에서 중요한 요점을 뽑아낸다
- 데이터를 분류할 때 반드시 처음에 데이터를 분류하는 목적을 명확하게 한다
- 어떤 관점으로 고객을 그룹으로 나누고 싶은지를 사전에 명확하게 정리한다

4. 데이터에서 법칙을 발견하는 힘을 활용한다
- 데이터에서 법칙을 찾아내 그 법칙을 적용함으로써 판별 문제의 결과를 추측한다
- 데이터 근거를 바탕으로 판별 문제의 결과를 추측하기 위해 의사결정 트리 모델을 활용한다
- 판별 문제의 정밀도를 정답률, 적합률, 재현율 같은 지표를 이용해 평가한다
- 추측 결과가 잘못될 때도 있다는 사실을 염두해 둬야 한다

5. 데이터를 보고 예측하는 힘을 활용한다
- 수치 데이터의 관계성을 찾아내, 미지의 숫자를 예측한다
- 수치 데이터의 관계성을 찾아낼 때, '데이터의 치우침' 과 '데이터의 수' 에 주의를 기울인다
- 시계열 데이터에 포함되는 '트랜드' 나 '주기성' 을 고려하면서 미래의 수치를 예측한다