본문 바로가기
멋쟁이사자처럼 AI스쿨

조건부 확률을 통한 데이터분석(파이썬 강의 Day2)

by 헬푸밍 2023. 1. 3.

조건부 확률을 통해 데이터 분석을 하는 예제를 살펴보려고 합니다!

 

아이폰과 아이패드의 구매 데이터를 가지고 분석합니다!!

 

 

우선 조건부 확률의 기본 개념은 이렇습니다...

 

Conditional Probability : 조건부 확률

  • 사건 A가 발생했다는 조건에 사건 B가 발생할 확률
  • 사건 A가 발생했을때 사건 B의 조건부 확률
  • P(B|A)=P(BA)P(A)
  • 특징
    • P(B|A)P(A|B)
    • P(AB)=P(B)P(A|B)=P(A)P(B|A)
    • P(A|B)=P(AB)P(B)=P(A)P(B|A)P(B)
    • 사건 B가 발생했을때 사건 A가 발생할 확률을 사건 A가 발생했을때 사건 B가 발생할 확률로 알아낼수 있다.
    • P(B|A)  P(A|B) 를 알아낼수 있다.

모두 이해하셨나요?

 

그럼 조건부 확률을 통한 데이터분석은 어떤식으로 할까요?

 

예시를 봅시다.

Examples

  • A를 구매한 사람에게 B를 구매하라고 추천하는게 좋을까?
    • P(A)=0.7,P(B)=0.6,P(AB)=0.5
    • A를 구매한 사람이 B를 구매할 확률 : P(B|A)=P(AB)P(A) = 0.50.7=0.714
    • B를 구매할 확률 : P(B)=0.6
    • 결론 : A를 구매하고 B를 구매하는것이 그냥 B를 구매하는 확률보다 높다. -> 추천하는것이 좋다!
  • A를 구매한 사람이 B를 구매할 확률로 B를 구매한사람이 A를 구매할 확률을 구할수 있다.
    • B를 구매한사람이 A를 구매할 확률 : P(A|B)=P(A)P(B|A)P(B)=0.70.7140.6=0.833

이런 식으로 할 수 있다고 합니다.

 

그럼 아이폰과 아이패드 구매 데이터를 가지고...

아이폰을 구매한 고객에게 아이패드를 추천하는 것이 좋을지 알아봅시다!

 

우선 이렇게 다운로드한 파일을 업로드 해줍니다.

 

import pickle  # 피클파일이기 때문에 피클 import

with open('purchase_apple.pkl', 'rb') as file:   #파일 열어주기
    data = pickle.load(file)  #파일을 데이터 변수에 저장
data[:5]  # 데이터가 리스트 형식

이렇게 5개만 꺼내서 확인해봅니다.

import pickle

with open('purchase_apple.pkl', 'rb') as file:
    data = pickle.load(file)
total = len(data)   # 전체 사람 수 세기
iphone = ipad = iphone_ipad = 0
for user in data:
    iphone += user['iPhone']   # 아이폰 산 사람 수 세기
    ipad += user['iPad']   # 아이패드 산 사람 수 세기
    if (user['iPhone'] == 1) and (user['iPad']):
        iphone_ipad +=1   # 둘 다 산 사람 수 세기
total, iphone, ipad, iphone_ipad

총 사람수, 아이폰 구매한 사람수, 아이패드 구매한 사람수, 둘 다 구매한 사람수 순으로 출력해봅니다.

 

이제 코드를 완성 시켜서 

import pickle

with open('purchase_apple.pkl', 'rb') as file:
    data = pickle.load(file)
total = len(data)   # 전체 사람 수 세기
iphone = ipad = iphone_ipad = 0
for user in data:
    iphone += user['iPhone']   # 아이폰 산 사람 수 세기
    ipad += user['iPad']   # 아이패드 산 사람 수 세기
    if (user['iPhone'] == 1) and (user['iPad']):
        iphone_ipad +=1   # 둘 다 산 사람 수 세기

P_iPhone = round(iphone/total, 4)
	# 아이폰을 구매할 확률 P(iPhone)
P_iPad = round(ipad/total, 4)
	# 아이패드를 구매할 확률 P(iPad)
P_iPhone_iPad = round(iphone_ipad/total, 4)
	# 둘다 구매할 확률 P(iPhone & iPad)
P_iPad_iPhone_con = round(P_iPhone_iPad/P_iPhone, 4)
	# 아이폰을 구매한 사람이 아애패드도 구매할 확률 P(iPad|iPhone)
P_iPhone, P_iPad, P_iPhone_iPad, P_iPad_iPhone_con

P(iPhone), P(iPad), P(iPhone & iPad), P(iPad|iPhone)를 구해보면...

이렇게 결과가 나옵니다...

P(iPad|iPhone) = 0.718이고 P(iPad) = 0.4203으로...

P(iPad|iPhone)  > P(iPad)입니다.

즉, 아이폰을 구매한 사람이 아이패드를 구매할 확률이

아이패드만 구매할 확률 보다 크다는 것을 확인할 수 있습니다...

 

그러므로 "아이폰을 산 사람에게 아이패드를 구매하라고 광고하는 것이 효율적이다!"

라는 결론을 낼 수 있겠습니다!!!

'멋쟁이사자처럼 AI스쿨' 카테고리의 다른 글

함수2(파이썬 강의 Day3)  (0) 2023.01.04
함수1(파이썬 강의 Day3)  (0) 2023.01.04
반복문(파이썬 강의 Day2)  (0) 2023.01.03
조건문(파이썬 강의 Day2)  (0) 2023.01.03
연산자(파이썬 강의 Day2)  (0) 2023.01.03

댓글