해결된 질문
20.11.25 13:02 작성
·
184
2
안녕하세요 :) 좋은 강의 내용 잘 듣고 있습니다. 강의 중간에 숙제를 하다가 아래와 같은 질문 사항이 생겼습니다.
1. (숙제4)의 영화 평점 기반으로 예측하기에서 train.groupby("movieId")["rating"].std().mean()=0.835, (숙제3)의 사용자 평점 기반 예측하기에서의 train.groupby("userId")["rating"].std().mean()=0.926 값을 얻을 수 있습니다. 여기서 (숙제3)의 평균 표준편차 값이 더 작은 이유는 (숙제4)의 predict_by_movies 데이터 프레임의 "predict" 칼럼의 모든 Nan을 train["rating"].mean() 값으로 모두 동일하게 대체했기 때문에 상대적으로 (숙제4)의 "predict" 칼럼보다 고른값이 되었기 때문으로 해석할 수 있을까요?
2. 위 1번에 이어서 (숙제4)의 predict_by_movies 데이터 프레임의 "predict" 칼럼의 모든 Nan을 train["rating"].mean() 값으로 모두 동일하게 대체했기 때문에 어쨌든 이 값은 실제 해당 movieId의 평균 평점은 아니므로, (숙제4)에서 최종 도출한 rmse가 (숙제3)에서 최종 도출한 rmse보다 더 커질 수 있는 이유라고 볼 수 있을까요?
답변 2
3
2020. 11. 30. 23:30
predict_by_movies의 predict 컬럼은 예측한 평점이고, train의 rating 컬럼은 실제로 유저가 매긴 평점입니다. 작성하신 코드로 구한 평균 표준편차는 train 데이터 안에서 영화/사용자 별로 매겨진 평점이 어떻게 분포되어있는지를 의미하는 값으로, 예측한 평점과는 관계가 없습니다.
영화 평점 기반 예측(숙제4)이 사용자 평점 기반 예측(숙제3)보다 작은 평균 표준편차 값을 가지는 것은, 평균적으로 봤을 때 하나의 영화에 대해 여러 유저들이 매긴 평점의 분산이, 한 명의 유저가 여러 영화에 대해 매긴 평점의 분산보다 작다는 의미입니다.
2