机器学习之线性回归+代码

本文介绍了线性回归的基本概念,包括监督学习、假设函数、损失函数和优化目标。通过吴恩达教授的理论知识,作者手写了最小二乘法和梯度下降的代码实现,证明了两种算法的等效性,并强调了学习率α的选择及特征缩放的重要性。文章未深入理论分析,但推荐观看吴恩达教授的相关视频。

定义 : 线性回归属于监督学习,目的是在包含正确答案的数据集通过预测找到某种映射关系 x→y。

线性回归的一般形式
在这里插入图片描述
对于一般形式解释一下:
1.假设函数可以简单理解为拟合曲线的大致形状,如一次函数y = θx+b 二次y=θ1x^2+θ2x+θ3,然后我们通过minJ(θ)去找最合适θ值(比如梯度下降,正规方程)
2.损失函数顾名思义,就是将每个特征的预测值-实际值的和全部加起来,1/2m
的意义是尽量的减少平均误差。
3.我们的目的是尽可能的使J(θ)变小,所以我们最合适θ值
个人认为,求解最小J(θ)的方法中,重点关注梯度下降,正规方程简单了解即可。
理论知识储备:吴恩达教授的视频给出了非常容易理解且详细的理论知识(推导+详细讲解),受益匪浅。下面的代码是将视频中的知识代码化。

手撕代码系列:
最小二乘法

# -*-coding:utf-8-*-
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import leastsq
# 采样
x = np.array([1, 2, 3,4, 5, 6])
y = np.array([15, 19, 22, 27, 30, 31])
# 画出散点图
plt.scatter(x,y)

# 假设函数
def func_least(p,x):
    k,b =p
    y = k*x+b
    return y
# 代价函数
def cost_func(p,x,y):
    return func_least(p,x)-y
# 假设参数值
p = [100,50]
# 最小二乘法
pa = leastsq(cost_func,p,args=(x,y))
k,b =pa[0]

x= np.linspace(1,6,1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值