×
Samples Blogs Make Payment About Us Reviews 4.9/5 Order Now

Python Program to Implement Model Fitting Assignment Solution

June 26, 2024
Dr. Nicole
Dr. Nicole
🇬🇧 United Kingdom
Python
Dr. Nicole, an accomplished professional with 6 years of experience, obtained her Ph.D. from Princeton University. Having completed over 400 Python assignments, she brings a wealth of expertise and insight to the table. With a focus on clarity and precision, Dr. Nicole is committed to providing comprehensive support to students seeking assistance with their Python projects.
Key Topics
  • Instructions
    • Objective
  • Requirements and Specifications
Tip of the day
Use Python libraries effectively by importing only what you need. For example, if you're working with data, using libraries like pandas and numpy can save time and simplify complex tasks like data manipulation and analysis.
News
In 2024, the Biden-Harris Administration has expanded high-dosage tutoring and extended learning programs to boost academic achievement, helping programming students and others recover from pandemic-related setbacks. These initiatives are funded by federal resources aimed at improving math and literacy skills​

Instructions

Objective

Write a python program to implement model fitting.

Requirements and Specifications

program-to-implement-model-fitting-in-python

Source Code

!pip install otter-grader # Initialize Otter import otter grader = otter.Notebook("lab8.ipynb") # Lab 8: Fitting Models to Data In this lab, you will practice using a numerical optimization package `cvxpy` to compute solutions to optimization problems. The example we will use is a linear fit and a quadratic fit. import pandas as pd import numpy as np %matplotlib inline import matplotlib.pyplot as plt import seaborn as sns ## Objectives for Lab 8: Models and fitting models to data is a common task in data science. In this lab, you will practice fitting models to data. The models you will fit are: * Linear fit * Normal distribution ## Boston Housing Dataset from sklearn.datasets import load_boston boston_dataset = load_boston() print(boston_dataset['DESCR']) housing = pd.DataFrame(boston_dataset['data'], columns=boston_dataset['feature_names']) housing['MEDV'] = boston_dataset['target'] housing.head() fig, ax = plt.subplots(figsize=(10, 7)) sns.scatterplot(x='LSTAT', y='MEDV', data=housing) plt.show() The model for the relationship between the response variable MEDV ($y$) and predictor variables LSTAT ($u$) and RM ($v$) is that $$ y_i = \beta_0 + \beta_1 u_i + \epsilon_i, $$ where $\epsilon_i$ is random noise. In order to fit the linear model to data, we minimize the sum of squared errors of all observations, $i=1,2,\dots,n$. $$\begin{aligned} &\min_{\beta} \sum_{i=1}^n (y_i - \beta_0 + \beta_1 u_i )^2 = \min_{\beta} \sum_{i=1}^n (y_i - x_i^T \beta)^2 = \min_{\beta} \|y - X \beta\|_2^2 \end{aligned}$$ where $\beta = (\beta_0,\beta_1)^T$, and $x_i^T = (1, u_i)$. Therefore, $y = (y_1, y_2, \dots, y_n)^T$ and $i$-th row of $X$ is $x_i^T$. ## Question 1: Constructing Data Variables Define $y$ and $X$ from `housing` data. y = housing['MEDV'] X1 = housing['LSTAT'].to_frame() X1.insert(0, 'intercept', np.ones((len(y),1))) #X.insert(0, 'intercept', X1) grader.check("q1") ## Installing CVXPY First, install `cvxpy` package by running the following bash command: !pip install cvxpy ## Question 2: Fitting Linear Model to Data Read this example of how cvxpy problem is setup and solved: https://www.cvxpy.org/examples/basic/least_squares.html The usage of cvxpy parallels our conceptual understanding of components in an optimization problem: * `beta` are the variables $\beta$ * `loss` is sum of squared errors * `prob` minimizes the loss by choosing $\beta$ Make sure to extract the data array of data frames (or series) by using `values`: e.g., `X.values` beta2 import cvxpy as cp beta2 = cp.Variable(2) loss2 = cp.sum_squares(y.values-X1.values @ beta2) prob2 = cp.Problem(cp.Minimize(loss2)) prob2.solve() yhat2 = X1.values@beta2.value grader.check("q2") ## Question 3: Visualizing resulting Linear Fit Visualize fitted model by plotting `LSTAT` by `MEDV`. fig, ax = plt.subplots(figsize=(10, 7)) sns.scatterplot(x='LSTAT', y='MEDV', data=housing, ax = ax, label='Data') sns.scatterplot(housing['LSTAT'], yhat2, label='Fit', ax = ax) plt.legend() plt.show() ## Question 4: Fitting Quadratic Model to Data Add a column of squared `LSTAT` values to `X`. The new model is, Then, fit a quadratic model to data. X2 = X1.copy() X2.insert(2, 'LSTAT^2', X2['LSTAT']**2) beta4 = cp.Variable(3) loss4 = cp.sum_squares(y.values-X2.values @ beta4) prob4 = cp.Problem(cp.Minimize(loss4)) prob4.solve() yhat4 = X2.values@beta4.value grader.check("q4a") Visualize quadratic fit: fig, ax = plt.subplots(figsize=(10, 7)) sns.scatterplot(x='LSTAT', y='MEDV', data=housing, ax = ax, label='Data') sns.scatterplot(housing['LSTAT'], yhat4, label='Fit', ax = ax) plt.legend() plt.show() --- To double-check your work, the cell below will rerun all of the autograder tests. grader.check_all() ## Submission Make sure you have run all cells in your notebook in order before running the cell below, so that all images/graphs appear in the output. The cell below will generate a zip file for you to submit. **Please save before exporting!** # Save your notebook first, then run this cell to export your submission. grader.export()

Similar Samples

Explore our curated samples at ProgrammingHomeworkHelp.com to witness our expertise in tackling diverse programming assignments. From introductory exercises to advanced projects, our examples demonstrate clear problem-solving approaches in various languages. These samples are designed to inspire and guide you in mastering programming concepts effectively.