7、数据分析--线性回归算法(一)

机器学习的入门算法:线性回归

​ 人通过问题或者经验得到规律,利用的是学习方法,然后就能预测未来的可能发展。

​ 人工智能通过数据得到数据模型,利用的是算法,然后也可以预测未来的发展,其实和人的学习是类似的。

​ 人工智能的数据模型是一种函数的表达式,机器学习通过训练不断的调整,最后得到最好的表达来呈现出最理想的数据模型

基础概念:

​ 我们可以通过样本中的特征去预测样本的结果,多个特征形成的一个数据可以用向量来表示,多个数据可以用矩阵来表示,人工智能要通过数据得到模型,主要的载体就是向量或者矩阵。

机器学习:

​ 有监督学习(包括分类和回归):又叫有标签学习,利用已知类别的样本,训练学习得到一个最优模型,使其达到所要求性能,再利用这个训练所得模型,将所有的输入映射为相应的输出,对输出进行简单的判断,从而实现分类的目的,即可以对未知数据进行分类。比如x1和x2通过某些方式得到y,那么y就是可以进行标记的结果。

​ 无监督学习(包括聚类):又叫没有标签的学习,对于没有标记的样本,学习算法直接对输入数据集进行建模,例如聚类,即“物以类聚,人以群分” 。我们只需要把相似度高的东西放在一起,对于新来的样本,计算相似度后,按照相似程度进行归类就好。

无监督和有监督的区别就在于是否有外标签设置,无监督学习也是一种比较靠后的学习。

有监督中的分类和回归的区别:分类得到的标签是呈离散型的,回归得到的标签是呈连续型的。

离散和连续的区别:是否能把所有结果都列出

数据集分割:训练集、验证集、测试集

用同一个验证集做评估,有可能出现模型对验证集上表现的比较好的情况,要想真正评估

这个最佳模型在将来的样本上的表现,这也就是需要把第三个子集即测试集保留在一边的

原因(小风险)

企业中往往去掉了验证集:因为测试集就是没有被“污染”的数据,综合考虑训练

误差和测试误差,同样能起到模型评估的作用;这样划分数据集的优点是降低工程

实施的时间成本。

用线性回归把数据集表达出来,回归是一种算法,得到的模型是呈连续型的

​ 回归算法是一种有监督算法

​ 回归算法是一种比较常用的机器学习算法,用于构建一个模型来做特征向量到标签的映射。在算法

的学习过程中,试图寻找一个模型,最大程度拟合训练数据。

​ 回归算法在使用时,接收一个n维度特征向量,输出一个连续的数据值

算法流程:

​ 数据通过算法,然后经过调整才得到数据模型,这个调整的过程就是重新进行数据通过算法得到新模型的过程。其中要经过一次次的尝试,一次次的拟合。

​ 经过以上的流程,确定数据模型完善合格之后,就拿来使用,使用的过程也会不断的学习更新数据模型。

函数呈线性:对x求导得到的是一个常数,那么就是一个线性问题,一维特征当中图像为一条直线,多维特征当中图像为一个平面。

迭代优化过程:通过算法的流程,不断学习训练得到最优的数据模型时,函数的图像是最理想的,以后学习还可以继续提高。

回归算法得到的图像一条直线的图像,表示这类数据的一种合理的表达式(数据模型),不一定真实,但很接近,所以能拿来进行预测。

单变量线性回归模型:

​ 对于函数的图像的改变得到最优数据模型,肯定是要换成最好的函数来解才行的,y=kx+b这里通过换k和b就相当于换函数了。

回归是统计学的一个重要概念,其本意是根据之前的数据预测一个准确的输出值。

最小二乘法:目的是让直线到每个样本点的距离都最近,是一种数学优化技术。

​ 一、计算所有样本误差的平均(代价函数)

​ 二、使用最优化方法寻找数据的最佳函数匹配(抽象的)

​ 最小二乘法是抽象的,具体的最优化方法有很多,比如正规方程法、梯度下降法、牛顿法、拟牛顿法等等

代价函数定义: 估计误差的平方和再去求均值,越大,越不合理。越小,越合理。

作用:用于数据模型和数据的性能比较

​ 估计误差:样本点到直线的距离

代价函数的理解:J(θ)中θ为权重值,所有样本点都在图像上的时候代价值为0,这里的θ权重和数据模型的函数要一样。无论原函数怎么变化,都对应着代价函数的一个点,所有原函数凑成代价函数的图像就是一个抛物线图像。所以要找到代价函数最小值那个对应点就能得到最优的原函数,最小值求导为0。

梯度下降定义(属于算法的一种):

​ 梯度下降是一个用来求代价函数最小值的算法,我们将使用梯度下降算法来求出代价函数J(θ0,θ1) 的最小值。

​ 梯度下降背后的思想是:开始时我们随机选择一个参数的组合(θ0,θ1),计算代价函数,然后我们寻找下一个能让代价函数值下降最多的参数组合。

梯度下降原理:

​ θj := θj - aΔθj(这里的 := 是赋值的意思)

​ α是学习率(learning rate),大于0的一个很小经验值,它决定沿着能让代价函数下降的程度有多大。

​ 每一次都同时让所有的参数减去学习速率乘以代价函数的导数,每次调整的跨度取决于a学习率,当某次调整刚好使得a学习率乘以到了最小值,然后得到0,那么θj的赋值就是他本身,此时就得到最优解。

学习率调参:

​ 如果学习率比较大,就容易在某次调整的时候和最优解擦肩而过,甚至一直都无法收敛产生偏差,所以小。

​ 如果学习率太小,梯度下降就会变慢

​ 学习率不好调动的时候就可以进行学习率调参了

​ 参数调整模型的精度就越高,调整不好甚至会出现模型没有精度

参数更新方程(调整完之后就要进行的操作):

​ 当参数不止一个的时候,可以用来当作多维度代入向量,此时多个参数求导数就要用到偏导(保持其中一个参数改变,其他参数不变)。计算偏导就要用到

代价函数Python语言实现代码:

J=(1.0/(2*m))*np.sum(np.square(X.dot(theta)-y))

J = (1.0/(2*m))*(X.dot(theta)-y).T.dot(X.dot(theta)-y)

底层算法:

​ 线性回归的真实运算过程(像执行for循环一样直到出现最合理的模型):

​ 1、随机取权重来设定一个数据模型

​ 2、计算代价函数cost mse 均方差

​ 3、计算梯度下降过程(在代价函数执行后,发现有损失值)

​ (1)计算θ的导数

​ (2)更新θ的值

以上涉及的最优化方法的各种调节,都是线性回归模型中算法的特点

数据越多不一定能让数据模型越好,但是数据越多差异又越大,才能通过调整得到更好的数据模型

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

T o r

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值