Ming's Life

[내일배움캠프] 10일차 본문

내일배움캠프

[내일배움캠프] 10일차

chamiii 2025. 5. 23. 17:44

1. 오늘 학습 키워드

  • 기초 데이터 분석 팀과제

 


 

2. 오늘 학습 한 내용을 나만의 언어로 정리하기

 

 

4. 리뷰수가 많은 출판사를 찾아서 상위 10위 출판사를 도출하고 출판사별로 다른 컬럼에서 특징이 있는지

 

group by, rank 이용하여 리뷰수가 많은 상위 10위 출판사 도출하기

select *
from
(
select b.publisher,
       count(1) cnt_review,
       rank() over(order by count(1) desc) rank_publisher
from sampled_ratings r
inner join sampled_books b  on r.title = b.title
where b.publisher !=""
and b.publisher is not null
group by 1
) a
limit 10

리뷰수순 책 순위의 출판사들과 같은 출판사가 다수 있다. 따라서 출판사에 따라서도 리뷰수가 영향을 받는다 볼 수 있다.

 

5. 리뷰수가 많은 책 장르를 찾아서 상위 5위 장르를 도출하고 장르별로 다른 컬럼에서 특징이 있는지

 

group by, rank 이용하여 리뷰수가 많은 상위 5위 장르 도출하기

select *
from
(
select b.categories,
       count(1) cnt_review,
       rank() over(order by count(1) desc) rank_genre
from sampled_ratings r
inner join sampled_books b  on r.title = b.title
where b.categories !=""
and b.categories is not null
group by 1
) a
limit 5

전체적으로 소설이 리뷰가 많으며, 1등과 2등의 차이는 2배 / 2등과 3등의 차이는 7배가 차이난다.

 

장르별 판매 비중

소설, 과학, 자기개발

 

 

6. 유용함 리뷰(review/helpfulness)가 전체 리뷰 점수에 미치는 영향이 있는지, 있다면 얼마나 영향을 미치는지

select b.categories,
       count(case when substring_index(r.`review/helpfulness`, '/', 1) / 
                       substring_index(r.`review/helpfulness`, '/', -1) >= 0.5 
                  then 1 end) cnt_helpful,
       round(avg(case when substring_index(r.`review/helpfulness`, '/', 1) / 
                           substring_index(r.`review/helpfulness`, '/', -1) >= 0.5
                      then r.`review/score` end), 1) avg_helpful_score,
       count(case when substring_index(r.`review/helpfulness`, '/', 1) / 
                       substring_index(r.`review/helpfulness`, '/', -1) < 0.5
                       then 1 end) as cnt_not_helpful,
       round(avg(case when substring_index(r.`review/helpfulness`, '/', 1) / 
                           substring_index(r.`review/helpfulness`, '/', -1) < 0.5
                       then r.`review/score` end), 1) avg_not_helpful_score         
from sampled_ratings r join sampled_books b on r.title = b.title
where b.categories !=''
group by 1
order by cnt_helpful desc

 

유용함 리뷰 중 0점을 포함하면 유용하지 않다고 리뷰한 수가 27만개 이상으로 압도적으로 많아져서 유용하다고 한 리뷰수와 비슷해지고, 유용하다고 한 리뷰와 유용하지 않다고 한 리뷰 간의 평점이 크게 차이가 나지 않는다. 이 18만 개의 0점 리뷰를 유용하지 않다고 한 리뷰의 평점에 고려하면, 오히려 유용하다고 한 리뷰와 유용하지 않다고 한 리뷰의 평점 차이가 덜 나는 것을 알 수 있다. 그러므로 유용함 리뷰를 0점으로 준 사용자들은 평점도 아예 주지 않거나 오히려 평점을 높게 줌으로써 평점 평균을 높였다고 할 수 있다.

 

정리하자면 유용함 리뷰가 0점인 리뷰는 대략 18만 개의 리뷰가 있다고 할 수 있다. 이 사용자들은 평점도 높게 준 것을 알 수 있다. 따라서 책을 유용하다고 평가할 때는 0점을 줬지만 책의 평점은 높은 점수를 준 사용자들이 많다는 것을 파악 할 수 있다.

 

 

Wrap-up

 

더 분석하고 싶은 것

판매량 지표가 없는 것이 오점

심리학적인 요인 예) 책 표지에 따른 판매량 추이, 유명한 책일수록 평점이 후한지

review/helpfulness 변수가 전체 리뷰 점수에 미치는 영향이 있는지, 있다면 얼마나 영향을 미치는지

 

소감 및 개선할 점

데이터의 양보다 ‘질 높은 기준’을 세우는 것이 더 중요

앞으로는 이 분석을 기반으로, 간단한 추천 시스템 프로토타입 생성, 사용자의 리뷰 작성 패턴이나, 시간 흐름에 따른 변화 분석 예정

 

 

 

3. 학습하며 겪었던 문제점 & 에러 

 

-

 

4. 내일 학습 할 것은 무엇인지 

 

SQL 코드카타 ,파이썬 강의 듣기

'내일배움캠프' 카테고리의 다른 글

[내일배움캠프] 주말 공부 -2  (0) 2025.05.25
[내일배움캠프] 주말 공부 -1  (0) 2025.05.25
[내일배움캠프] 9일차  (0) 2025.05.23
[내일배움캠프] 8일차  (0) 2025.05.21
[내일배움캠프] 7일차  (0) 2025.05.20