inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[개정판] 파이썬 머신러닝 완벽 가이드

파이썬 코드를 이용한 경사하강법 기반의 행렬 분해 구현과 잠재요인 협업 필터링 기반 영화 추천 구현 실습

예측 행렬 음수값 문의

532

Abraham

작성한 질문수 20

0

안녕하세요. 강사님.

강의 초반에 임의 행렬 R로 예측행렬을 구하는 부분에서, R 행렬에 데이터를 추가해서 예측 평점이 어떻게 변하는지 실습해봤습니다.

아래처럼 마지막에 list 하나 추가해주었습니다.

그리고 나머지 과정을 모두 동일하게 하여 Matrix 분해 후 재결합 하였는데 아래와 같이 음수값이 나옵니다.

피쳐 값이 모두 양수인데 내적으로 구한 예측 행렬에 음수 값이 나올 수 있는지요?

그럼 답변 부탁드립니다.

감사합니다.

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

답변 3

0

권 철민

말씀하신 의미 보다는 P, Q 내에 초기화 시 행렬 값에 - 값이라던가, 이렇게 되어 있을 경우에 경사하강법으로 최대한 분해해도 - 값이 나오는 경우가 발생하는 것 같습니다.

그래서 P, Q 행렬 초기화를 RANDOM하게 하되, - 값이 상대적으로 덜 나오게 loc=1.0(즉 평균이 1) 로 한것입니다.

P = np.random.normal(loc=1.0, scale=1, size=(num_users, K))
Q = np.random.normal(loc=1.0, scale=1, size=(num_items, K))

0

Abraham

답변 감사합니다. 강사님.

제가 아래처럼 이해한 것이 맞는지요?

'P와 Q를 dot product로 R에 근사해가는 과정 |P||Q|cos = R 은 P와 Q에 절대값을 씌우기 때문에,

P와 Q의 내적 연산은 R행렬과 절대값만 유사하게 근사하면 된다. 그래서 최초 P, Q 내에 음수값이 있으면 학습 후에도 음수값이 나올 수 있다'

감사합니다.

0

권 철민

네, 나올 수 있습니다.

최초 P, Q 값을 보시면 -값이 많이 포함되어 있습니다. - 값을 덜 나오게 하시려면 P, Q값을 아래와 같이 조절해 보십시요.

P = np.random.normal(loc=1.0, scale=1, size=(num_users, K))
Q = np.random.normal(loc=1.0, scale=1, size=(num_items, K))

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

0

59

2

정수 인덱싱

0

67

2

넘파이 오류

0

83

2

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

0

84

2

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

0

76

2

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

0

68

2

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

0

74

2

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

0

62

2

5강 강의 오류가 있어요.

0

82

1

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

0

71

2

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

0

68

3

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

0

115

2

좋은 강의 감사합니다.

0

71

2

scoring 함수 음수값

0

66

2

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

0

98

2

분류 평가 정확도 예측

0

75

2

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

0

97

1

카카오톡 채널 있나요

0

105

1

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

0

187

2

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

0

100

2

주피터 대신 구글 코랩

0

170

2

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

0

145

2

실루엣 스코어..

0

83

2

float64 null 값 처리 방법

0

100

2