SSO: 통합 인증(=Single Sign-On), 모든 서비스에 접근할 수 있는 SSO ID가 바로 루트 계정
AWS Quick Start -> Mac, Ubuntu 등 지원가능한 운영체제 나옴
인스턴스 유형 -> 선택가능한 사양 목록 나옴(시간 당 금액 포함)
IAM 정책은 무엇에 대해(리소스 기반 정책), 어떤 조작을 허가(자격 기반 정책)여부를 설정하는 것 !
Identity and Access Management의 약어로 AWS 인증 가능
이메일 아이디로 만든 계정을 루트 계정
루트 계정은 모든 AWS 리소스에 접근가능하기에 여러명이 루트 계정을 사용하는 건 보안 문제 발생
이를 위해 IAM 서비스를 제공함
AWS 모든 서비스는 IAM을 활용하여 AWS 리소스를 사용하도록 인증(로그인)을 설정하고 권한 부여된 대상을 제어 가능
IAM 자체는 추가 요금이 없고 무료로 사용할 수 있음. IAM 자체는 추가 요금이 없고 AWS 계정에 제공되는 기능(IAM 사용자가 사용하는 서비스는 당연히 요금이 부과가 됨)
유튜브, 넷플릭스 등 추천 시스템을 기반으로 하는 사이트
알고리즘은 대략 3가지가 존재하는데, 오늘은 CF, 협업 필터링을 알아볼 예정 !
유튜브에서 동영상을 한번 보면 추천되는 영상만 봐도 오래 남아있을 수 있음 -> 고객이 우리 사이트에 오래 남아있게 유도하는데 중요한 시스템(광고와 구매까지 이어질 수 있음) -> 잘 만들어진 추천 시스템은 기업의 자금에 직결 !
추천 시스템은 개인화 ! privacy
구매, 소비한 제품에 대해 각 소비자의 평가를 받아서 평가 패턴이 비슷한 소비자를 한 집단으로 보고, 그 집단에 속한 소비자들의 취향을 활용하는 기술
소비자의 평가정보를 얻기 어려울 수 있다는 한계
이러한 정보가 온라인에서는 클릭스트림 형태로 수집되기 때문에, 클릭스트림 분석을 통해 소비자의 취향이나 니즈를 알아내기가 가능
brave라는 웹 브라우저를 통해 들어가면, 광고를 자동으로 차단해주고(쿠키 비허용), 유튜브 백그라운드 허용도 해줌 !
새로운 영화가 나오면 인터넷이나 친구들에게 물어보는 것과 유사한 방식
사용자가 아이템에 매긴 평점 정보나, 상품 구매 이력과 같은 사용자 행동 양식을 기반으로 추천을 수행하는 것이 협업 필터링
협업 필터링의 주요 목표는 사용자-아이템 평점 매트릭스와 같은 축적된 사용자 행동 데이터를 기반으로 사용자가 아직 평가하지 않은 아이템의 예측 평가를 도출
코사인 유사도: 두 사용자의 평가값이 유사할수록 각도가 작다는(=코사인 값이 크다)는 것을 알 수 있음
코사인값은 최소 -1(완전 불일치)에서 최대 1(완전 일치)까지의 값을 갖는다.
만약 사용하는 데이터가 이진값을 갖는다면 상관계수나 코사인 유사도는 사용할 수 없음(이 경우엔 타니모토 계수, 자카드 계수를 사용)
import pandas as pd
df = pd.read_excel("./영화 평점.xlsx", header=[1] )
#컬럼 명 변환
df.rename(columns={'Unnamed: 0' : '이름'}, inplace=True)
#이름이 Null이 아닌 것만 df에 담기
df = df[df['이름'].notnull()].copy()
#이름 컬럼의 앞 세글자만 가져오기
df['이름'] = df['이름'].apply(lambda x : x[:3])
#null 아닌 값이 10개 이상인 행만 남김
df.dropna(axis=0, thresh=10)
# 문자열을 결측치로 변환
import numpy as np
df= df.applymap(lambda x : np.nan if isinstance(x, str) == True else x)
#melt하면 컬럼이 많은 행을 분해해서 행으로 바꿀 수 있음
df.reset_index(inplace=True)
df2 = pd.melt(df, id_vars=['이름'], var_name='영화', value_name='평점')
#melt와 pivot은 반대
df2_pivot = df2.pivot(index='이름', columns='영화', values='평점')
#유사도 매트릭스 생성
from sklearn.metrics.pairwise import cosine_similarity
df2_pivot_na = df2_pivot.copy().fillna(0)
user_similarity= cosine_similarity(df2_pivot_na,df2_pivot_na)
user_similarity= pd.DataFrame(user_similarity,index=df2_pivot_na.index, columns=df2_pivot_na.index)
이런식으로 유사도 매트릭스가 출력되고, 이를 통해 추천 시스템을 구현하는데 활용할 수 있음