import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0.,10.,0.2)
m = len(x)
x0 = np.ones(m)
input_data = np.vstack([x0,x]).T
target_data = 2*x+5+np.random.randn(m)
loop_max = 1000
epsilon = 1e-3
np.random.seed(0)
theta = np.random.randn(2)
alpha = 0.001
error = np.zeros(2)
count = 0
finish = 0
while count < loop_max:
count+=1
sum_w = np.zeros(2)
for i in range(m):
for j in range(2):
sum_w[j] += (target_data[i]-theta.dot(input_data[i,:]))*(-input_data[i,j])
theta = theta - (alpha*sum_w)
if np.linalg.norm(theta - error) < epsilon:
finish = 1
break
else:
error = theta
print('loop count = %d'%count,'\t:',theta)
print('loop count = %d'%count,'\tw:',theta)
plt.figure()
plt.plot(x,theta[1]*x+theta[0],color='b')
plt.scatter(x,target_data,color='r')
plt.show()
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import sklearn
from sklearn.linear_model import LinearRegression
from sklearn import datasets
boston_dataset = datasets.load_boston()
# print(boston_dataset)
data = pd.DataFrame(boston_dataset.data)
# print(data)
data.columns=boston_dataset.feature_names
data['price']=boston_dataset.target
x = data.loc[:,'RM'].values
y = data.loc[:,'price'].values
# print(x)
x = np.array(x).reshape(1,-1).T
y = np.array(y).reshape(1,-1).T
l = LinearRegression()
l.fit(x,y)
plt.scatter(x,y,s=10,color='r')
plt.plot(x,l.predict(x),color='b')
plt.show()