[내일배움캠프] 32일 차 - 데이터 전처리&시각화 6, 아티클 스터디
데이터 전처리 & 시각화 - 시각화 6
데이터 전처리 & 시각화 - 시각화 6
1. 데이터 시각화
Matplotlib.pyplot의 plot() 함수
- plot() 메서드 호출
- x, y인수에 x축, y축에 해당하는 열 지정
import pandas as pd
import matplotlib.pyplot as plt
# 샘플 데이터프레임 생성
data = {
'A': [1, 2, 3, 4, 5],
'B': [5, 4, 3, 2, 1]
}
df = pd.DataFrame(data)
# 선 그래프 그리기
df.plot(x='A', y='B')
plt.show()
스타일 설정하기
- color, linestyle, marker 등
- Color(색상):
- 문자열
- 'blue', 'green', 'red', 'cyan', 'magenta', 'yellow', 'black', 'white' 등
- Linestyle(선 스타일):
- '-'(실선), '--'(대시선), ':'(점선), '-.'(점-대시선) 등
- Marker(마커):
- 데이터 포인트
- 'o'(원), '^'(삼각형), 's'(사각형), '+'(플러스), 'x'(엑스) 등
- Matplotlib 공식 문서
☑ Line / ☑ Marker / ☑ Line Styles
ax = df.plot(x='A', y='B', color='green', linestyle='--', marker='o')
plt.show()
범례 추가하기
- legend()
# 방법 1 label
ax = df.plot(x='A', y='B', color='green', linestyle='--', marker='o', label='Data Series')
# 방법 2 legend
ax.legend(['Data Series'])
plt.show()
축, 제목 입력하기
- set_xlabel(), set_ylabel(), set_title()
ax.set_xlabel('X-axis Label')
ax.set_ylabel('Y-axis Label')
ax.set_title('Title of the Plot')
plt.show()
텍스트 추가하기
- text()
ax.text(3, 3, 'Some Text', fontsize=12)
plt.show()
한꺼번에 설정하기
- plot() 함수에
color, linestyle, marker, label 등 파라미터 사용 - xlabel(), ylabel(), title(), text() 함수 사용해 각각 설정 추가
import matplotlib.pyplot as plt
# 데이터 생성
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
# 그래프 그리기
plt.plot(x, y, color='red', linestyle='--', mark='o', label='Data Series')
# 추가 설정
plt.xlabel('X-axis Label')
plt.ylabel('Y-axis Label')
plt.title('Titile of the Plot')
plt.legend()
plt.text(3, 7, 'Some Text', fontsixe=10)
# 그래프 출력
plt.show()
그래프 크게 만들기
- plt.figure() 함수 사용해 figure 객체 생성 → figsize 매개변수 사용해 원하는 크기 설정
- figsize: 그래프 가로, 세로 크기를 인치 단위로 설정
import matplotlib.pyplot as plt
# Figure 객체 생성 및 사이즈 설정
plt.figure(figsize=(8, 6))
# 데이터 생성
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
# 그래프 그리기
plt.plot(x, y)
# 그래프 출력
plt.show()
# 위의 방법으로 했을 때, 크기가 바뀌지 않으면 이 방법 쓰기
fig, ax = plt.subplots(figsize=(18, 6)) # fig: 전체 그림 영역 # ax: 그래프가 그려지는 공간
ax = df.plot(x='A', y='B', color='purple', linestyle='--', marker='o', ax=ax)
ax.legend(['Data Series'])
ax.set_xlabel('X-axis')
ax.set_ylabel('Y-axis')
ax.set_title('Title')
ax.text(3.1, 3, 'Some Text', fontsize=10)
ax.text(2, 2, 'Some Text 2', fontsize=15)
plt.show()
자료 출처
스파르타 코딩클럽 데이터 Docs
아티클 스터디
[아티클]
A/B 테스트 제대로 이해하기: ① 테스트를 설계할 때 우리의 진짜 질문은?
[요약]
서론
A/B 테스트를 통해 구체적으로 무엇을 알고자 하는가?
본론
A/B 테스트를 설계할 때 우리가 진짜로 궁금해하는 것
1) 우리는 암묵적으로 A/B 방안의 결과가 상당히 크길 바란다
- A/B 테스트의 결과, 두 방안의 차이가 확실하게 크기를 바란다.
2) 우리는 실험의 진행이 공정하길 바란다
- 실체 없는 공정함
- 두 그룹의 표본 수가 다르고
표본이 적은 A 그룹의 전환율 > 표본이 큰 B 그룹의 전환율
이런 상황에서 단순히 전환율이 높다고 A 그룹이 더 낫다고 할 수 없다
실험 배경이 5:5로 동일한지 확인하는 과정 필요하다 - 우리는 확인 없이 실험 배경이 5:5로 동일하다고 믿어버리는 경향 있다
3) 우리는 이번 실험의 결과가 이례적이거나 우연이 아니길 바란다
- 같은 조건, 같은 실험인데 이전 실험과 결과가 다르다면 실험을 신뢰하기 어렵다
- 우리는 A/B 테스트의 결과가 우연에 의한 것이 아니기를 원한다
결론
A/B 테스트의 진짜 질문
- 표면상의 질문: 목표 달성 위한 방안으로 A안과 B안 중 어느 것이 더 효과가 좋은가?
- 진짜 질문
- 며칠 동안의 데이터 속 고객에 대해서만 유효한 것이 아니고,
앞으로도 해당 유형의 모든 고객에게 확실하게 효과 있는가? - 이 결과가 A안과 B안의 차이 때문에 생긴 것인가?
- 이 결과가 우연이 아닌가?
- 며칠 동안의 데이터 속 고객에 대해서만 유효한 것이 아니고,
[핵심 개념 및 용어 정리]
A/B 테스트의 정의
분할 테스트 또는 버킷 테스트라고도 하는 A/B 테스트는 두 가지 콘텐츠를 비교하여 방문자/뷰어가 더 높은 관심을 보이는 버전을 확인합니다. 주요 측정지표를 기반으로 가장 성공적인 버전을 측정하기 위해 변형(B) 버전과 비교하여 컨트롤(A) 버전을 검증합니다. B2B 마케팅 또는 B2C 마케팅을 수행하는 디지털 마케팅 실무자가 선택 가능한 A/B 테스트의 수행 옵션은 다음과 같습니다.
- 웹 사이트 A/B 테스트
- 텍스트, 이미지, 색상 설계, CTA(call to action)
- A와 B 두 버전 사이의 트래픽 분리
- 어느 버전에서 1) 전환한 숫자가 가장 높거나
2) 원하는 작업 수행한 방문자 숫자가 가장 많은가 파악
- 이메일 마케팅 A/B 테스트
- 이메일 제목, 이미지, CTA
- 수신자를 두 세그먼트로 세분화
- 더 높은 오픈율(open rate)을 보여준 그룹 결정
A/B 테스트의 수행 방법
A/B 테스트는 어렵지 않지만 마케터들은 잘 정의된 프로세스를 따라야 합니다. 9가지 기본 단계는 다음과 같습니다.
A/B 테스트를 계획하고 실행하는 기본 단계
- 1. 성과 기준 측정 및 검토
- 2. 성과 기준을 사용하여 테스트 목표 결정
- 3. 테스트에서 성과를 개선할 수 있는 방법에 대한 가설을 개발
- 4. 테스트 대상 또는 위치 식별
- 5. 테스트할 A, B 버전 생성
- 6. QA 도구를 활용하여 설정 검증
- 7. 테스트 실행
- 8. 웹 및 테스트 분석을 사용하여 결과 추적 및 평가
- 9. 결론을 적용하여 고객 경험 개선
A/B 테스팅의 단점
[실무 적용 사례]
- Etsy (핸드메이드, 빈티지, 공예용품 주력 이커머스 기업)
웹페이지 search 버튼 배경색 설정