Q1. 데이터 전처리 방법
데이터 전처리란 데이터 분석을 수행하기 전에 데이터를 정제하고 준비하는 과정이다. 원본 데이터는 기본적으로 노이즈가 많고 불필요한 정보를 담고 있는 경우가 많기에 바로 사용하기에 어려움이 있다. 이러한 데이터를 분석 가능하고, 잘 학습하기 위해 전처리 과정이 필요하다.
이러한 데이터 전처리 과정을 통해 우리는 데이터 품질 향상, 모델 성능 개선, 계산 효율성 증가, 해석 가능성 향상, 신뢰성 증대 등 중요한 역할을 한다.
전처리 과정에는 결측값, 중복값, 이상점 처리가 있다.
1. 결측값(missing values) 처리
- 데이터셋에 값이 존재하지 않는 경우
- 제거 방법 : data.dropna(), data.dropna(thresh=3) #결측값이 3개 미만인 행만 남김
- 대체 방법 : 평균/중앙값 대체, 최빈값 대체, 예측 대체
- 특수 값 할당 : 결측값을 특수 값(-1, 'Unknown') 으로 대체하여 결측 여부 표시
2. 중복값(duplicate values) 처리
- 데이터셋에 동일한 데이터가 여러번 나타나는 경우. 분석 결과가 왜곡될 수 있다.
3. 이상점(outliers) 처리
- 데이터에서 다른 값들과 현저하게 차이가 나는 데이터
- 이상점을 탐지(시각화 or 통계적 방법 적용) 후 제거/대체/변환 시킴
Q2. 히스토그램의 주요 단점, 대안적인 시각화 방법
1. 단점
1. 구간(bin)의 선택에 민감
- 히스토그램의 모양은 구간의 수와 구간의 경계에 크게 영향을 받고, 잘못된 구간 설정은 데이터의 실제 분포를 왜곡할 수 있다.
2. 연속적인 데이터의 분리
- 데이터를 구간으로 나누어 표현하기 때문에, 실제로 연속적인 데이터를 인위적으로 분리하여 시각화
3. 비교의 어려움
- 구간설정이 달라질 수 있어 비교가 어렵다. 동일한 데이터를 여러 히스토그램으로 비교할 때, 구간 설정의 차이로 인해 오해가 생길 수 있다.
2. Histogram Chart vs Bar Chart

- Histogram Chart
- 도수 분포를 나타내는 그래프. 어떤 사건의 측정 빈도,수를 나타냄
- 시간적 자료 보존이 어려워 런차트 or 관리도로 표현이 불가능 할 때 사용
- 연속성 변수에만 사용(몸무게, 성적, 키)
- 계급의 크기가 모두 같기 때문에 직사각형의 가로의 길이는 모두 같고, 직사각형을 연속적으로 붙임
- Bar Chart
- 변량이 연속적이지 않을 때 사용(직업, 종교)
- 범주(category) 로 구분되는 데이터를 표현. 막대그래프와 같이 막대의 순서를 임의적으로 바꿀 수 없으며, 막대 간의 간격 없이 표현
3. 시각화 방법
1. 커널 밀도 추정(KDE)
- 데이터의 분포를 부드럽게 추정하는 방법으로, 데이터의 연속적인 분포를 부드럽게 시각화 할 수 있다.
2. 누적 분포 함수(CDF)
- 데이터 포인트가 특정 값 이하일 확률을 나타내는 함수로 데이터의 전체 분포를 한눈에 파악할 수 있으며, 히스토그램처럼 구간 설정에 민감하지 않다.
3. 박스 플롯
- 데이터의 분포 특성(중앙값,사분위 범위,이상치 등) 요약하여 비교적 간단하게 표현할 수 있다.
4. 바이올린 플롯
- 데이터의 분포를 부드럽게 나타내면서도 중위수, 사분위수 등의 정보를 포함한다.
Q3. 로그 분석
로그 분서은 IT 시스템에서 생성된 데이터를 검색, 조사 및 시각화 하는 프로세스로, 시간 순서 로그로 저장됨
문제 해결, 성능 예측, 유지관리 및 개선에 도움이 될 수 있는 패턴을 식별하기 위해 로그 파일을 분석하는 일반적인 분야
1. 수행 방법
- 데이터 수집 및 중앙 집중화
Q4. A/B 테스트의 장점과 단점
1. 장점
- 객관적인 데이터를 기반으로 의사 결정을 내릴 수 있게 도와준다. 이를 통해 주관적인 판단이나 추측이 아닌, 실제 사용자의 행동과 선호도를 바탕으로 제품이나 서비스 개선 가능
2. 단점
- 1월과 2월 중 어느 기간의 이벤트 참여율이 더 높을까?? A/B 테스트는 동일 기간의 두 집단을 대조 실험함는 방식이다. 1월과 2월은 서로 다른 기간에 이루어 지는 것으로 동일 기간이 아니기 때문에 테스트로 확인이 어렵다.
3. 예시
1) 아마존

- A안 : 화면 크기에 맞게 페이지 가로 너비를 꽉 채우는 레이아웃
- B안 : 1500 픽셀로 고정한 새로운 레이아웃
- 테스트 결과, 유저들은 너비를 1500픽셀로 고정한 B안에 더욱 긍정적인 반응을 보임. 화면 중간의 낭비되는 공간도 줄고, 상품 고르는 영역과 장바구니 버튼 사이의 거리가 더 가까워져 구매를 유도하기에도 훨씬 유리
2) 당근

- A안 : 검색 결과 화면 상단에 위치
- B안 : 흰색 플로팅 버튼, 검색 결과 화면 하단 중앙에 위치
- C안 : 검은색 플로팅 버튼, 검색 결과 화면 하단 중앙에 위치
- D안 : 주황색 플로팅 버튼, 검색 결과 화면 하단 우측에 위치
- 테스트 결과, 검색 결과 화면 하단에 검은색 플로팅 버튼인 C안이 알림 등록자 수가 제일 많음. A/B 테스트 없이 배포했을 때 얼마나 리스크가 있는지, 그리고 결과가 얼마나 지표에 도움 되는 프로덕트 개선을 이끄는지 알 수 있는 사례이다.
3) 우아한형제들
4) 여기어때
Q5. 이벤트 데이터 로그 설계(Event Taxonomy)의 주요 구성 요소
1. 구성 요소
2. 역할
Q6. Cohort vs Segmentation
1. Cohort Analysis
- 동일한 기간동안 동일한 특성을 가진 사람들을 모아 분석하는 행동 분석
- 이를 통해, 이용자 집단을 분석하여 해당 서비스의 기능들을 개선시키며 이용자들의 참여도 및 이용률을 높일 수 있는 장점.
- 코호트 분석을 통해 알 수 있는 데이터 :
- 전환율(Conversion rates)
- 리텐션률(Retention rates)
- 목표 달성률(Goal completions per user)
- 수익률(Revenue per user)
- 세션(Sessions per user)
- 페이지 뷰 수(Page views per user)
- 세션 기간(Session duration per user)
- 전환률(transaction per user)
2. Segmentation
- 이용자를 분류하는 하나의 프로세스로, 회사의 목표 시장에 유사한 요구와 행동을 가진 잠재 고객을 그룹으로 나누는 방법. 비슷한 성향과 특성별로 그룹핑
3. 차이점
- 세분화 차이를 두고, 세그먼트에 세분화를 더하면 코호트로 분석 진행 가능
- 세그먼트는 고객을 성향 과 특성 별로 그룹핑하여 분류하는 개념
- 세그먼트는 범위가 더 넓고, 코호트는 범위가 더 좁다.
- 코호트 : 지난 7일간 장바구니에 물건을 담아둔 이번 달에 가입한 새 유저
- 세그먼트 : 장바구니에 물건을 담아둔 유저들
- 만약 세그먼트의 분류가 "구매전환에 성공한 신규 가입자 수" 라고 가정해보자. 해당 분류에 '기간' 이란 특징을 넣어 세분화를 시킨다면 아래와 같이 분류 할 수 있다.
1. 지난 1주간 5회 이상 상품을 구매 한 유저
- 지난 2주간 5회 이상 상품을 구매 한 유저
- 지난 3주간 5회 이상 상품을 구매 한 유저
Q7. OLAP vs OLTP
1. OLTP(Online Transaction Processing)
- 사용자 PC에서 발생되는 트랜잭션을 DB서버가 처리하고, 그 결과를 요청한 사용자PC에 결과값을 되돌려주는 과정을 뜻함. 쉽게 얘기해서 1개의 요청작업을 처리하는 과정
예를들어, 은행에 돈을 입금하는 과정 중, 1단계는 돈과 카드를 직원에게 전달. 2단계는 직원이 돈과 카드를 확인 후 입금 진행. 3단계는 입금 내역을 확인. 이 세 개의 단계를 1개의 요청 작업.
ex) 댓글 남기기 및 수정, 회원정보 수정, 상품주문
- 중간에 예상치 못한 변수로 2단계까지만 작업이 진행된다면 1,2단계를 모두 무효화(ROLLBACK). 1,2,3 단계의 작업이 정상적으로 진행되면 작업을 확정(COMMIT)
- 1개의 트랜잭션에서 발생되는 INSERT, UPDATE, DELETE의 과정을 무결성을 보장하여 처리하고 그 결과를 SELECT 하는 모든 과정을 말함.
2. OLAP(Online Analytical Processing)
- OLTP 가 데이터 자체의 처리에 중점이라면 OLAP는 저장된 데이터를 기반하여 분석
- 데이터웨어하우스(DW), 쉽게 말해 DB 저장되어 있는 데이터를 분석하고, 데이터 분석을 통해 사용자에게 유의미한 정보를 제공해주는 처리 방법
예를들어, 회사의 대표가 1년동안 뒤도 돌아보지 않고 열심히 일을 했고, 1년이 끝날 시기에 얼마를 벌었고 얼만큼의 돈을 썻는지 확인 할 때 사용한 통장거래내역을 확보. 총 금액을 수입과 지출로 나누고 지출은 항목별로 나눈다. 몇일이라는 시간을 사용하여 1년동안의 벌어들인 금액과 지출 항목별 금액 정리. 다만, 일일이 수작업으로 하다보니 정확한지에 대한 확신이 없는데, OLAP는 사람이 원하는 이 작업을 컴퓨터로 자료를 추출 및 분석하여 제공하는 과정을 말함.
ex) 10년간의 A회사의 직급별 임금 상승률, 한달간의 항목별 수입/수출, 1년간의 주요 인기 트랜드
- OLAP는 기존에 저장되어 있는 데이터를 사용자의 요구와 목적에 맞게 분석하여 정보를 제공하는 개념
3. 차이점
- OLTP 는 현재의 데이터 처리가 얼마나 정확하고, 무결한지가 중요. 그렇기 때문에 데이터의 저장,삭제,수정 등의 실질적인 데이터를 수정하는 작업
- OLAP 는 이미 저장된 데이터를 바탕으로 어떤 정보를 제공하는지가 중요. OLAP는 데이터가 무결하고, 정확하다는 전재를 바탕으로 고객 또는 사용자가 원하는 정보를 어떤식으로 표현하고 제공하는지를 의미
- OLTP 작업이 먼저 선행되어야 하고, 비정상적으로 작업이 진행되었다면 OLAP로 멋진 자료를 만들어 봤자 자료로서의 가치를 상실하게 됨
- OLTP는 보다 컴퓨터와 가까운 용어이고, OLAP는 보다 사용자에 가까운 용어
| 구분 | OLTP | OLAP |
|---|
| 목적 | 비즈니스 활동 지원 | 비즈니스 활동에 대한 평가, 분석 |
| 주 트랜잭션 형태 | SELECT, INSERT, UPDATE, DELETE | SELECT |
| 속도 | 수초 이내 | 수초 이상 수분 이내 |
| 데이터 표현 시간 | 실시간 | 과거 |
| 관리단위 | 테이블 | 분석된 정보 |
| 최적화 방법 | 트랜잭션 효율화, 무결성의 극대화 | 조회 속도, 정보의 가치, 편의성 |
| 데이터의 특성 | 트랜잭션 중심 | 정보 중심 |
| 예시 | 회원정보 수정, 상품주문, 댓글 남기기 및 수정 | 3년간의 주요 인기 트렌드, 월간의 항목별 수입, 지출, 10년간 A회사의 직급별 임금 상승률 |