Tarea Semana 2 (MIT OLL)
Contenido
Tarea Semana 2 (MIT OLL)¶
import numpy as np
# funciones auxiliares
def rv(value_list):
return np.array([value_list])
def tp(A):
return np.transpose(A)
def cv(value_list):
return tp(rv(value_list))
def actualiza(theta,x,y,origen = True):
if origen:
if y * (theta.T @ x) <= 0:
return theta + y*x
else:
print("no es necesario actualizar")
return theta
def verifica(theta,X,Y,origen= True):
if origen:
return np.sign(theta.T @ X) == Y.T
X = np.array([[1,-1],[0,1],[-1.5,-1]]).T
Y = np.array([[1],[-1],[1]])
# COmenzar con X_1
x = X[:,0:1]
theta = cv([0,0])
y = Y[0,0]
theta = actualiza(theta,x,y)
theta
array([[ 1.],
[-1.]])
verifica(theta,X,Y)
array([[ True, True, False]])
x = X[:,1:2]
y = Y[1,0]
theta = actualiza(theta,x,y)
no es necesario actualizar
verifica(theta,X,Y)
array([[ True, True, False]])
x = X[:,2:3]
y = Y[2,0]
theta = actualiza(theta,x,y)
theta
array([[-0.5],
[-2. ]])
verifica(theta,X,Y)
array([[ True, True, True]])
# COmenzar con x^2
x = X[:,1:2]
y = Y[1,0]
theta = cv([0,0])
theta = actualiza(theta,x,y)
theta
array([[ 0.],
[-1.]])
verifica(theta,X,Y)
array([[ True, True, True]])
1.2a)¶
# 1.2a)
X = np.array([[1,-1],[0,1],[-10,-1]]).T
Y = np.array([[1],[-1],[1]])
# COmenzar con X_1
x = X[:,0:1]
theta = cv([0,0])
y = Y[0,0]
theta = actualiza(theta,x,y)
theta
array([[ 1],
[-1]])
verifica(theta,X,Y)
array([[ True, True, False]])
x = X[:,1:2]
y = Y[1,0]
theta = actualiza(theta,x,y)
theta
no es necesario actualizar
array([[ 1],
[-1]])
x = X[:,2:3]
y = Y[2,0]
theta = actualiza(theta,x,y)
theta
array([[-9],
[-2]])
verifica(theta,X,Y)
array([[False, True, True]])
x = X[:,0:1]
y = Y[0,0]
theta = actualiza(theta,x,y)
theta
array([[-8],
[-3]])
verifica(theta,X,Y)
array([[False, True, True]])
x = X[:,1:2]
y = Y[1,0]
theta = actualiza(theta,x,y)
theta
no es necesario actualizar
array([[-8],
[-3]])
x = X[:,2:3]
y = Y[2,0]
theta = actualiza(theta,x,y)
theta
no es necesario actualizar
array([[-8],
[-3]])
x = X[:,0:1]
y = Y[0,0]
theta = actualiza(theta,x,y)
theta
array([[-7],
[-4]])
verifica(theta,X,Y)
array([[False, True, True]])
x = X[:,1:2]
y = Y[1,0]
theta = actualiza(theta,x,y)
theta
no es necesario actualizar
array([[-7],
[-4]])
x = X[:,2:3]
y = Y[2,0]
theta = actualiza(theta,x,y)
theta
no es necesario actualizar
array([[-7],
[-4]])
x = X[:,0:1]
y = Y[0,0]
theta = actualiza(theta,x,y)
theta
array([[-6],
[-5]])
verifica(theta,X,Y)
array([[False, True, True]])
x = X[:,1:2]
y = Y[1,0]
theta = actualiza(theta,x,y)
theta
no es necesario actualizar
array([[-6],
[-5]])
x = X[:,2:3]
y = Y[2,0]
theta = actualiza(theta,x,y)
theta
no es necesario actualizar
array([[-6],
[-5]])
x = X[:,0:1]
y = Y[0,0]
theta = actualiza(theta,x,y)
theta
array([[-5],
[-6]])
verifica(theta,X,Y)
array([[ True, True, True]])
Problemas 7 a 10¶
Los problemas 7 a 10 son programas en colab