IT Diary/# Python

[ Python ] 장바구니 알고리즘 ( apriori ) 구현해보기 #2

셜록호움즈 2021. 7. 8. 23:25
728x90
반응형

어제 한 내용을 이어서 하자면, 데이터프레임으로 변경을 완료했는데

이 데이터프레임의 내용은 대략적으로 글로 쓰자면

1번째 행은 : JAVA, JSP

2번쨰 행은 : CSS, JAVA, JSP

 

을 표로 표시한 내용이다. 

이제 aprior 알고리즘을 사용해서 어떻게 나오는지 보자 

 

1
2
3
itemset = apriori(df, min_support=0.1, use_colnames=True)
itemset
print(itemset,'\n')
cs

소스를 돌려보면.. 아래와 같이 값이 나오는데  support에 해당하는 값은 어떻게 나온걸까..

짱구를 굴려봐도 답이 안나온다.. 이럴땐 구글링!

  간단한 샘플을 통한 통계척도 구해보기

 

역시 구글! 없는게 없다 😄

맞는지 하나만 계산해보자. 복잡하니까 좀 쉬운 데이터로 계산을 한번 진행해보자

아래와 같은 데이터로 계산을 진행해보겠다.

 

 연관규칙에서 사용하는 3가지 통계척도가 있는데 이걸 하나하나씩 물고뜯고 씹어보자

1. 지지도 ( support ) : 특정 아이템이 데이터에서 발생하는 빈도 

 

 

 

 

 

 

 

 

 

 

공식은 위와 같다. 

가장 쉬운 녹차라떼,아메리카노에서 녹차라뗴의 지지도를 알아보자

support(녹차라떼) = count(녹차라떼 건수: 2건 ) / 전체 거래건수 : 8 건  => 0.250

 

 

2. 신뢰도 ( confidence ) : 두 아이템의 연관규칙이 유용한 규칙일 가능성의 척도 

공식대로 다시 또 계산해보자

confidence(녹차라떼 -> 아메리카노 ) = count( 2 건 ) / 녹차라떼만 포함하는 건수 2건  => 1.0

 

3. 향상도 ( lift ) : 두 아이템의 연관 규칙이 우연인지 아닌지를 나타내는 척도 

lift는 공식을 잘 봐야한다. 헷갈린다!!!

lift( 녹차라떼 -> 아메리카노 ) = confidenct( 녹차라떼 -> 아메리카노 ) / support( 아메리카노 ) 

                          = 1.0 /  0.875 => 1.14286 

여기서 조심해야하는거는 분모가 아메리카노의 지지도이라는 걸 알고 계산해야한다. 

support(아메리카노) = count(아메리카노 건수: 7건 ) / 전체 거래건수 : 8 건  => 0.875

 

이걸로 계산하면 3가지 통계척도는 구할 수 있다. 

 

[출처] : https://m.blog.naver.com/zzz90zzz/221807210555

 

연관규칙 (Apriori 알고리즘)

머신러닝의 종류 3가지 : 1. 지도학습 : - 분류 : knn(유클리드 거리), 나이브베이즈 (나이브베이즈 확률),...

blog.naver.com

 

 

lift 까지 구했으면 거의 다 왔다.

다시 본론으로 돌아와 lift 가 높을 수록 인기가 많고, 신뢰가 높다고 생각하면 된다.

 

그러므로 아래의 표에서 보자면

Django 를 하는 개발자에게는 Python를 하는 경우가 많고,

SQL 를 할 줄 아는 개발자는 JSP를 하는 경우가 많다는 걸 알 수 있다.

 

물론, 표본이 많으면 더 정확한 예측을 할 수 있을것 같다.

 

이제 aprior 을 공부했으니 이걸로 이것저것 해보면서 공부를 좀 더 해봐야겠다.

728x90
반응형