Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
""" Method to read the csv file using Pandas and later use this data for linear regression. """
""" Better run with Python 3+. """
# Library to read csv file effectively
import pandas
import matplotlib.pyplot as plt
import numpy as np
# Method to read the csv file
def load_data(file_name):
column_names = ['area', 'price']
# To read columns
io = pandas.read_csv(file_name,names=column_names, header=None)
x_val = (io.values[1:, 0])
y_val = (io.values[1:, 1])
size_array = len(y_val)
for i in range(size_array):
x_val[i] = float(x_val[i])
y_val[i] = float(y_val[i])
return x_val, y_val
# Call the method for a specific file
x_raw, y_raw = load_data('area-price.csv')
x_raw = x_raw.astype(np.float)
y_raw = y_raw.astype(np.float)
y = y_raw
# Modeling
w, b = 0.1, 0.1
num_epoch = 100
converge_rate = np.zeros([num_epoch , 1], dtype=float)
learning_rate = 1e-3
for e in range(num_epoch):
# Calculate the gradient of the loss function with respect to arguments (model parameters) manually.
y_predicted = w * x_raw + b
grad_w, grad_b = (y_predicted - y).dot(x_raw), (y_predicted - y).sum()
# Update parameters.
w, b = w - learning_rate * grad_w, b - learning_rate * grad_b
converge_rate[e] = np.mean(np.square(y_predicted-y))
print(w, b)
print(f"predicted function f(x) = x * {w} + {b}" )
calculatedprice = (10 * w) + b
print(f"price of plot with area 10 sqmtr = 10 * {w} + {b} = {calculatedprice}")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment