의 길이는 코사인법칙에 의해 가 됨
내적은 정사영의 길이를 벡터 의 길이 만큼 조정한 값
⇒ $<\bold{x},\;\bold{y}>=\parallel\bold{x}\parallel_2\parallel\bold{y}\parallel_2cos\,\theta
X = np.array([[1, -2, 3], [7, 5, 0], [-2, -1, 2]]) # 3 × 3 크기
Y = np.array([[0, 1], [1, -1], [-2, 1]]) # 3 × 2 크기
X @ Y # numpy에서는 @ 연산으로 행렬 곱셈을 나타냄
# array([[-8, 6], [5, 2], [-5, 1]])
np.inner
는 번째 행벡터와 번째 행 벡터 사이 내적을 성분으로 가지는 행렬을 계산함X = np.array([[1, -2, 3], [7, 5, 0], [-2, -1, 2]]) # 3 × 3 크기
Y = np.array([[0, 1, -1], [1, -1, 0]]) # 2 × 3 크기
np.inner(X, Y)
# array([[-5, 3], [5, 2], [-3, -1]]) # 3 × 2 크기
np.linalg.inv(X)
로 사용 가능np.linalg.pinv(X)
로 사용 가능# Scikit-Learn-based Linear Regression
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X, y)
y_test = model.predict(x_test)
# Moore-Pensore-Inverse-Matrix-based Linear Regression
X_ = np.array([np.append(x, [1]) for x in X])
beta = np.linalg.pinv(X_) @ y
y_test = np.append(x, [1]) @ beta