1 CAP 5625: Programming Assignment 2 Due on Canvas by Wednesday, November 3, 2021 at 11:59pm Preliminary instructions You may consult with other students currently taking CAP 5625 at FAU on this...

1 answer below »
you can use python or matlab


1 CAP 5625: Programming Assignment 2 Due on Canvas by Wednesday, November 3, 2021 at 11:59pm Preliminary instructions You may consult with other students currently taking CAP 5625 at FAU on this programming assignment. If you do consult with others, then you must indicate this by providing their names with your submitted assignment. However, all analyses must be performed independently, all source code must be written independently, and all students must turn in their own independent assignment. Though it should be unnecessary to state in a graduate class, I am reminding you that you may not turn in code (partial or complete) that is written or inspired by others, including code from other students, websites, past code that I release from prior assignments in this class or from past semesters in other classes I teach, or any other source that would constitute an academic integrity violation. All instances of academic integrity violations will receive a zero on the assignment and will be referred to the Department Chair and College Dean for further administrative action. You may choose to use whatever programming language you want. However, you must provide clear instructions on how to compile and/or run your source code. I recommend using a modern language, such as Python, R, or Matlab as learning these languages can help you if you were to enter the machine learning or artificial intelligence field in the future. All analyses performed and algorithms run must be written from scratch. That is, you may not use a library that can perform coordinate descent, cross validation, elastic net, least squares regression, optimization, etc. to successfully complete this programing assignment (though you may reuse your relevant code from Programming Assignment 1). The goal of this assignment is not to learn how to use particular libraries of a language, but it is to instead understand how key methods in statistical machine learning are implemented. With that stated, I will provide 10% extra credit if you additionally implement the assignment using built-in statistical or machine learning libraries (see Deliverable 6 at end of the document). Brief overview of assignment In this assignment you will still be analyzing the same credit card data from ? = 400 training observations that you examined in Programming Assignment 1. The goal is to fit a model that can predict credit balance based on ? = 9 features describing an individual, which include an individual’s income, credit limit, credit rating, number of credit cards, age, education level, gender, student status, and marriage status. Specifically, you will perform a penalized (regularized) least squares fit of a linear model using elastic net, with the model parameters obtained by coordinate descent. Elastic net will permit you to provide simultaneous parameter shrinkage (tuning parameter ? ≥ 0) and feature selection (tuning parameter ? ∈ [0,1]). The 2 two tuning parameters ? and ? will be chosen using five-fold cross validation, and the best-fit model parameters will be inferred on the training dataset conditional on an optimal pair of tuning parameters. Data Data for these observations are given in Credit_N400_p9.csv, with individuals labeled on each row (rows 2 through 401), and input features and response given on the columns (with the first row representing a header for each column). There are six quantitative features, given by columns labeled “Income”, “limit”, “Rating”, “Cards”, “Age”, and “Education”, and three qualitative features with two levels labeled “Gender”, “Student”, and “Married”. Detailed description of the task Recall that the task of performing an elastic net fit to training data {(?1, ?1), (?2, ?2), … , (?? , ??)} is to minimize the cost function ?(?, ?, ?) = ∑(?? −∑????? ? ?=1 ) 2 ? ?=1 + ?(?∑?? 2 ? ?=1 + (1 − ?)∑|??| ? ?=1 ) where ?? is a centered response and where the input ? features are standardized (i.e., centered and divided by their standard deviation). Note that we cannot use gradient descent to minimize this cost function, as the component ∑ |??| ? ?=1 of the penalty is not differentiable. Instead, we use coordinate descent, where we update each parameter ?, ? = 1,2, … , ?, in turn, keeping all other parameters constant, and using sub-gradient rather than gradient calculations. To implement this algorithm, depending on whether your chosen language can quickly compute vectorized operations, you may implement coordinate descent using either Algorithm 1 or Algorithm 2 below (choose whichever you are more comfortable implementing). Note that in languages like R, Python, or Matlab, Algorithm 2 (which would be implemented by several nested loops) may be much slower than Algorithm 1. Also note that if you are implementing Algorithm 1 using Python, use numpy arrays instead of Pandas data frames for computational speed. For this assignment, assume that we will reach the minimum of the cost function within a fixed number of steps, with the number of iterations being 1000. 3 Algorithm 1 (vectorized): Step 1. Fix tuning parameters ? and ? Step 2. Generate ?-dimensional centered response vector ? and ? × ? standardized (centered and scaled to have unit standard deviation) design matrix ? Step 3. Precompute ??, ? = 1,2, … , ?, as ?? =∑??? 2 ? ?=1 Step 4. Randomly initialize the parameter vector ? = [?1, ?2, … , ??] Step 5. For each ?, ? = 1,2, … , ?: compute ?? = x? ?(? − ?? + x???) and set ?? = sign(??) (|??| − ?(1 − ?) 2 ) + ?? + ?? Step 6. Repeat Step 5 for 1000 iterations or until convergence (vector ? does not change) Step 7. Set the last updated parameter vector as �̂� = [�̂�1, �̂�2, … , �̂�?] 4 Algorithm 2 (non-vectorized): Step 1. Fix tuning parameters ? and ? Step 2. Generate ?-dimensional centered response vector ? and ? × ? standardized (centered and scaled to have unit standard deviation) design matrix ? Step 3. Precompute ??, ? = 1,2, … , ?, as ?? =∑??? 2 ? ?=1 Step 4. Randomly initialize the parameter vector ? = [?1, ?2, … , ??] Step 5. For each ?, ? = 1,2, … , ?: compute ?? =∑??? ( ?? −∑????? ? ?=1 ?≠? ) ? ?=1 and set ?? = sign(??) (|??| − ?(1 − ?) 2 ) + ?? + ?? Step 6. Repeat Step 5 for 1000 iterations or until convergence (vector ? does not change) Step 7. Set the last updated parameter vector as �̂� = [�̂�1, �̂�2, … , �̂�?] Note that we define sign(?) = { −1 if ? < 0="" 1="" if="" ≥="" 0="" +="{" 0="" if="">< 0 ? if ? ≥ 0 and we use the notation x? as the ?th column of the design matrix ? (the ?th feature vector). this vector by definition is an ?-dimensional column vector. when randomly initializing the parameter vector, i would make sure that the parameters start at small values. a good strategy here may be to randomly initialize each of the ??, ? = 1,2, … , ?, parameters from a uniform distribution between −1 and 1. effect of tuning parameter on inferred regression coefficients you will consider a discrete grid of nine tuning parameter values ? ∈ {10−2, 10−1, 100, 101, 102, 103, 104, 105, 106} where the tuning parameter is evaluated across a wide range of values on a log scale, as well as six tuning parameter values ? ∈ {0, 1 5 , 2 5 , 3 5 , 4 5 , 1}. for each tuning parameter value pair, you will use coordinate descent to infer the best-fit model. note that when ? = 0, we obtain the lasso estimate, and when ? = 1, we obtain the ridge regression estimate. 5 deliverable 1: illustrate the effect of the tuning parameter on the inferred elastic net regression coefficients by generating six plots (one for each ? value) of nine lines (one for each of the ? = 9 features), with the ?-axis as �̂�?, ? = 1,2, … ,9, and the ?-axis the corresponding log-scaled tuning parameter value log10(?) that generated the particular �̂�?. label both axes in all six plots. without the log scaling of the tuning parameter ?, the plots will look distorted. choosing the best tuning parameter you will consider a discrete grid of nine tuning parameter values ? ∈ {10−2, 10−1, 100, 101, 102, 103, 104, 105, 106} where the tuning parameter is evaluated across a wide range of values on a log scale, as well as six tuning parameter values ? ∈ {0, 1 5 , 2 5 , 3 5 , 4 5 , 1}. for each tuning parameter value pair, perform five-fold cross validation and choose the pair of ? and ? values that give the smallest cv(5) = 1 5 ∑mse? 5 ?=1 where mse? is the mean squared error on the validation set of the ?th-fold. note that during the five-fold cross validation, you will hold out one of the five sets (here 80 observations) as the validation set and the remaining four sets (the other 320 observations) will be used as the training set. on this training set, you will need to center the output and standardize (center and divided by the standard deviation across samples) each feature. these identical values used for centering the output and standardizing the input will need to be applied to the corresponding validation set, so that the validation set is on the same scale. because the training set changes 0="" if="" ≥="" 0="" and="" we="" use="" the="" notation="" x?="" as="" the="" th="" column="" of="" the="" design="" matrix="" (the="" th="" feature="" vector).="" this="" vector="" by="" definition="" is="" an="" -dimensional="" column="" vector.="" when="" randomly="" initializing="" the="" parameter="" vector,="" i="" would="" make="" sure="" that="" the="" parameters="" start="" at="" small="" values.="" a="" good="" strategy="" here="" may="" be="" to="" randomly="" initialize="" each="" of="" the="" ,="" =="" 1,2,="" …="" ,="" ,="" parameters="" from="" a="" uniform="" distribution="" between="" −1="" and="" 1.="" effect="" of="" tuning="" parameter="" on="" inferred="" regression="" coefficients="" you="" will="" consider="" a="" discrete="" grid="" of="" nine="" tuning="" parameter="" values="" ∈="" {10−2,="" 10−1,="" 100,="" 101,="" 102,="" 103,="" 104,="" 105,="" 106}="" where="" the="" tuning="" parameter="" is="" evaluated="" across="" a="" wide="" range="" of="" values="" on="" a="" log="" scale,="" as="" well="" as="" six="" tuning="" parameter="" values="" ∈="" {0,="" 1="" 5="" ,="" 2="" 5="" ,="" 3="" 5="" ,="" 4="" 5="" ,="" 1}.="" for="" each="" tuning="" parameter="" value="" pair,="" you="" will="" use="" coordinate="" descent="" to="" infer="" the="" best-fit="" model.="" note="" that="" when="" =="" 0,="" we="" obtain="" the="" lasso="" estimate,="" and="" when="" =="" 1,="" we="" obtain="" the="" ridge="" regression="" estimate.="" 5="" deliverable="" 1:="" illustrate="" the="" effect="" of="" the="" tuning="" parameter="" on="" the="" inferred="" elastic="" net="" regression="" coefficients="" by="" generating="" six="" plots="" (one="" for="" each="" value)="" of="" nine="" lines="" (one="" for="" each="" of="" the="" =="" 9="" features),="" with="" the="" -axis="" as="" �̂�?,="" =="" 1,2,="" …="" ,9,="" and="" the="" -axis="" the="" corresponding="" log-scaled="" tuning="" parameter="" value="" log10(?)="" that="" generated="" the="" particular="" �̂�?.="" label="" both="" axes="" in="" all="" six="" plots.="" without="" the="" log="" scaling="" of="" the="" tuning="" parameter="" ,="" the="" plots="" will="" look="" distorted.="" choosing="" the="" best="" tuning="" parameter="" you="" will="" consider="" a="" discrete="" grid="" of="" nine="" tuning="" parameter="" values="" ∈="" {10−2,="" 10−1,="" 100,="" 101,="" 102,="" 103,="" 104,="" 105,="" 106}="" where="" the="" tuning="" parameter="" is="" evaluated="" across="" a="" wide="" range="" of="" values="" on="" a="" log="" scale,="" as="" well="" as="" six="" tuning="" parameter="" values="" ∈="" {0,="" 1="" 5="" ,="" 2="" 5="" ,="" 3="" 5="" ,="" 4="" 5="" ,="" 1}.="" for="" each="" tuning="" parameter="" value="" pair,="" perform="" five-fold="" cross="" validation="" and="" choose="" the="" pair="" of="" and="" values="" that="" give="" the="" smallest="" cv(5)="1" 5="" ∑mse?="" 5="" =1="" where="" mse?="" is="" the="" mean="" squared="" error="" on="" the="" validation="" set="" of="" the="" th-fold.="" note="" that="" during="" the="" five-fold="" cross="" validation,="" you="" will="" hold="" out="" one="" of="" the="" five="" sets="" (here="" 80="" observations)="" as="" the="" validation="" set="" and="" the="" remaining="" four="" sets="" (the="" other="" 320="" observations)="" will="" be="" used="" as="" the="" training="" set.="" on="" this="" training="" set,="" you="" will="" need="" to="" center="" the="" output="" and="" standardize="" (center="" and="" divided="" by="" the="" standard="" deviation="" across="" samples)="" each="" feature.="" these="" identical="" values="" used="" for="" centering="" the="" output="" and="" standardizing="" the="" input="" will="" need="" to="" be="" applied="" to="" the="" corresponding="" validation="" set,="" so="" that="" the="" validation="" set="" is="" on="" the="" same="" scale.="" because="" the="" training="" set="">
Answered 6 days AfterOct 17, 2021

Answer To: 1 CAP 5625: Programming Assignment 2 Due on Canvas by Wednesday, November 3, 2021 at 11:59pm...

Sandeep Kumar answered on Oct 24 2021
114 Votes
ass2.ipynb
{
"cells": [
{
"cell_type": "code",
"execution_count": 48,
"metadata": {
"id": "ZfXIWZ57NkON"
},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import os\n",
"import pandas as pd"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {
"id": "nMdVQfNePLQJ"
},
"outputs": [],
"source": [
"class Elastic:\n",
" def __init__(self, preds, responses, lambdas, alphas, nf = 5, iters = 1000, to_verb = False):\n",
"\n",
" self.x, self.y = self._shuffle_data(preds, responses)\n",
" self.lambdas = lambdas \n",
" self.alphas = alphas\n",
" self.nf = nf \n",
" self.iters = iters\n",
" self.to_verb = to_verb\n",
" self._initialize()\n",
"\n",
"\n",
" def _initialize(self):\n",
" '''\n",
" This function initializes certain values needed for training and checks that certain\n",
" arguments have appropriate values. \n",
" '''\n",
"\n",
" # get number of samples and number of features\n",
" self.n_samples = self.x.shape[0]\n",
" self.n_preds = self.x.shape[1]\n",
" \n",
" # matrix to store the cross validation results \n",
" self.cv_vals = np.zeros([self.nf, len(self.lambdas), len(self.alphas)])\n",
"\n",
" # determine the number of validation samples and their inds based on nf \n",
" self.n_val_samples = self.n_samples // self.nf \n",
" self.val_inds = list(range(0, self.n_samples, self.n_val_samples))\n",
" \n",
" if self.to_verb:\n",
" print('[INFO] Using {} training and {} validation samples for each CV fold.'.format(\n",
" self.n_samples - self.n_val_samples, self.n_val_samples)\n",
" )\n",
"\n",
" # create a tensor to store the Betas \n",
" self.B_trained = np.zeros([self.nf, len(self.lambdas), len(self.alphas), self.n_preds])\n",
"\n",
" def _standardize(self, x, mean_vec, std_vec):\n",
"\n",
"\n",
" return (x - mean_vec) / std_vec \n",
"\n",
" def _center_responses(self, y, mean):\n",
"\n",
"\n",
" return y - mean\n",
"\n",
" def _shuffle_data(self, preds, responses):\n",
"\n",
"\n",
" data = np.concatenate((preds, responses[:, None]), 1)\n",
" np.random.shuffle(data)\n",
" return data[:, :-1], data[:, -1]\n",
"\n",
" def _initialize_B(self):\n",
"\n",
"\n",
" return np.random.uniform(low = -1, high = 1, size = (self.n_preds, 1))\n",
"\n",
" def predict(self, x):\n",
"\n",
"\n",
" assert(self.mean_vec is not None and self.std_vec is not None), \\\n",
" 'Model must be trained before predicting.'\n",
"\n",
" x = self._standardize(x, self.mean_vec, self.std_vec)\n",
" return np.matmul(x, self.B)\n",
"\n",
" def _get_folds(self, val_ind):\n",
" \n",
"\n",
" x_val = self.x[val_ind:val_ind + self.n_val_samples]\n",
" x_train = np.delete(self.x, np.arange(val_ind, val_ind + self.n_val_samples), axis = 0)\n",
" y_val = self.y[val_ind:val_ind + self.n_val_samples]\n",
" y_train = np.delete(self.y, np.arange(val_ind, val_ind + self.n_val_samples), axis = 0)\n",
" return x_train, x_val, y_train, y_val\n",
"\n",
" def _update(self, x, y, B, ss_cols, lambda_, alpha):\n",
"\n",
" \n",
" for k in range(self.n_preds):\n",
" # get rss without the effect of coefficient k\n",
" rss_k = y - np.matmul(x, B) + (x[:, k] * B[k])[:, None]\n",
" \n",
" # a_k is part of the derivative of the rss term in the loss function\n",
" a_k = np.matmul(x[:, k].transpose(), rss_k)[0]\n",
" \n",
" # update B_k\n",
" B_k = np.absolute(a_k) - lambda_ * (1 - alpha) / 2\n",
" B_k = B_k if B_k >= 0 else 0\n",
" B[k, 0] = np.sign(a_k) * B_k / (ss_cols[k] + lambda_ * alpha)\n",
" \n",
" return B\n",
"\n",
" def score(self, x, y, B):\n",
"\n",
"\n",
" y_hat = np.matmul(x, B)\n",
" mse = np.mean((y - y_hat) ** 2)\n",
" return mse\n",
" \n",
" def _compute_ss_cols(self, x):\n",
" '''\n",
" Computes the sum of squares for each column needed in the update.\n",
" Only need to do this once per fold at the beginning. \n",
" \n",
" Args:\n",
" x (np.ndarray): The N x M design matrix of the current fold. \n",
" \n",
" Returns:\n",
" ss_cols (np.ndarray): The M-dim vector representing the sum\n",
" of squares of the cols of x.\n",
" '''\n",
" return np.sum(x ** 2, 0)\n",
" \n",
" def _find_best_tuning_params(self):\n",
" '''\n",
" Finds the value of lambda and alpha with minimum corresponding CV score and\n",
" saves them as class attributes. \n",
" '''\n",
" cv_mean = np.mean(self.cv_vals, 0)\n",
" best_lambda_ind, best_alpha_ind = np.where(cv_mean == np.amin(cv_mean))\n",
" self.best_lambda = self.lambdas[best_lambda_ind[0]]\n",
" self.best_alpha = self.alphas[best_alpha_ind[0]]\n",
"\n",
" def fit(self):\n",
" '''\n",
" Implements the cross validation and retrains the model with the optimal lambda \n",
" and alpha on the entire dataset.\n",
" '''\n",
"\n",
" for i_lambda, lambda_ in enumerate(self.lambdas): # loop through lambdas\n",
" for i_alpha, alpha in enumerate(self.alphas): # loop through alphas\n",
" for i_fold, val_ind in zip(range(self.nf), self.val_inds): # loop through folds\n",
" # get the folds\n",
" x_train, x_val, y_train, y_val = self._get_folds(val_ind)\n",
"\n",
" # standardize x and center y\n",
" mean_vec, std_vec = np.mean(x_train, 0), np.std(x_train, 0)\n",
" mean_response = np.mean(y_train)\n",
" x_train = self._standardize(x_train, mean_vec, std_vec)\n",
" x_val = self._standardize(x_val, mean_vec, std_vec)\n",
" y_train = self._center_responses(y_train, mean_response)[:, None]\n",
" y_val = self._center_responses(y_val, mean_response)[:, None]\n",
" \n",
" # compute b_k given this fold -- don't need to compute every update\n",
" ss_cols = self._compute_ss_cols(x_train)\n",
"\n",
" # initialize Beta for this lambda and fold\n",
" B = self._initialize_B()\n",
"\n",
" for iter in range(self.iters):\n",
" B = self._update(x_train, y_train, B, ss_cols, lambda_, alpha)\n",
" \n",
" # score this model \n",
" score = self.score(x_val, y_val, B)\n",
"\n",
" # store the score with the tuning param combinations\n",
" self.cv_vals[i_fold, i_lambda, i_alpha] = score\n",
"\n",
" # store the coefficient vector\n",
" self.B_trained[i_fold, i_lambda, i_alpha] = B[:, 0]\n",
" \n",
" # if to_verb flag, then print out the mean CV MSE for the combo of lambda and alpha\n",
" if self.to_verb:\n",
" print('lambda:{}; alpha:{}; CV MSE:{}'.format(\n",
" lambda_, alpha, np.mean(self.cv_vals[:, i_lambda, i_alpha]))\n",
" )\n",
"\n",
"\n",
"
############# Retrain on entire dataset with optimal lambda and alpha #############\n",
" \n",
" # find the best lambda and alpha\n",
" self._find_best_tuning_params()\n",
" \n",
" # standardize features of x and center responses \n",
" self.mean_vec, self.std_vec = np.mean(self.x, 0), np.std(self.x, 0)\n",
" x = self._standardize(self.x, self.mean_vec, self.std_vec)\n",
" y = self._center_responses(self.y, np.mean(self.y))[:, None]\n",
" \n",
" # compute the sum of squares for each feature on the entire dataset\n",
" ss_cols = self._compute_ss_cols(x)\n",
" \n",
" # initialize coefficients\n",
" self.B = self._initialize_B()\n",
" \n",
" # perform updates \n",
" for iter in range(self.iters):\n",
" self.B = self._update(x, y, self.B, ss_cols, self.best_lambda, self.best_alpha)"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 419
},
"id": "2yKcu-xHOwnO",
"outputId": "6b6549d7-3105-4600-c9a1-1bb42d9f335c"
},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"
IncomeLimitRatingCardsAgeEducationGenderStudentMarriedBalance
014.891360628323411MaleNoYes333
1106.025664548338215FemaleYesYes903
2104.593707551447111MaleNoNo580
3148.924950468133611FemaleNoNo964
455.882489735726816MaleNoYes331
.................................
39512.096410030733213MaleNoYes560
39613.364383829656517MaleNoNo480
39757.872417132156712FemaleNoYes138
39837.728252519214413MaleNoYes0
39918.70155244155647FemaleNoNo966
\n",
"

400 rows × 10 columns

\n",
"
"
],
"text/plain": [
" Income Limit Rating Cards Age Education Gender Student Married \\\n",
"0 14.891 3606 283 2 34 11 Male No Yes \n",
"1 106.025 6645 483 3 82 15 Female Yes Yes \n",
"2 104.593 7075 514 4 71 11 Male No No \n",
"3 148.924 9504 681 3 36 11 Female No No \n",
"4 55.882 4897 357 2 68 16 Male No Yes \n",
".. ... ... ... ... ... ... ... ... ... \n",
"395 12.096 4100 307 3 32 13 Male No Yes \n",
"396 13.364 3838 296 5 65 17 Male No No \n",
"397 57.872 4171 321 5 67 12 Female No Yes \n",
"398 37.728 2525 192 1 44 13 Male No Yes \n",
"399 18.701 5524 415 5 64 7 Female No No \n",
"\n",
" Balance \n",
"0 333 \n",
"1 903 \n",
"2 580 \n",
"3 964 \n",
"4 331 \n",
".. ... \n",
"395 560 \n",
"396 480 \n",
"397 138 \n",
"398 0 \n",
"399 966 \n",
"\n",
"[400 rows x 10 columns]"
]
},
"execution_count": 50,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# read in the data into a pandas dataframe\n",
"df = pd.read_csv('CreditN400p9.csv')\n",
"df"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 419
},
"id": "fAbLWpEI1DW8",
"outputId": "1ef5b0ed-4ff6-4aad-b62e-80a8fa91ce08"
},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"\n",
"
IncomeLimitRatingCardsAgeEducationGenderStudentMarriedBalance
014.891360628323411101333
1106.025664548338215011903
2104.593707551447111100580
3148.924950468133611000964
455.882489735726816101331
.................................
39512.096410030733213101560
39613.364383829656517100480
39757.872417132156712001138
39837.7282525192144131010
39918.70155244155647000966
\n",
"

400 rows × 10 columns

\n",
"
"
],
"text/plain": [
" Income Limit Rating Cards Age Education Gender Student Married \\\n",
"0 14.891 3606 283 2 34 11 1 0 1 \n",
"1 106.025 6645 483 3 82 15 0 1 1 \n",
"2 104.593 7075 514 4 71 11 1 0 0 \n",
"3 148.924 9504 681 3 36 11 0 0 0 \n",
"4 55.882 4897 357 2 68 16 1 0 1 \n",
".. ... ... ... ... ... ... ... ... ... \n",
"395 12.096 4100 307 3 32 13 1 0 1 \n",
"396 13.364 3838 296 5 65 17 1 0 0 \n",
"397 57.872 4171 321 5 67 12 0 0 1 \n",
"398 37.728 2525 192 1 44 13 1 0 1 \n",
"399 18.701 5524 415 5 64 7 0 0 0 \n",
"\n",
" Balance \n",
"0 333 \n",
"1 903 \n",
"2 580 \n",
"3 964 \n",
"4 331 \n",
".. ... \n",
"395 560 \n",
"396 480 \n",
"397 138 \n",
"398 0 \n",
"399 966 \n",
"\n",
"[400 rows x 10 columns]"
]
},
"execution_count": 51,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# recode the gender, student, and married preds \n",
"df['Gender'].replace(to_replace = dict(Female = 0, Male = 1), inplace=True)\n",
"df['Student'].replace(to_replace = dict(No = 0, Yes = 1), inplace=True)\n",
"df['Married'].replace(to_replace = dict(No = 0, Yes = 1), inplace=True)\n",
"df"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
},
"id": "a6rgSVFt0-Lc",
"outputId": "98dc7a72-11cd-4949-bbe3-073e5bac2a05"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(400, 9) (400,)\n"
]
}
],
"source": [
"# separate the predictors from the response\n",
"X = df.to_numpy()[:, :-1]\n",
"Y = df.to_numpy()[:, -1]\n",
"print(X.shape, Y.shape)"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {
"id": "676w7t_e2jOr"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[INFO] Using 320 training and 80 validation samples for each CV fold.\n"
]
}
],
"source": [
"# instantiate the model \n",
"elastic_net = Elastic(\n",
" preds = X,\n",
" responses = Y,\n",
" lambdas = 10 ** np.arange(-2., 7.),\n",
" alphas = [0, 0.2, 0.4, 0.6, 0.8, 1.0],\n",
" iters = 1000,\n",
" to_verb = True\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {
"id": "rSKcCFTQEkPz"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"lambda:0.01; alpha:0; CV MSE:10234.626587559245\n",
"lambda:0.01; alpha:0.2; CV MSE:10234.211795867723\n",
"lambda:0.01; alpha:0.4; CV MSE:10233.852438234768\n",
"lambda:0.01; alpha:0.6; CV MSE:10233.436392296477\n",
"lambda:0.01; alpha:0.8; CV MSE:10233.075147217352\n",
"lambda:0.01; alpha:1.0; CV MSE:10232.692809055512\n",
"lambda:0.1; alpha:0; CV MSE:10234.620036649416\n",
"lambda:0.1; alpha:0.2; CV MSE:10230.888416232277\n",
"lambda:0.1; alpha:0.4; CV MSE:10227.51252752043\n",
"lambda:0.1; alpha:0.6; CV MSE:10224.474212258927\n",
"lambda:0.1; alpha:0.8; CV MSE:10221.717309133242\n",
"lambda:0.1; alpha:1.0; CV MSE:10219.199002422461\n",
"lambda:1.0; alpha:0; CV MSE:10234.595186864828\n",
"lambda:1.0; alpha:0.2; CV MSE:10209.723874570986\n",
"lambda:1.0; alpha:0.4; CV MSE:10200.322057813979\n",
"lambda:1.0; alpha:0.6; CV MSE:10197.62366391859\n",
"lambda:1.0; alpha:0.8; CV MSE:10198.446603910419\n",
"lambda:1.0; alpha:1.0; CV MSE:10201.418058683208\n",
"lambda:10.0; alpha:0; CV MSE:10234.556835669233\n",
"lambda:10.0; alpha:0.2; CV MSE:10233.762240772221\n",
"lambda:10.0; alpha:0.4; CV MSE:10347.53675830116\n",
"lambda:10.0; alpha:0.6; CV MSE:10513.079258829724\n",
"lambda:10.0; alpha:0.8; CV MSE:10723.196252535801\n",
"lambda:10.0; alpha:1.0; CV MSE:10972.073141404908\n",
"lambda:100.0; alpha:0; CV MSE:10234.492985310182\n",
"lambda:100.0; alpha:0.2; CV MSE:12673.274224504257\n",
"lambda:100.0; alpha:0.4; CV MSE:17043.75443270868\n",
"lambda:100.0; alpha:0.6; CV MSE:21672.861483300676\n",
"lambda:100.0; alpha:0.8; CV MSE:26104.562872343544\n",
"lambda:100.0; alpha:1.0; CV MSE:30225.406433131506\n",
"lambda:1000.0; alpha:0; CV MSE:10271.892400756773\n"
]
}
],
"source": [
"# fit the model\n",
"elastic_net.fit()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 279
},
"id": "AwqtUQSIOFGn",
"outputId": "5829462d-fc37-4d4a-c8dd-1480e258fa3c"
},
"outputs": [
{
"data": {
"image/png": "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GDCg+VNPPRX/r3/9a13h9ry8PIKDgw+63o8//rjUEf3Gjx8fFRkZWXAwCf5QYzkUluBNxZDSLp+bYu3KcpJ91krYssJddr8ALJ0I29aw35eZWvF7kn1s0yJfANz18Nr28zdHlOOOO2777Nmzw8eMGRN13333NYqJiSlYunRpWHp6+tyrr766ya+//hqVm5srl19++fpbb711YyAQYNiwYU1/+umn6EaNGuUGBwfvbvl369Yt+cknn8zo2bNn9qeffhp97733Ni4oKJC4uLj8t99+e9moUaPifT6fjh49us5//vOfFc2bN8+9+OKLEzdv3hxUp06d/FGjRi1r1apV7uDBgxNDQ0MDc+fOjejWrdv2119/fWVl/CwswRtTVYTFOK/6bYvfXpAHW1e5XwDcxJ+1wllevwAWj4P8nXsfE1zLTfpN9r8FEJsAUY3Ab38GTM2Ql5fH999/H33SSSdtBZg/f37EjBkz5qWkpOQ++eSTdWNiYgrmzp27YOfOndK1a9eUM844Y+sff/wRkZ6eHpqenj535cqVwe3bt287bNiwTUXrXb16ddA111yTOHHixIUpKSm569at89evX7/goosu2hAZGVnwwAMPrAPo27dv0tChQzdde+21m/7zn//UGT58eMKPP/64BGDNmjUhf/7558KgoMr792b/so2pLvzBUDvReRVHFbI37d/6L1xfM9PZXpT4nCRf9AtA+yElf8kwpgrKycnxpaSkpAJ079592/XXX7/xxx9/jOzQocOOlJSUXIAff/wxeuHChRFfffVVbYBt27b558+fHzZp0qSoc845Z3NQUBCJiYl5xxxzzLZ96584cWKtbt26bSusq379+gXFxTFjxoxa33777RKA4cOHb77//vubFG4bNGhQZmUmd7AEb0zNIeL0H6lVFxofVfw+udlFkn/G3lcDMv6AeV/A9Lfhsv9BnZaVGr4xh6roPfiiIiIidl9uV1V56qmnVgwePHhr0X3GjBkTUxkxRkZGHlKnv8NhXXSNOZKEREB8a0g6AToPg753w6BX4ZKxcMMcuGaq06p/fwhkb/Y6WmPKTb9+/bJefvnl+JycHAGYPXt26NatW329evXa9umnn8bl5+ezfPny4MmTJ0fte2zv3r13TJkyJWrhwoUhAOvWrfMDREVFFWzbtm33866dOnXa8frrr9cGePXVV+O6dOmy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HPPAAw806t+//36j8ZWkLJ3srgHWAeNwRrMbC4wp6wlKo6o/AZv3KT4TKBxm6h2cse8Ly0epYzIQ6850Z4wxh67r5RDdxJmIxuOW8znJ55BcO5knplmHu4pSeIm+8HX55Zdnzpw5M6xJkyY57du3z/H5fAwdOnTTger5/vvvo88444zMhg0b5gPUr1+/AODvv/8OOf7441u1bt069bnnnmuwcOHC8NLq2bRpk3/btm3+0047bTvA5Zdfvmny5Mm7W+pDhgzJBOjRo8eOlStXHtT4ygccix64AUhW1QN+4HJSX1XXuMtrca4cADQGin4zW+mWrSlShohcAVwB0LRp04qN1BhT/QWHORPRfDkc5n8JbQd6FkqQL4i7jr6Li769iNfmvMb1R13vWSwV7UAt7aoiKChIA0VmIMzJyZHS9r/mmmuaXn/99WuHDh2aNWbMmKgHHnig0eGcPywsTN04KCgoKPXc+ypLL/oMnEv1lU6dG1EH9ZVaVUeqahdV7RIfH19BkRljapQO50K9VPjfA1CQ52konep1YkDLAbw9723+zvL2Eb4jRceOHXetWrUqZN68eaEAH330UVzhtsTExJyZM2fWAvjll18iVq1aFQpw8sknb/36669rr1271g/OXPMA27Zt8zdt2jQP4O23397dSz4qKqpg27Zt/n3PXadOnYLo6OiCwvvrb7zxRp1jjjlme3l8rrIk+KXARBG5Q0RuKnyVx8lLsK7w0rv7vt4tXwUkFNmviVtmjDGHx+d3Br/ZvNTziWgAbux8I+H+cB6d8qh1uCtnhffgC19XXXVV44iICH3++eeXn3766Umpqalt6tatu3uimYsuuigzMzPTn5SU1PbZZ5+t16xZs10AXbp02XXzzTevOf7441OSk5NTr7rqqgSAu+66a/X555/fsm3btm3q1Kmzu57BgwdvGTt2bGxhJ7uiMb311lt/33bbbU1at26dOnv27PBHH310dXl8VjnQL4+I3FdcuaqWS7dTEUkExqhqO3f9CWBTkU52cao6QkROA64BTsXpXPecqnYrre4uXbrotGnTyiNMY0xNpwpvnQqb0uG6GZ5NRFPo/QXv8+iUR3mm9zOc2OzESj23iExX1S7lXe+sWbOWpaWlbSzveo90s2bNqpuWlpa4b/kB78EXJnIRiVDVcu31ISIfAr2BuiKyErgPeBQYLSKX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",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png":...
SOLUTION.PDF

Answer To This Question Is Available To Download

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here