inflearn logo
강의

Course

Instructor

[Revised Edition] The Complete Guide to Python Machine Learning

Implementation of item-based nearest neighbor collaborative filtering movie recommendation

predict_rating_topsim 함수 내 코드 질문

225

knw4071421

63 asked

0

def predict_rating_topsim(ratings_arritem_sim_arrn=20):
    # 사용자-아이템 평점 행렬 크기만큼 0으로 채운 예측 행렬 초기화
    pred = np.zeros(ratings_arr.shape)

    # 사용자-아이템 평점 행렬의 열 크기만큼 Loop 수행. 
    for col in range(ratings_arr.shape[1]):
        # 유사도 행렬에서 유사도가 큰 순으로 n개 데이터 행렬의 index 반환
        top_n_items = [np.argsort(item_sim_arr[:, col])[:-n-1:-1]]
        # 개인화된 예측 평점을 계산
        for row in range(ratings_arr.shape[0]):
            pred[row, col] = item_sim_arr[col, :][top_n_items].dot(ratings_arr[row, :][top_n_items].T) 
            pred[row, col] /= np.sum(np.abs(item_sim_arr[col, :][top_n_items]))        
    return pred
유사도 행렬에서 유사도가 큰 순으로 n개 데이터 행렬의 index를 반환하는 코드에서 볼드처리된 부분이 어떤 것을 의미하는지 헷갈려서 질문드립니다ㅠㅠ
유사도 행렬에서 col에 해당하는 영화의 유사도 값을 큰 순으로 내림차순하는데 중간에 -n-1이 어떤 의미로 첨가된 것인지 알고싶습니다.

통계 머신러닝 배워볼래요? python

Answer 2

0

knw4071421

예시를 통해서 확실히 이해했습니다!! 감사합니다

0

dooleyz3525

역순으로 array을 가져올 때(즉 맨 뒤 array 값 부터 가져올 때) array[:-n-1:-1]을 적용합니다

역순으로 20개 array를 가져 올때는 array[:-21:-1], 역순으로 19개 array를 가져올 때는 array[:-20:-1] 을 적용합니다. 아래 코드로 테스트 해보시면 됩니다. 

import numpy as np

arr1 = np.arange(0, 20)
arr_reversed_1 = arr1[:-10:-1]
arr_reversed_2 = arr1[:-11:-1]
print(arr_reversed_1, arr_reversed_2)

안녕하세요 열심히 수강중인 학생입니다

0

63

2

정수 인덱싱

0

68

2

넘파이 오류

0

85

2

11강 numpy의 axis 축 질문 드립니다.

0

85

2

Kaggle 에서 Santander customer satisfaction data 를 다운로드 되지가 않습니다.

0

79

2

Feature importances 를 보여주는 barplot 이 그래프로 안보여져요.

0

70

2

타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.

0

75

2

타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.

0

64

2

5강 강의 오류가 있어요.

0

84

1

실무에서 LTV 관련 모델 선택 질문입니다!

0

72

2

14강 강의 듣는중에 궁금한게 있어서 질문합니다~

0

69

3

파이썬 다운그레이 후 사이킷런 재설치

0

117

2

좋은 강의 감사합니다.

0

72

2

scoring 함수 음수값

0

67

2

6번 강의에 사이킷런, 파이썬, 아나콘다 각각 버전 일치 안 시키고 진행해도 강의 따라가 지나요?

0

100

2

분류 평가 정확도 예측

0

78

2

안녕하세요. 강의 들으면서 업무에 적용하고 싶은 수강생입니다.

0

99

1

카카오톡 채널 있나요

0

107

1

혹시 강의에서 사용하시는 ppt 받을 수 있는건가요

0

190

2

pca 스케일링 관련하여 질문드립니다.

0

100

2

주피터 대신 구글 코랩

0

172

2

강의에서 사용하는 pdf or ppt자료는 따로 없는 건가요?

0

148

2

실루엣 스코어..

0

86

2

float64 null 값 처리 방법

0

103

2