10%
39,600원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 해결됨Python을 이용한 개인화 추천시스템 | 추천알고리즘 | 추천인공지능
알고리즘을 프로젝트에서 써보고 싶은데요
안녕하세요 거친코딩님! 코랩에서 강의 코드를 따라치면서 공부하는 학생입니다. 강의에서 배운 코드를 친구들과 하는 프로젝트에서 써보고 싶은데요. 웹, db, 코랩간 연결을 어떻게 해줘야할까요?
- 해결됨Python을 이용한 개인화 추천시스템 | 추천알고리즘 | 추천인공지능
ML 방식 모델 활용방안에 대해서
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 강의 수강을 통해 추천시스템에 대해 이해에 많은 도움이 되었습니다 현업에 적용하기위해 강의를 시청하여, 추천시스템을 만들고자하는데 파이썬 및 인공지능 기초적인 지식이 부족하여 문의드립니다 인공지능을 활용한 학습모델생성 강의를 수강 후, 학습시킨 모델을 직접 활용해서 추천결과를 얻고싶은데 코드를 어떻게 구현하면 추천결과를 얻을 수 있을까요?
- 해결됨Python을 이용한 개인화 추천시스템 | 추천알고리즘 | 추천인공지능
그 외의 CF 정확도 개선방법에서
안녕하세요 거친코딩님~ 그 외의 CF 정확도 개선방법 코드중에서 counts가 각 사용자가 평가한 영화의 개수를 나타내는 행렬이잖아요? 그러면 거친코딩님과 제 사용자 데이터가 같으니까 평가한 영화 개수가 같아야 하지 않나요? 근데 사진 처럼 거친코딩님과 결과값이 다른데, 상관없을까요..?
- 해결됨Python을 이용한 개인화 추천시스템 | 추천알고리즘 | 추천인공지능
화면이 안나오는데 정상인가요?
안녕하세요 아래 캡처처럼 화면이 안나오는데 제가 원래 이런건지 궁금합니다.
- 해결됨Python을 이용한 개인화 추천시스템 | 추천알고리즘 | 추천인공지능
아이템 기반 CF 코드 질문
안녕하세요. 강의 7분 43초에 나오는 부분이 이해가 안갑니다.. rating_matrix_t[user_id] -> 이 부분은 기존 rating_matrix에서 transpose된 matrix니까 movie_id가 들어가야 하는게 아닌가요? 제가 이해를 잘 못하겠어서 조금만 더 설명해주시면 감사하겠습니다! 좋은 강의 감사합니다!
- 해결됨Python을 이용한 개인화 추천시스템 | 추천알고리즘 | 추천인공지능
실시간 처리 질문
안녕하세요. 먼저 강의 잘 보고 있습니다! 강의를 보면서 의문이 드는게 있습니다. 현업에서는 데이터들이 많고 반응 속도가 중요할 것이라고 생각됩니다! 1. 많은 데이터들을 모두 메모리에 올리고 하나요? 아니면 db에 어떤 형식으로 저장을 하나요?? db에 저장한다해도 결국 cosine_similarity를 하려면 모든 정보를 다 메모리로 불러와야 되는건가요...? 이러면 다시 처음 질문으로 돌아가서 너무 궁금합니다ㅠㅠ 2. 지금 알려주시는 방법들이 실무에서 사용이 되나요? 예를 들어 쇼핑몰 제일 처음 들어갔을 때 맞춤 상품들을 보여준다고 하면, 사용자들이 로딩을 보는 시간이 몇초 될 것 같은데 제 예상과는 달리 지금 알려주시는 방법들이 빠른가요?? 아니면 다른 방법들을 사용하시는 걸까요?? 3. 지금 설명해주시는 방법들이 다 시간과는 연관이 없어보입니다! (강의 소개에서 연속값을 사용하는 개인화 추천 기술을 다룬다고 하셔서 제가 잘못 이해해서 시간도 고려한 데이터들을 사용하는 줄 알았습니다 ㅠㅠ) 제가 연속된 값들 즉 영화 A -> B -> C -> D를 본사람이 존재(p사람) 영화 A -> C -> B -> E를 본사람이 존재(q사람) 일떄 어떤 사람이 A -> B - > G 를 봤다면 다음에 볼 영화를 추천해준다 할 떄 p랑 시간 순으로 비슷하니 p가 본 C 또는 D를 추천해준다와 같이 시간도 예측 범위 안에 포함하고 싶다면 어떻게 해야하나요?? 지금 보여주시는 데이터들은 column들이 영화 이름으로 되어있어서 시간 정보가 삭제되는 것 같은데 해당 내용도 궁금합니다!! 좋은 강의 감사합니다!
- 해결됨Python을 이용한 개인화 추천시스템 | 추천알고리즘 | 추천인공지능
CF 관련 질문
안녕하세요. 제가 보다가 궁금증이 생겼습니다! sim_scores를 할 때 자기 자신에 대한 값은 제외하지 않고 하나요?? 좋은 강의 감사합니다!
- 해결됨Python을 이용한 개인화 추천시스템 | 추천알고리즘 | 추천인공지능
best-seller 정확도 측정
'추천시스템의 정확도 측정' best-seller방식으로 구한 예측값의 RMSE를 계산하는 부분에 질문이 있습니다. y_pred = movie_mean[ratings.loc[user]['movie_id']] 이렇게 하면, User가 본 영화의 전체 평점이 예측값으로 나오는데요. '특정 영화의 User의 평점 - 전체 평점평균' 에 대한 RMSE를 구하는 것이여서 Best-Seller 방식과는 관계없는 것 아닌가요? 알고리즘이 어떤 영화에대한 평균이 어떤 의미인지 잘 이해가 안되요. Best-seller방식이라면 상위 한 개를 뽑는거여서 추천방식이 'Star Kid' 영화만 y_pred로 들어가야하지 않나요?
- 해결됨Python을 이용한 개인화 추천시스템 | 추천알고리즘 | 추천인공지능
pdf 말고 강의자료가 또 있나요...?
pdf로 ppt 강의자료는 다운로드 받았는데 혹시 코드 관련 자료는 어디서 다운로드 받을 수 있나요?
- 해결됨Python을 이용한 개인화 추천시스템 | 추천알고리즘 | 추천인공지능
사용자 집단별 추천 결과에서
거친코딩님의 rating_matrix에선 943X1633이 나오는데 제 코드 결과값에선 943X1643이 나옵니다 ㅠㅠ #데이터 읽어오기(user, item, data) base_src = 'drive/MyDrive/RecoSys/Data' u_user_src = os.path.join(base_src,'u.user') u_cols = ['user_id','age','sex','occupation','zip_code'] users = pd.read_csv(u_user_src, sep='|', names=u_cols, encoding='latin-1') u_item_src = os.path.join(base_src,'u.item') i_cols = ['movie_id','title','release date','video release date', 'IMDB URL','unknown','Action','Adventure','Animation', 'Children\'s','Comedy','Crime','Documentary,','Drama','Fantasy', 'FilmNoir','Horror','Musical','Mystery','Romance', 'Sci-Fi','Thriller','War','Western'] movies = pd.read_csv(u_item_src, sep='|', names=i_cols, encoding='latin-1') u_data_src = os.path.join(base_src,'u.data') r_cols = ['user_id', 'movie_id','rating','timestamp'] ratings = pd.read_csv(u_data_src, sep = '\t', names = r_cols, encoding='latin-1') #ratings DataFrame에서 timestamp 제거 ratings = ratings.drop('timestamp',axis=1) movies = movies[['movie_id','title']] #데이터 train, test set 분리 from sklearn.model_selection import train_test_split x = ratings.copy() y = ratings['user_id'] x_train, x_test, y_train, y_test = train_test_split(x,y, test_size = 0.25, stratify=y) #stratify : 계층화추출(골고루 뽑히도록) #정확도(RMSE)를 계산하는 함수 def RMSE(y_true, y_pred): return np.sqrt(np.mean((np.array(y_true) - np.array(y_pred))**2)) #모델별 RMSE를 계산하는 함수 def score(model): id_pairs = zip(x_test['user_id'],x_test['movie_id']) y_pred = np.array([model(user,movie) for (user,movie) in id_pairs]) y_true = np.array(x_test['rating']) return RMSE(y_true,y_pred) # best_seller 함수를 이용한 정확도 계산 train_mean = x_train.groupby(['movie_id'])['rating'].mean() def best_seller(user_id,movie_id): try : rating = train_mean[movie_id] except : #해당 영화 데이터가 train data set에 없을때 rating = 3.0 return rating score(best_seller) #성별에 따른 예측값 계산 merged_ratings = pd.merge(x_train,users) users = users.set_index('user_id') g_mean = merged_ratings[['movie_id','sex','rating']].groupby(['movie_id','sex'])['rating'].mean() #g_mean rating_matrix = x_train.pivot(index='user_id', columns='movie_id', values='rating') rating_matrix
- 해결됨Python을 이용한 개인화 추천시스템 | 추천알고리즘 | 추천인공지능
(재업)인기제품 추천방식 결과가 달라요
인기 제품 추천 방식 코드를 보고 따라쳤는데, 강사님이랑 결과(movie_id)가 다른데 왜 그런건가요? #사용자 u.user 파일을 DataFrame으로 읽기 import os import pandas as pd base_src = 'drive/MyDrive/RecoSys/Data' u_user_src = os.path.join(base_src,'u.user') u_cols = ['user_id','age','sex','occupation','zip_code'] users = pd.read_csv(u_user_src, sep='|', names=u_cols, encoding='latin-1') users = users.set_index('user_id') users.head() # u.item 파일을 DataFrame으로 읽기 u_item_src = os.path.join(base_src,'u.item') i_cols = ['movie_id','title','release date','video release date', 'IMDB URL','unknown','Action','Adventure','Animation', 'Children\'s','Comedy','Crime','Documentary,','Drama','Fantasy', 'FilmNoir','Horror','Musical','Mystery','Romance', 'Sci-Fi','Thriller','War','Western'] movies = pd.read_csv(u_item_src, sep='|', names=i_cols, encoding='latin-1') movies = movies.set_index('movie_id') movies.head() #u.data 파일을 DataFrame으로 읽기 u_data_src = os.path.join(base_src,'u.data') r_cols = ['user_id', 'movie_id','rating','timestamp'] ratings = pd.read_csv(u_data_src, sep = '\t', names = r_cols, encoding='latin-1') ratings = ratings.set_index('user_id') ratings.head() #인기 제품 추천 방식 Function def recom_movie(n_items): movie_mean = ratings.groupby(['movie_id'])['rating'].mean() movie_sort = movie_mean.sort_values(ascending=False)[:n_items] recom_movies = movies.loc[movie_sort.index] recommendations = recom_movies['title'] return recommendations recom_movie(5)
- 해결됨Python을 이용한 개인화 추천시스템 | 추천알고리즘 | 추천인공지능
인기제품 추천방식 실습 결과가 달라요!
안녕하세요 거친코딩님! 인기 제품 추천 방식 코드를 보고 따라쳤는데, 강사님이랑 결과(movie_id)가 다른데 왜 그런건가요?
- 해결됨Python을 이용한 개인화 추천시스템 | 추천알고리즘 | 추천인공지능
정규화 부분 수식 질문
안녕하세요, 강의 SGD를 사용한 MF알고리즘 - 6:40 의 우측 상단 정규화텀 부분에서 행렬 제곱(?) 수식의 의미를 잘 모르겠습니다. 해당 행렬의 모든 원소의 제곱합인가요..?
- 해결됨Python을 이용한 개인화 추천시스템 | 추천알고리즘 | 추천인공지능
3.4 이웃을 고려한 CF 부터 에러가 나며 실행이 되지 않습니다.
해당 코드는 강의 3.6 사용자의 평가 경향을 고려한 CF 의 조각인데요, RMSE() 실행하는 과정에서 타입 에러가 납니다. 1. 함수에 들어온 y_true 와 y_pred 를 각각 출력해 보니 y_pred 의 값이 모두 None 인 것으로 확인됩니다. 2. RMSE 를 호출하는 score() function 에서의 y_pred 를 출력 해 보니 다음과 같은 결과가 나오는데, y_pred 에 값을 할당하는 부분을 어떻게 수정해야 할지, 혹은 어떤 부분을 더 디버깅 해봐야 할지 궁금합니다.
- 해결됨Python을 이용한 개인화 추천시스템 | 추천알고리즘 | 추천인공지능
데이터 읽기 과정에서 빈 파일이 불러집니다
안녕하세요, 데이터 읽기 과정에서 문제가 발생해서 질문 드립니다. 거친코딩님께서 말씀하신대로 해당 디렉토리에 파일을 저장한 후, 강의의 코드를 모두 그대로 적었지만 빈 Dataframe이 불러지는 것 같습니다. 해당 문제를 어떻게 해결할 수있을까요? 감사합니다.
- 해결됨Python을 이용한 개인화 추천시스템 | 추천알고리즘 | 추천인공지능
5장의 surprise 모듈 사용 시 에러가 발생합니다.
import numpy as np from surprise import BaselineOnly, KNNWithMeans, SVD, SVDpp, Dataset, accuracy, Reader from surprise import Dataset from surprise.model_selection import cross_validate, train_test_split data = Dataset.load_builtin(u'ml-100k') 와 같이 입력하면 Dataset ml-100k could not be found. Do you want to download it? [Y/n] --------------------------------------------------------------------------- EOFError Traceback (most recent call last) <ipython-input-16-e59d9e9bee92> in <module>() 5 from surprise.model_selection import cross_validate, train_test_split 6 ----> 7 data = Dataset.load_builtin(u'ml-100k') /usr/local/lib/python3.7/dist-packages/surprise/dataset.py in load_builtin(cls, name, prompt) 87 print('Dataset ' + name + ' could not be found. Do you want ' 88 'to download it? [Y/n] ', end='') ---> 89 choice = input().lower() 90 91 if choice in ['yes', 'y', '', 'omg this is so nice of you!!']: EOFError: EOF when reading a line와 같이 에러가 발생하는데 원인을 알 수 있을까요?
- 해결됨Python을 이용한 개인화 추천시스템 | 추천알고리즘 | 추천인공지능
딥러닝 추천시스템에 변수 추가
안녕하세요! 강의를 참고하여 공부하는 도중에 질문이 생겨 남깁니다. 딥러닝으로 구현한 추천시스템에 변수 하나씩 추가 하는 방법 말고 수십개의 변수를 한번에 넣어서는 만들지 못하는건가요? 고객의 어떠한 특성과 상품의 특성 같은 변수를 여러가지 추가하고 싶은데 강의 내용대로 하나씩 레이어를 만들어야하는지 궁금합니다!
- 해결됨Python을 이용한 개인화 추천시스템 | 추천알고리즘 | 추천인공지능
Full matrix를 사용자 데이터와 merge 하는 것과 gender기준 추천 모델에서 실제 추천을 받는 방법 질문 입니다.
데이터에 실제 데이터를 투입하여 실습을 하는 중 궁금한 점이 생겨 질물 드립니다. 1. Full matrix를 사용자 데이터와 merge 하는 과정에서 Merge가 되지 않는 오류가 발생했습니다. 데이터는 아래와 같습니다. 2. gender기준 추천 모델에서 정확도만 계산했는데 남성 혹은 여성에게 적합한 영화를 추천을 받기위해서는 어떠한 코드를 입력해야 하는지 궁금합니다.
- 해결됨Python을 이용한 개인화 추천시스템 | 추천알고리즘 | 추천인공지능
실습 중 에러사항이 발생했습니다
강사님 안녕하세요 제가 가지고 있는 데이트로 실습을 하는 중 다음과 같은 에러가 발생했습니다. 우선 인기추천 방식부터 적용을 하는데 데이터는 본 강의에서 실습하는 형태와 동일하게 구성하여 실습을 진행하고 있으며 코드와 에러는 아래와 같습니다. 에러사항이 조치가 되지 않는데..도움 한번 부탁 드립니다.. <코드> # 인기 제품 방식 추천 Function def recom_courses(n_courses): course_mean=ratings.groupby(['course_id'])['rating'].mean() course_sort=course_mean.sort_values(ascending=False)[:n_courses] recom_courses=courses.loc[course_sort.index] recommendations=recom_courses['title'] return recommendations recom_courses(5) <에러> KeyError Traceback (most recent call last) <ipython-input-48-80ad3b41fd0f> in <module>() 7 return recommendations 8 ----> 9 recom_courses(5) 5 frames /usr/local/lib/python3.7/dist-packages/pandas/core/indexing.py in _validate_read_indexer(self, key, indexer, axis, raise_missing) 1296 if missing == len(indexer): 1297 axis_name = self.obj._get_axis_name(axis) -> 1298 raise KeyError(f"None of [{key}] are in the [{axis_name}]") 1299 1300 # We (temporarily) allow for some missing keys with .loc, except in KeyError: "None of [Index(['CEL45972', 'CEL51557', 'CPL30203', 'CEL51398', 'CPL57907'], dtype='object', name='course_id')] are in the [index]"
- 해결됨Python을 이용한 개인화 추천시스템 | 추천알고리즘 | 추천인공지능
Neighbor size를 정해서 예측치를 계산하는 함수의 코드 실행 문제
#Neighbor Size를 정해서 예측치를 계산하는 함수 def CF_knn(user_id,movie_id,neighbor_size=0): if movie_id in rating_matrix.columns: sim_scores=user_similarity[user_id].copy() movie_ratings=rating_matrix[movie_id].copy() none_rating_idx=movie_ratings[movie_ratings.isnull()].index movie_ratings=movie_ratings.dropna() sim_scores=sim_scores.drop(none_rating_idx) if neighbor_size==0: mean_rating=np.dot(sim_scores, movie_ratings)/sim_scores.sum() else: if len(sim_scores) > 1: neighbor_size=min(neighbor_size,len(sim_scores)) sim_scores=np.array(sim_scores) movie_ratings=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:] mean_rating=np.dot(sim_scores,movie_ratings)/sim_scores.sum() else: mean_rating=3.0 else: mean_rating=3.0 return mean_rating #정확도 계산 print(score(CF_knn,neighbor_size=30)) 다음과 같이 실행을 했을 때 실행결과가 None으로 표시 됩니다. 어떤오류가 있는지 찾지를 못하겠는데 도움을 부탁 드립니다.