线性回归算法梳理(从理论到示例)

1、机器学习的一些概念

  • 有监督、无监督:

    有监督机器学习又被称为“有老师的学习”,所谓的老师是指标签。监督学习就是最常见的分类(注意和聚类区分)问题,通过已有的训练样本(即已知数据及其对应的输出)去训练得到一个最优模型(这个模型属于某个函数的集合,最优表示某个评价准则下是最佳的),再利用这个模型将所有的输入映射为相应的输出,对输出进行简单的判断从而实现分类的目的。也就具有了对未知数据分类的能力。

    无监督机器学习被称为“没有老师的学习”,无监督相比于有监督,输入数据没有被标记,也没有确定的结果。样本数据类别未知,需要根据样本间的相似性对样本集进行分类(聚类,clustering)试图使类内差距最小化,类间差距最大化。通俗点将就是实际应用中,不少情况下无法预先知道样本的标签,也就是说没有训练样本对应的类别,因而只能从原先没有样本标签的样本集开始学习分类器设计。

  • 泛化能力:

    泛化能力(generalization ability)是指一个机器学习算法对于没有见过的样本的识别能力。我们也叫做举一反三的能力,或者叫做学以致用的能力。举个例子,小学生先通过学习十以内的加减乘除,知道什么是四则运算和怎么具体去算数,以后遇到百以内或者千以内的数字也知道怎么去做四则运算。我们只教会他十以内的运算,他自己就能推广到百以内或者千以内的运算,这种能力就是泛化能力。

  • 过拟合与欠拟合(方差和偏差以及各自的解决办法):

    过拟合:小学生学习四则运算,老师教过1+1=2,那么学生只记住了1+1=2,以后做题的时候碰到1+1知道答案是2,但是碰到10+10就不知道怎么计算答案,学生只是死记硬背1+1的答案是2,没理解四则运算的规律,不会推广到10+10,也就是泛化能力非常低,同时我们也把这种现象叫做过拟合(over-fitting)了。
    过拟合是一种分类器会发生的现象,而泛化能力可以理解为对分类器的一种性能的评价,过拟合表现为算法模型的高方差,模型训练时的结果很好,但是在预测时结果不好。
    产生过拟合的原因:模型的复杂度太高,比如:网络太深;过多的变量(特征);训练数据非常少。
    避免过拟合的方法有很多:(1)尽量减少特征的数量、(2)early stopping、(3)数据集扩增、(4)dropout、(5)正则化包括L1、L2、(6)清洗数据。

    欠拟合under-fitting)是和过拟合相对的现象,可以说是模型的复杂度较低,没法很好的学习到数据背后的规律。就好像开普勒在总结天体运行规律之前,他的老师第谷记录了很多的运行数据,但是都没法用数据去解释天体运行的规律并预测,这就是在天体运行数据上,人们一直处于欠拟合的状态,只知道记录过的过去是这样运行的,但是不知道道理是什么。
    欠拟合指的是模型不够复杂,没有很好地捕捉到数据特征,不能够很好地拟合数据,对应模型的高偏差。
    解决欠拟合可以从寻找更好的特征(具有代表性的)和使用更多的特征(增大输入向量的维度)。具体的方法:1、添加更多的特征项(比如上下文特征、位置特征等);2、添加多项式特征(例如将线性模型通过添加二次项或者三次项使模型泛化能力更强);3、减少正则化参数,正则化的目的是用来防止过拟合的,但是现在模型出现了欠拟合,则需要减少正则化参数。

  • 交叉验证:

    一个交叉验证将样本数据集分成两个互补的子集,一个子集用于训练(分类器或模型)称为训练集(training set);另一个子集用于验证(分类器或模型的)分析的有效性称为测试集(testing set)。利用测试集来测试训练得到的分类器或模型,以此作为分类器或模型的性能指标。得到高度预测精确度和低的预测误差,是研究的期望。为了减少交叉验证结果的可变性,对一个样本数据集进行多次不同的划分,得到不同的互补子集,进行多次交叉验证。取多次验证的平均值作为验证结果。
    用交叉验证的目的是为了得到可靠稳定的模型。

2、线性回归的原理

线性回归为何叫线性?实际上,像在处理Google的股票统计数据时,我们使用线性回归是在这堆数据所在的N维空间中找到一条线来描述这些数据的规律,因此才叫线性回归。这个过程称为拟合,这条线成为拟合线。
这条拟合线上的某个数据点或多或少都会偏离实际统计的值。实际统计数据和拟合线对应数据的差叫残差。很明显,残差可以反映模型的预测误差。
但是残差有正有负的,不方便计算。而且实际运用中我们不需要关注残差的正负,因为正负并不能描述误差的大小程度。为了降低计算复杂性,我们使用这个差值的平方进行计算。你可能会想到,差值的平方不是把差值给改了吗,没关系吗?答案是:数据确实变了,但没影响。因为我们真正使用的是残差的绝对值,用它描述误差大小的程度,而对这个绝对值进行平方后有同样的效果,毕竟 y = ∣ x ∣ {y = |x|} y=x y = x 2 {y = x^2} y=x2有同样的单调性。

结合上述平方的想法,为了让预测更加准确,我们应该选择一条线,能够使得线上每个点与实际数据的残差平方的总和最小。这样的线才能叫最佳拟合线。直观理解,线性回归其实就是这么一条直线。

3、线性回归的目标函数、损失函数(代价函数)

线性回归试图学得 f ( x i ) = w ∗ x i + b {f(x_i) = w*x_i + b} f(xi)=wxi+b目标函数)使得 f ( x i ) ≃ y i {f(x_i)\simeq y_i} f(xi)yi,如何确定 w {w} w b {b} b呢?关键在于如何衡量 f ( x ) {f(x)} f(x) y {y} y之间的差别。
均方误差是回归任务中常用的性能度量,因此我们试图让均方误差(损失函数,或代价函数)最小化,即
( w ∗ , b ∗ ) = a r g m i n ( w , b ) ∑ i = 1 m ( f ( x i ) − y i ) 2 = a r g m i n ( w , b ) ∑ i = 1 m ( y i − w x i − b ) 2 {(w^*,b^*)=argmin_{(w,b)} \sum_{i=1}^{m}(f(x_i)-y_i)^2=argmin_{(w,b)} \sum_{i=1}^{m}(y_i-wx_i-b)^2} (w,b)=argmin(w,b)i=1m(f(xi)yi)2=argmin(w,b)i=1m(yiwxi<

要安装Docker并安装插件,可以按照以下步骤进行操作: 1. 首先,安装Docker。可以按照官方文档提供的步骤进行安装,或者使用适合您操作系统的包管理器进行安装。 2. 安装Docker Compose插件。可以使用以下方法安装: 2.1 下载指定版本的docker-compose文件: curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose 2.2 赋予docker-compose文件执行权限: chmod +x /usr/local/bin/docker-compose 2.3 验证安装是否成功: docker-compose --version 3. 在安装插件之前,可以测试端口是否已被占用,以避免编排过程中出错。可以使用以下命令安装netstat并查看端口号是否被占用: yum -y install net-tools netstat -npl | grep 3306 现在,您已经安装了Docker并安装了Docker Compose插件,可以继续进行其他操作,例如上传docker-compose.yml文件到服务器,并在服务器上安装MySQL容器。可以参考Docker的官方文档或其他资源来了解如何使用Docker和Docker Compose进行容器的安装和配置。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Docker安装docker-compose插件](https://blog.youkuaiyun.com/qq_50661854/article/details/124453329)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [Docker安装MySQL docker安装mysql 完整详细教程](https://blog.youkuaiyun.com/qq_40739917/article/details/130891879)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值