0% found this document useful (0 votes)
5 views1 page

Locally_weighted (2)

The document contains a Python script that implements locally weighted linear regression using NumPy and Matplotlib. It loads data from a CSV file containing total bill and tip amounts, applies the regression model, and visualizes the results with a scatter plot and a regression line. Key functions include calculating weights based on distance and predicting values using local weights.

Uploaded by

Sushant K
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views1 page

Locally_weighted (2)

The document contains a Python script that implements locally weighted linear regression using NumPy and Matplotlib. It loads data from a CSV file containing total bill and tip amounts, applies the regression model, and visualizes the results with a scatter plot and a regression line. Key functions include calculating weights based on distance and predicting values using local weights.

Uploaded by

Sushant K
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 1

from numpy import *

import operator
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np1
import numpy as np

def kernel(point, xmat, k):


m,n = np1.shape(xmat)
weights = np1.mat(np1.eye((m)))
for j in range(m):
diff = point - X[j]
weights[j,j] = np.exp(diff*diff.T/(-2.0*k**2))
return weights

def localWeight(point, xmat, ymat, k):


wei = kernel(point,xmat,k)
W = (X.T*(wei*X)).I*(X.T*(wei*ymat.T))
return W

def localWeightRegression(xmat, ymat, k):


m,n = np1.shape(xmat)
ypred = np1.zeros(m)
for i in range(m):
ypred[i] = xmat[i]*localWeight(xmat[i],xmat,ymat,k)
return ypred

# load data points


data = pd.read_csv('Locally_weighted.csv')
bill = np1.array(data.total_bill)
tip = np1.array(data.tip)

#preparing and add 1 in bill


mbill = np1.mat(bill)
mtip = np1.mat(tip)
m= np1.shape(mbill)[1]
one = np1.mat(np1.ones(m))
X = np1.hstack((one.T,mbill.T))

#set k here
ypred = localWeightRegression(X,mtip,2)
SortIndex = X[:,1].argsort(0)
xsort = X[SortIndex][:,0]

fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.scatter(bill,tip, color='green')
ax.plot(xsort[:,1],ypred[SortIndex], color = 'red', linewidth=5)
plt.xlabel('Total bill')
plt.ylabel('Tip')
plt.show();

You might also like