(机器学习)线性回归-1

1.线性回归的一般步骤

在这里插入图片描述

2第一个机器学习算法 - 单变量线性回归

线性回归实际上要做的事情就是: 选择合适的参数(θ0, θ1),使得hθ(x)方程,很好的拟合训练集

 pip install sklearn # 首先安装sklearn包

# 使用sklearn实现线性回归
import numpy as np
from sklearn.linear_model import LinearRegression

X = 2 * np.random.rand(100, 1)
y = 4 + 3 * X + np.random.randn(100, 1)

lin_reg = LinearRegression()
# fit方法就是训练模型的方法
lin_reg.fit(X, y)
# intercept 是截距:浮点数 coef是参数numpy数组
print(lin_reg.intercept_, lin_reg.coef_)

输出:

[3.96724622] [[2.99092045]]
[[3.96724622]
 [9.94908711]]

3损失函数(代价函数)

这里损失函数采用小均方误差,目标:MSE最小均方误差
在这里插入图片描述
为了使均方误差最小采用梯度下降法

4梯度下降法

在这里插入图片描述
在这里插入图片描述
即使学习率α是固定不变的,梯度下降也会熟练到一个最低点
在这里插入图片描述
在这里插入图片描述

5线性回归的梯度下降

在这里插入图片描述
在这里插入图片描述

“Batch” Gradient Descent 批梯度下降
批梯度下降:指的是每下降一步,使用所有的训练集来计算梯度值

“Stochastic” Gradient Descent 随机梯度下降
随机梯度下降:指的是每下降一步,使用一条训练集来计算梯度值

“Mini-Batch” Gradient Descent “Mini-Batch”梯度下降
“Mini-Batch”梯度下降:指的是每下降一步,使用一部分的训练集来计算梯度值

"""
线性回归实现梯度下降的批处理(batch_gradient_descent )
"""
import numpy as np

X = 2 * np.random.rand(100, 1)
y = 4 + 3 * X + np.random.randn(100, 1)
X_b = np.c_[np.ones((100, 1)), X]
# print(X_b)补一列1与theta0相乘,X与theta1相乘

learning_rate = 0.1 # 学习率
# 通常在做机器学习的时候,一般不会等到他收敛,因为太浪费时间,所以会设置一个收敛次数
n_iterations = 1000
m = 100 # 一百个样本 均值需要除以100

# 1.初始化theta, w0...wn
theta = np.random.randn(2, 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值