[SOLVED] CS

$25

File Name: CS_.zip
File Size: 28.26 KB

5/5 - (1 vote)

CSCC11 Introduction to Machine Learning, Winter 2021, Assignment 3
B. Chan, M. Ammous, Z. Zhang, D. Fleet

import numpy as np

from logistic_regression import LogisticRegression
from utils import load_pickle_dataset

def train(train_X,
train_y,
test_X=None,
test_y=None,
data_preprocessing = lambda X: X,
factor=1,
bias=0,
alpha_inverse=0,
beta_inverse=0,
num_epochs=1000,
step_size=1e-3,
check_grad=False,
verbose=False):
This function trains a logistic regression model given the data.

Args:
train_X (ndarray (shape: (N, D))): A NxD matrix consisting N D-dimensional training inputs.
train_y (ndarray (shape: (N, 1))): A N-column vector consisting N scalar training outputs (labels).
test_X (ndarray (shape: (M, D))): A NxD matrix consisting M D-dimensional test inputs.
test_y (ndarray (shape: (M, 1))): A N-column vector consisting M scalar test outputs (labels).
data_preprocessing (ndarray -> ndarray): A data-preprocessing function that is applied on both the
training and test inputs.

Initialization Args:
factor (float): A constant factor of the randomly initialized weights.
bias (float): The bias value

Learning Args:
num_epochs (int): Number of gradient descent steps
NOTE: 1 <= num_epochs- step_size (float): Gradient descent step size- check_grad (bool): Whether or not to check gradient using finite difference.- verbose (bool): Whether or not to print gradient information for every step.”””train_accuracy = 0# ====================================================# TODO: Implement your solution within the box# Step 0: Apply data-preprocessing (i.e. feature map) on the input data# Step 1: Initialize model and initialize weights# Step 2: Train the model# Step 3: Evaluate training performance# ====================================================train_preds = np.argmax(train_probs, axis=1)train_accuracy = 100 * np.mean(train_preds == train_y.flatten())print(“Training Accuracy: {}%”.format(train_accuracy))if test_X is not None and test_y is not None:test_accuracy = 0# ====================================================# TODO: Implement your solution within the box# Evaluate test performance# ====================================================test_preds = np.argmax(test_probs, axis=1)test_accuracy = 100 * np.mean(test_preds == test_y.flatten())print(“Test Accuracy: {}%”.format(test_accuracy))def feature_map(X):””” This function perform applies a feature map on the given input.Given any 2D input vector x, the output of the feature map psi is a 3D vector, defined as:psi(x) = (x_1, x_2, x_1 * x_2)^TArgs:- X (ndarray (shape: (N, 2))): A Nx2 matrix consisting N 2-dimensional inputs.Output:- X_mapped (ndarray (shape: (N, 3))): A Nx3 matrix consisting N 3-dimensional vectors corresponding to the outputs of the feature map applied on the inputs X.”””assert X.shape[1] == 2, f”This feature map only applies to 2D inputs. Got: {X.shape[1]}”# ====================================================# TODO: Implement your non-linear-map here# ====================================================return X_mappedif __name__ == “__main__”:seed = 0np.random.seed(seed)# Support generic_1, generic_2, generic_3, winedataset = “generic_3″assert dataset in (“generic_1”, “generic_2”, “generic_3”, “wine”), f”Invalid dataset: {dataset}”dataset_path = f”./datasets/{dataset}.pkl”data = load_pickle_dataset(dataset_path)train_X = data[‘train_X’]train_y = data[‘train_y’]test_X = test_y = Nonetest_X = test_y = Noneif ‘test_X’ in data and ‘test_y’ in data:test_X = data[‘test_X’]test_y = data[‘test_y’]# ====================================================# Hyperparameters# NOTE: This is definitely not the best way to pass all your hyperparameters.# We can usually use a configuration file to specify these.# ====================================================factor = 1bias = 0alpha_inverse = 0beta_inverse = 0num_epochs = 1000step_size = 1e-3apply_data_preprocessing = Falsecheck_grad = Trueverbose = Falsedata_preprocessing = lambda X: Xif apply_data_preprocessing:data_preprocessing = feature_maptrain(train_X=train_X,train_y=train_y,test_X=test_X,test_y=test_y,data_preprocessing=data_preprocessing,factor=factor,bias=bias,alpha_inverse=alpha_inverse,beta_inverse=beta_inverse,num_epochs=num_epochs,step_size=step_size,check_grad=check_grad,verbose=verbose)

Reviews

There are no reviews yet.

Only logged in customers who have purchased this product may leave a review.

Shopping Cart
[SOLVED] CS
$25