算法梳理进阶任务二:代码实现简单线性回归(单变量)

代码实现简单线性回归(单变量)
1、算术法:直接通过公式求解截距和斜率
import time
start = time.time()
import numpy as np
def fitslr(x,y):
n=len(x)
dinominator=0
numerator=0
for i in range (0,n):
numerator +=(x[i]-np.mean(x))(y[i]-np.mean(y))
dinominator+= (x[i]-np.mean(x))**2
print(“numerator”,numerator)
print(“dinominator”,dinominator)
b1=numerator/float(dinominator)
b0=np.mean(y)/float(np.mean(x))
print(b1)
print(b0)
return b0,b1
def predict(x,b0,b1):
return b0+x
b1

x=[1,3,2,1,3]
y=[14,24,18,17,27]
b0,b1=fitslr(x,y)

x_text=6
y_text=predict(6,b0,b1)
print(“x_text”,y_text)
end = time.time()
print (end-start)

2:向量法:调用线性回归模型
import time
start = time.time()
from sklearn.linear_model import LinearRegression
import numpy as np
x = np.array([1,3,2,1,3])
y = np.array([14,24,18,17,27])
model = LinearRegression()
model.fit(x.reshape(len(x),1), y)
print(model.coef_)
print(model.intercept_)
end = time.time()

print (end-start)

3、性能比较
运算结果在本例中两个方法都一样;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值