소개
게시글
질문&답변
2022.08.08
CF_knn_bias 실습에서 not in index error 발생합니다.
# 사용자 평가 경향을 고려한 함수 ## full matrix 에서 사용자의 평점 평균을 구한다.rating_mean = rating_matrix.mean(axis=1)# 영화 평점과 각 사용자의평균과의 차이 (평점편차)를 구한다.rating_bias = (rating_matrix.T - rating_mean).T# 사용자 평가 경향을 고려한 함수def CF_knn_bias(user_id, movie_id, neighbor_size=0):if movie_id in rating_bias.columns:sim_scores = user_similarity[user_id].copy()movie_ratings = rating_bias[movie_id].copy()none_rating_idx = movie_ratings[movie_ratings.isnull()].indexmovie_ratings = movie_ratings.drop(none_rating_idx) # CF_knn에서는 dropna() 사용했었음sim_scores = sim_scores.drop(none_rating_idx)if neighbor_size==0:prediction = np.dot(sim_scores, movie_ratings) / sim_scores.sum()prediction = prediction + rating_mean[user_id]else:if len(sim_scores) > 1:neighbor_size = min(neighbor_size, len(sim_scores))sim_scores = np.array(sim_scores)movie_raitngs = np.array(movie_ratings)user_idx = np.argsort(sim_scores)sim_scores = sim_scores[user_idx][-neighbor_size:]movie_ratings = movie_ratings[user_idx][-neighbor_size:]prediction = np.dot(sim_scores, movie_ratings) / sim_scores.sum()prediction = prediction + rating_mean[user_id]else:prediction = rating_mean[user_id]else:prediction = rating_mean[user_id]return predictionscore(CF_knn_bias, 30) CF_knn은 정상 동작합니다!코드 첨부드리니 한번 확인 부탁드립니다. 감사합니다.
- 0
- 3
- 577
질문&답변
2022.07.25
MergeError가 납니다
set index가 되어있는 상태였네요. 해결했습니다.
- 0
- 2
- 462