Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

I am new to Python and I need help formatting the python script below so that it will work. I think its just a matter

I am new to Python and I need help formatting the python script below so that it will work. I think its just a matter of indenting where necessary but Im not sure where to do that. I imagine you will have to attach an image of the final formatted code so that I can replicate. Posting the code as test might remove the indents. BIG THANKS!

#START SCRIPT

# Standalone simple linear regression example

from math import sqrt

# Calculate root mean squared error

def rmse_metric(actual, predicted):

sum_error = 0.0

for i in range(len(actual)):

prediction_error = predicted[i] - actual[i]

sum_error += (prediction_error ** 2)

mean_error = sum_error / float(len(actual))

return sqrt(mean_error)

# Evaluate regression algorithm on training dataset

def evaluate_algorithm(dataset, algorithm):

test_set = list()

for row in dataset:

row_copy = list(row)

row_copy[-1] = None

test_set.append(row_copy)

predicted = algorithm(dataset, test_set)

print(predicted)

actual = [row[-1] for row in dataset]

rmse = rmse_metric(actual, predicted)

return rmse

# Calculate the mean value of a list of numbers

def mean(values):

return sum(values) / float(len(values))

# Calculate covariance between x and y

def covariance(x, mean_x, y, mean_y):

covar = 0.0

for i in range(len(x)):

covar += (x[i] - mean_x) * (y[i] - mean_y)

return covar

# Calculate the variance of a list of numbers

def variance(values, mean):

return sum([(x-mean)**2 for x in values])

# Calculate coefficients

def coefficients(dataset):

#x = [row[0] for row in dataset] #y = [row[1] for row in dataset]

x_mean, y_mean = mean(x), mean(y)

b1 = covariance(x, x_mean, y, y_mean) / variance(x, x_mean)

b0 = y_mean - b1 * x_mean

return [b0, b1]

# Simple linear regression algorithm

def simple_linear_regression(train, test):

predictions = list()

b0, b1 = coefficients(train)

for row in test:

yhat = b0 + b1 * row[0]

predictions.append(yhat)

return predictions

# Test simple linear regression

x = pd.Series([1,2,3,4,4,5,6,6,7,8,9,9,10,10]) y = pd.Series([23, 29,49,64,74,87,96,97,109,119,149,145,154,166])

dataset = [x, y] #dataset = [[1, 1], [2, 3], [4, 3], [3, 2], [5, 5]]

rmse = evaluate_algorithm(dataset, simple_linear_regression)

print('RMSE: %.3f' % (rmse))

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Students also viewed these Databases questions