불완전한 데이터 보정하기
대부분의 데이터셋에서 대다수 사용자는 소수의 항목에만 평점을 남깁니다. 이전 연습 문제에서 보셨듯이, 특정 항목에 대한 평점이 없는 사용자를 어떻게 처리하느냐에 따라 모델의 타당성이 크게 달라질 수 있어요.
이 연습에서는, 이미 보유한 데이터를 편향시키지 않는 정보를 사용해 결측값을 채울 거예요.
먼저 각 사용자가 남긴 모든 평점의 평균을 구한 뒤, 이 평균을 사용해 사용자의 평점을 0을 중심으로 정규화(센터링)합니다. 마지막으로 비어 있는 값을 0으로 채웁니다. 이제 0은 중립적인 점수이므로 전체 프로필에 미치는 영향을 최소화하면서도 사용자 간 비교는 가능해집니다.
사용자당 한 행으로 구성된 user_ratings_table이 로드되어 있습니다.
이 연습은 강의의 일부입니다
Python으로 추천 엔진 만들기
연습 안내
user_ratings_table에서 사용자별 평점의 평균을 구해avg_ratings로 저장하세요.- 각 행에서 해당 행의 평균을 빼서
user_ratings_table_centered에 저장하세요. - 새로 만든
user_ratings_table_centered의 비어 있는 값을 0으로 채우세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Get the average rating for each user
avg_ratings = user_ratings_table.____(axis=____)
# Center each users ratings around 0
user_ratings_table_centered = user_ratings_table.____(____, axis=0)
# Fill in the missing data with 0s
user_ratings_table_normed = user_ratings_table_centered.____(____)