Tarea Semana 2 (MIT OLL)

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