I tried implementing my own linear regression algorithm using csv module. I know about pandas but I prefer to use csv module. However, the straight line is not visible. Here’s my code:
from matplotlib import pyplot
import csv
m = 0
b = 0
f = open("h.csv")
reader = list(csv.reader(f))[1::]
xList = [float(i[0]) for i in reader]
yList = [float(j[1]) for j in reader]
def gradient():
global m
global b
global reader
for i in range(len(reader)):
x = float(reader[i][0])
y = float(reader[i][1])
guess = m * x + b
error = y - guess
m += (-2 * x * error) * 0.00001
b += (-2 * error) * 0.00001
for i in range(10000):
if i % 1000 == 0:
print(m, b)
gradient()
pyplot.scatter(xList, yList, color = "green")
pyplot.plot(xList, [m * float(i[0]) + b for i in reader], color = "red")
print(m, b)
f.close()
I tried increasing the learning rate, decreasing it, but issue persists. Here’s the output.
3