<성분곱>
import numpy as np
x = np.array([1,2,3])
y = np.array([-1,-2,-3])
x * y
>> array([-1,-4,-9])
norm의 종류에 따라 기하학적 성질이 달라진다. 그렇기 때문에 달라진 기하세계에서 학습을 진행하게 될 때, 다른 성질을 이용해 다양한 종류의 학습에 사용하고, 각 기계학습 방법론에서 어떤 norm을 사용할지 결정할 때 각 norm의 기하학적 성질에 의존한다.
np.inner
은 i번째 행벡터와 j번째 행벡터 사이의 내적을 성분으로 가지는 행렬을 계산한다. 수학에선 보통 를 내적으로 계산.x = np.array([[1,-2,3], [7, 5, 0], [-2, -1, 2]])
y = np.array([[0, 1], [1, -1], [-2, 1]])
x @ y
>> array([[-8, 6], [5, 2], [-5, 1]])
x = np.array([[1,-2,3], [7, 5, 0], [-2, -1, 2]])
y = np.array([[0, 1, -1], [1, -1, 0]])
np.inner(x, y)
>> array([[-5, 3], [5, 2], [-3, 1]])
np.linalg.inv(A)
)np.linalg.pinv(A)
)n<=m 인 경우는, 식의 수보다 변수의 수가 많기 때문에 (부정), psudo inverse로 여러 해 중 하나를 구할 수 있다.
np.linalg.pinv
로 데이터를 linear model
로 해석하는 선형회귀식을 구할 수 있다.선형회귀분석은 데이터 수>=변수의 수 이므로 (불능) 정확한 값을 구하는 것은 불가능하다. 따라서 에 근접하는(L2-norm을 최소화 하는) 를 찾아야 한다. ( )
# moore penrose 역행렬
X_ = np.array([np.append(x,[1]) for x in X])
beta = np.linalg.pinv(X_) @ y
y_test = np.array([np.append(x,[1]) for x in x_test]) @ beta
y_test
주의해야 할 점은, 식의 경우, y절편의 값이 없기 때문에 X의 각 행에 1을 append
해 주어야 한다.
python
의 기초적인 list
및 변수 사용법을 학습하는 과제
주어진 리스트에서 가장 큰 수, 가장 작은 수, 평균, 중간값을 return하는 함수 4개를 구현하는 과제이다.
#######################
# Basic Math #
#######################
def get_greatest(number_list):
"""
주어진 리스트에서 가장 큰 숫자를 반환함
"""
greatest_number = max(number_list)
return greatest_number
def get_smallest(number_list):
"""
주어진 리스트에서 제일 작은 숫자를 반환함
"""
smallest_number = sorted(number_list)[0]
return smallest_number
def get_mean(number_list):
"""
주어진 리스트 숫자들의 평균을 구함.
"""
mean = sum(number_list)/len(number_list)
return mean
def get_median(number_list):
"""
주어진 리스트 숫자들의 중간값을 구함.
"""
number_list.sort()
median_list = number_list[(len(number_list)-1)//2 : len(number_list)//2+1]
median = sum(median_list)/len(median_list)
return median
python
내장함수를 사용했고, get_median
함수는 number_list
index 계산 후 slice
를 해 구현했다.
# 5 -> s[2:3]
# 4 -> s[1:3]
각자 자기소개 후 조 이름, 그라운드 룰, 협업툴 등을 정했다.
pre-course
에서 공개되었던 강의들로 구성이 되었는데, 이미 들었던 강의였지만 다시 들으니 새로운 부분이 또 있었다.python
내장함수를 사용했는데, 앞으로는 naive한 내장함수보다, numpy
로 문제를 풀며 익혀야겠다.