da-analysis / asac_4_dataanalysis

ASAC 4기 Data Analysis Project
0 stars 1 forks source link

co-review 데이터 만들기 #13

Open syleeie2310 opened 3 months ago

syleeie2310 commented 3 months ago
  1. co-review 란 -> reviewer 기준으로 a, b 상품을 동시에 리뷰를 남겼으면 co-review 1로 계산한다. (asin1, asin2, 1 <- 동시에 2개 상품을 리뷰 남긴 reviewer unique 숫자)

-> 평점을 고려한다. (4점 이상만 쓸지 말지)

-> 날짜를 고려한다. (날짜란 동일한 날에만 리뷰를 매기지 않기 때문에 다른 날짜에 리뷰를 매기니깐, 날짜를 어느정도로 고려할지 모르겠다)

예를 들자면 a 상품을 리뷰를 남기고 180일이 지나고 b 리뷰를 남겼는데 과연 a,b가 유사하다고 할수 있냐? 그럼 그게 180일이 아니고 30일이냐? 60일이냐? 90일이냐? 날짜 간격을 고려해서 가중치를 계산할 수 있지 않겠냐

예를 들자면 같은 날짜에 매겼으면 1 날짜 하루 차이 나면 0.9 (함수 날짜 간격을 고려해서) 날짜 7일 차이 나면 0.5 가정

syleeie2310 commented 3 months ago

우선 복잡도를 줄이려고 같은 날짜인 co-review만 고려하도록 바꿔주세요. 월욜에 구두로 이야기 드릴게요

-동일한 날짜의 co-review 한 상품은 관련성(relavnce) 하다고 가정한다. -대신 많은 사용자 (n>=k) k는 정해야 하는 값, co-review 했을 때 관련성 있다고 가정한다 -날짜 기반으로 훈련, 평가 데이터를 구분한다.

syleeie2310 commented 3 months ago

%sql select * from( select a.date_column, a.asin as asin1, b.asin as asin2 , count(distinct a.reviewerID) review_cnts , count(distinct case when a.overall = 5 and b.overall = 5 then a.reviewerID else null end) review_5_cnts , count(distinct case when a.overall >= 4 and b.overall >= 4 then a.reviewerID else null end) review_4more_cnts
from default.all_amazon_data as a inner join default.all_amazon_data as b on 1=1 and a.reviewerID = b.reviewerID and a.date_column = b.date_column where 1=1 and a.asin = 'B00201ER88' --- and a.cat_1 = 'AMAZON FASHION' --- and b.cat_1 = 'AMAZON FASHION' group by a.date_column, a.asin, b.asin ) as t where 1=1 and t.asin1 != t.asin2

syleeie2310 commented 3 months ago

꼭 sql로 할 필요는 없는데 예시로 보내드렸구요. 데이터(default.all_amazon_data)는 바꾸셔야 되요.

저것을 python으로 개발한다고 하면 특정 조건만 계산하도록 카디시안 프로덕트를 만들어서 짜면 되요.

syleeie2310 commented 3 months ago

데이터 탐색은 카테고리 별로 나눠서 해주시고

co-review feature 별(3점 이상, 4점 이상, 5점 이상, 점수 상관없이 co-review) 로 1건, 2건, 3건..n건까지의 pair 갯수 분포

syleeie2310 commented 3 months ago