빅데이터분석 기말고사
주어진 자료가 아래와 같다고 하자.
${\bf X} = \begin{bmatrix} 1 & 2.1 \\ 1 & 3.0 \end{bmatrix}$
${\bf y} = \begin{bmatrix} 3.0 \\ 5.0 \end{bmatrix}$
손실함수의 정의가 아래와 같다고 하자.
$$loss={\bf v}^\top {\bf v}$$
이때 ${\bf v}= {\bf y}-{\bf u}$ 이고 ${\bf u}= {\bf X}{\bf W}$ 이다. ${\bf W} =\begin{bmatrix} 0.5 \\ 0.6 \end{bmatrix}$ 지점에서의 $\frac{\partial}{\partial {\bf W}}loss$를 역전파 기법을 이용하여 구하고 파이토치의 backward()를 이용하여 검증하라. 즉 (1)-(6)을 계산하라.
import torch
ones= torch.ones(2)
x = torch.tensor([2.1,3.0])
X = torch.vstack([ones,x]).T
y = torch.tensor([3.0,5.0])
W = torch.tensor([0.5,0.6],requires_grad=True)
loss = (y-X@W).T @ (y-X@W)
loss.backward()
W.grad.data
아래는 200명의 사용자가 차가운커피, 따뜻한커피, 차가운홍차, 따듯한홍차 각 10종씩을 먹고 평점을 넣은 자료이다.
df = pd.read_csv("https://raw.githubusercontent.com/guebin/2021BDA/master/_notebooks/2021-12-04-recommend.csv")
df
생성예시는 아래와 같다.
아래의 코드를 이용하여 자료를 받고 df
를 만든뒤 물음에 답하라.
path = untar_data(URLs.ML_100k)
ratings=pd.read_csv(path/'u.data', delimiter='\t', header=None, names=['user','movie','rating','timestamp'])
movies = pd.read_csv(path/'u.item', delimiter='|', encoding='latin-1', usecols=(0,1), names=('movie','title'), header=None)
df = ratings.merge(movies)
1461 Terminator 2: Judgment Day (1991)
1462 Terminator, The (1984)