Unit 2 Linear and Logistic Regression and regularization. Running Cell Run [4] issue

Hello Guys,

I’m on unit 2 on Machine learning and I’m trying to Cell Run [4] and I’m having an issue with. It is saying
NameError: name ‘data’ is not defined. How do I fix this? By the way, I’m creating a python script within Machine Learning folder to run the cells.

Hello @leonar29 ,

Use this script:

``````import warnings
warnings.filterwarnings('ignore')
import matplotlib
import matplotlib.pyplot as plt
from matplotlib import cm
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import pandas as pd

# class definition

class LinearRegression(object):

def __init__(self):

self._m = 0
self._b = 0

def m(self):

return self._m

def b(self):

return self._b

def fit(self, X, y): # IMPLEMENTATION ABOVE EQUATIONS TO COMPUTE: m, b

X = np.array(X)
y = np.array(y)
X_ = X.mean()
y_ = y.mean()
num = ((X - X_)*(y - y_)).sum()
den = ((X - X_)**2).sum()
self._m = num/den
self._b = y_ - self._m*X_

def predict(self, x):

x = np.array(x)
return self._m*x + self._b

# Computation of MSE and regression (we use the same formulas as we defined earlier)

def MSE(ax, x, y, model):

error = y - model.predict(x)
MSE = (error**2).sum()/error.size
ax.plot([x, x], [error*0, error])
return MSE

def compute_regression(ax, x, y, model):

error = y - model.predict(x)
MSE = (error**2).sum()/error.size
ax.scatter(x, y, label='distance')
ax.plot([x, x], [y, model.predict(x)], ':')
ax.plot(0, 0, ':', alpha=0.5, label='error')
ax.plot([0, 100], model.predict([0, 100]), color='red', label='regression')
ax.axis([0, 100, 0, 22])
ax.legend()

# model is a object of class
model = LinearRegression()

# remove Unmaned column
data.drop(['Unnamed: 0'], axis=1, inplace=True)

# our data set
yA = (data.iloc[:,0].values).flatten()
x = (data.iloc[:,1].values).flatten()

plt.figure(figsize=(10, 8))
axA = plt.axes(xlim=(0, 100), ylim=(0, 22), autoscale_on=False)
model.fit(x, yA)
compute_regression(axA, x, yA, model)
plt.xlabel("% of max speed of axis 1", fontsize=16)
plt.ylabel("stop distance [deg]", fontsize=16)
plt.title("Linear regression", fontsize=18)

plt.show()
``````

I’m going to update this course to adapt all the codes so that they can be run as scripts.

1 Like

It worked thank you!