inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

잠재요인 기반의 협업필터링 이해와 경사하강법을 이용한 행렬 분해

행렬 분해 질문 드립니다!

178

byeongjunkim

작성한 질문수 1

0

안녕하십니까 선생님! 

좋은 강의 감사하단 말씀 먼저 드리겠습니다~^^

행렬분해 강의를 듣던중 궁금한 점이 생겨 질문드립니다..

원본행렬로 부터 R = P * Q.T ,  확률적 경사 하강법을 통해서  P와 Q라는 행렬로 분해가 되는것 이해가 됩니다. 하지만 

factor의 차원을 정하는것? factor의 수? 해당 슬라이드와 교재에서는 factor1, factor2,  2개의 잠재요인으로써 P(4x2) Q(2x4) 행렬로 분해를 하였는데 당연히 저차원으로 분해를 하는 것이기에 M, N보단 작을 것이겠지만 

굳이 (K=2)2차원으로 행렬분해를 하는 이유가 있는지.. 실제로는 User의 수와 Item의 수가 굉장히 클텐데 이 경우에도 K의 값은 

증가 하나요? 따라서  원본행렬을 구하는 것이 목표이기에  적합한 K가 있는지 궁금합니다.  

딥러닝 모델 구성에서 hidden layer의 수나 Node의 수를 결정하는 것처럼 경험적인 것인지 궁금합니다..

감사합니다!

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

답변 1

0

권 철민

안녕하십니까,

말씀하신 대로 K를 2로 잡은 것은 원본 행렬이 작아서 그런것입니다. User수와 Item 수가 큰 경우에는 K값을 증가시켜야 합니다.

K값을 너무 크게 잡으면 오버피팅이 됩니다. 왜냐하면 K가 너무 크면 분해 행렬이 학습 데이터와 매우 비슷해지기 때문입니다.

K값은 아이템(상품) 갯수보다 작아야 하며, 일반적인 추천 시스템에서 보통은 100을 설정합니다.  하지만 K값은 테스트 하면서 찾아야 하는 하이퍼 파라미터 입니다. 말씀하신대로 경험적으로 선택해야 합니다.

감사합니다.

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

0

60

2

정수 인덱싱

0

68

2

넘파이 오류

0

84

2

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

0

85

2

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

0

77

2

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

0

69

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

76

2

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

0

98

1

카카오톡 채널 있나요

0

106

1

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

0

189

2

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

0

100

2

주피터 대신 구글 코랩

0

172

2

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

0

146

2

실루엣 스코어..

0

84

2

float64 null 값 처리 방법

0

102

2