机器学习—02线性回归

本文介绍了机器学习中的线性回归,从单变量线性回归出发,详细讲解了损失函数—均方误差,以及梯度下降算法的不同形式,包括批梯度下降、随机梯度下降和Mini-Batch梯度下降,并讨论了学习率衰减和多变量线性回归的应用。
摘要由CSDN通过智能技术生成

一、单变量线性回归

最简单的开始:线性方程
在这里插入图片描述
简单来说:
线性:穿过很多点的直线,利用这个算法生成的模型一定是一条直线
回归:求解方程的步骤,让数据回归(聚集)到一个特定的模型中,如果特定的模型指的是线性,那么就是让所有点都靠近这条线

线性回归实例:

房屋面积(x) 房屋总价(y)
40 78
96 200
135 330

在这里插入图片描述

m:训练集数据的总量
x:输入变量
y:输出变量,也叫做标签
(x,y):一个训练样本
( xi , yi ):第i个训练样本

属于有监督的学习:可以预测到一个确定的结果

我们知道机器学习的基本步骤是:
在这里插入图片描述
对于一元线性回归(单变量线性回归)来说,学习算法的模型公式为: y = ax + b
(a:斜率 b:截距)
我们换一种写法:hθ(x) = θ0 + θ1x1
线性回归实际上要做的事是:选择合适的参数(θ0,θ1),使得模型hθ(x)能很好的拟合我们的数据

在这里插入图片描述
如图,图3才是最接近训练集的拟合,因此也就是要求出这条直线的系数θ0,θ1

用法:

  • 导包:
    from sklearn.linear_model import LinearRegression
  • 导数据:把数据x 和y 准备好
  • 建模:
    实例化一个线性回归类
    lin_reg = LinearRegression()
    通过fit()方法训练模型得到hθ(x)
    lin_reg.fit(x,y)
    建模完成后,模型的参数就已经存到了lin_reg里,可以通过 lin_reg.intercept_lin_reg.coef_ 查看系数
  • 进行预测
    把需要做预测的输入数据x_predict准备好,进行预测
    lin_reg.predict(x_predict)

练习:利用Sklearn做线性回归的预测

import numpy as np
from sklearn.linear_model import LinearRegression

#准备好数据 x ,y
X = 2 * np.random.rand(100, 1) #生成100行1列的0~2的均匀分布的数
y = 4 + 3 * X + np.random.randn(100, 1) # 加了误差,100行1列,服从正态分布

lin_reg = LinearRegression() # 实例化对象

# 训练模型:fit()方法
lin_reg.fit(X, y)

# intercept 是截距 coef是参数
print(lin_reg.intercept_, lin_reg.coef_)

# 预测
X_new = np.array([[0], [2]]) #x的值必须是2维数组
print(lin_reg.predict(X_new))

运行结果:
在这里插入图片描述

"""
[3, 5, 7, 9, 11, 13, 15, 17, 19, 21, ?]
求第11个数
"""

import numpy as np
from sklearn.linear_model import LinearRegression

x = np.array([1,2,3,4,5,6,7,8,9,10]).reshape(-1,1) # x是二维数组
y = np.array([3,5,7,9,11,13,15,17,19,21])

lin_reg = LinearRegression()      # 实例化对象 
lin_reg.fit(x,y)                  # 进行学习
print(lin_reg.predict([[11]]))    # 预测第11个值,二维数组
print(lin_reg.intercept_, lin_reg.coef_) # 斜率和截距

运行结果:
在这里插入图片描述
numpy模块:用来存储和处理大型矩阵,用于数组计算

import numpy as np

#创建一维数组:
arr 
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值