Datawhale学习计划:| 算法梳理——任务1

Datawhale学习计划:| 算法梳理——任务1

1、监督学习
分类:
主要有两类:监督学习(Supervised learning)和非监督学习(Unsupervised learning)。
定义:
是否有监督(supervised),就看输入数据是否有标签(label)。输入数据有标签,则为有监督学习,没标签则为无监督学习。
例子:
例1、房价预测

在这里插入图片描述
这是监督学习的很好的例子,监督学习是指我们给算法一个数据集,并且给定正确答案。也就是说也即这个房子卖出的实际价格。算法的目的就是给出更多的正确答案,例如对待售房子,假如想要给待售的房子估价,这也称为回归问题(Regression : Predict continuous value output——price)。之所以称为回归问题,是因为其预测连续的输出值,即价格。
例2、肿瘤预测
在这里插入图片描述
当未对肿瘤的好坏实现进行标签时为无监督学习,设计分类器时候,可用于处理未被分类标记的样本集;
2,泛化能力(generalization ability)
定义:我理解的泛化能力从一个数据集合中学习到的模型可以泛化与同一个事物的另一数据集合中
分类:

在这里插入图片描述
1、欠拟合
定义:首先欠拟合就是模型没有很好地捕捉到数据特征,不能够很好地拟合数据
解决方案:
a,添加其它特征项,例如组合泛化和相关性等方式
b,增加多项式特征
c,减少正则话参数
2、过拟合
定义:过拟合就是模型把数据学习的太彻底,把噪音的特征对结果的影响放大,这样就会导致在后期测试的时候不能够很好地识别数据模型泛化能力太差。
解决方案
a,重新清洗数据,导致过拟合的一个原因也有可能是数据不纯导致的,如果出现了过拟合就需要我们重新清洗数据。
b,增大数据的训练量,还有一个原因就是我们用于训练的数据量太小导致的,训练数据占总数据的比例过小。
c,采用正则化方法。正则化方法包括L0正则、L1正则和L2正则,而正则一般是在目标函数之后加上对于的范数。但是在机器学习中一般使用L2正则,所以评价一个模型的好坏就要引入奥卡姆剃刀原则(Occam’s Razor) ,这个原则是说能用简单的方法完成任务的就尽量不要复杂,在这里就是能用简单的模型去拟合就不用复杂的能把噪声都刻画出来的方法。

## 3、交叉验证

使用场景**:
***当数据量过小时为提高数据的使用效率以及模型特征的准确度一般以一万条为界,大于一万条时我们一般随机的把数据分成三份,一份为训练集(Training Set),一份为验证集(Validation Set),最后一份为测试集(Test Set)。用训练集来训练模型,用验证集来评估模型预测的好坏和选择模型及其对应的参数。把最终得到的模型再用于测试集,最终决定使用哪个模型以及对应参数

*## 常见的交叉验证类型

1、k折交叉验证(最为广泛*)*
主要过程:
1.随机的将数据集等分成k份子集。
2.用k-1个子集做训练模型,剩下的一个子集做测试模型。
3.重复的进行第二步,共k次。
4.计算每个模型的平均泛化误差,选择泛化误差最小的模型。在这里插入图片描述

2、留出法(最为简单直接)
主要内容:
把数据集分为互斥的训练集合和数据集合,一般要有足够的样本量,以保证训练模型的效果,在划分时注意保证数据分布的一致性,为了减弱随机划分的影响,重复划分训练集和测试集,对得到的多次结果取平均作为最后的结果,一般训练集和测试集的比例在8:2或者7:3。在这里插入图片描述
代码示例:

from sklearn.model_selection import train_test_split
#使用train_test_split划分训练集和测试集
train_X , test_X, train_Y ,test_Y = train_test_split(
        X, Y, test_size=0.2,random_state=0)
''' 
X为原始数据的自变量,Y为原始数据因变量;
train_X,test_X是将X按照8:2划分所得;
train_Y,test_Y是将X按照8:2划分所得;
test_size是划分比例;
random_state设置是否使用随机数
'''

回归内容梳理

原理; 通常在说线性回归之前,总是要搞清楚“分类”和“回归”这两个概念,这也是机器学习中很重要的概念。简单来讲,“分类”和“回归”都是预测目标值的过程,但是“分类”预测的是离散型变量,而“回归”预测的是连续型变量。
f(x)=w1x1 +w2x2+…+wnxn+b即成为线性模型,其中的b称为偏置项。此时,如果令w0为1,令x0为b,对该式进行整合,则一般用向量形式表示如下:
f(x) = wTx
线性回归理解几何上

公式推导参考

线性回归损失函数,代价函数,目标函数

主要参考知乎整理
概念:
损失函数:计算的是一个单个样本的误差
代价函数:是整个训练集上总体误差的平均
目标函数:代价函数 + 正则化项

例子::损失函数和代价函数是同一个东西,目标函数是一个与他们相关但更广的概念,对于目标函数来说在有约束条件下的最小化就是损失函数(loss function)。

在这里插入图片描述
上面三个图的曲线函数依次为f1(x),f2(x),f3(x),
我们想用这三个函数分别来拟合真实值Y。
我们给定x,这三个函数都会输出一个f(X),这个输出的f(X)与真实值Y可能是相同的,也可能是不同的,为了表示我们拟合的好坏,我们就用一个函数来度量拟合的程度。这个函数就称为损失函数(loss function),或者叫代价函数在这里插入图片描述
损失函数越小,就代表模型拟合的越好。
那是不是我们的目标就只是让loss function越小越好呢?还不是。这个时候还有一个概念叫风险函数(risk function)。风险函数是损失函数的期望,这是由于我们输入输出的(X,Y)遵循一个联合分布,但是这个联合分布是未知的,所以无法计算。
但是我们是有历史数据的,就是我们的训练集,f(X)关于训练集的平均损失称作经验风险(empiricalrisk),所以我们的目标就是最小化经验风险。
在这里插入图片描述
到这里完了吗?还没有。
如果到这一步就完了的话,那我们看上面的图,那肯定是最右面的f3(x)的经验风险函数最小了,因为它对历史的数据拟合的最好嘛。但是我们从图上来看它肯定不是最好的,因为它过度学习历史数据,导致它在真正预测时效果会很不好,这种情况称为过拟合(over-fitting)。为什么会造成这种结果?大白话说就是它的函数太复杂了,都有四次方了,这就引出了下面的概念,我们不仅要让经验风险最小化,还要让结构风险最小化。
这个时候就定义了一个函数J(f),这个函数专门用来度量模型的复杂度,在机器学习中也叫正则化(regularization)。常用的有L1, L2范数。到这一步我们就可以说我们最终的优化函数是:
在这里插入图片描述

常见的几种优化方法

1、梯度下降法(易于实现)
有助理解
c++代码实现
2、牛顿法
**优点:**二阶收敛,收敛速度快;
**缺点:**牛顿法是一种迭代算法,每一步都需要求解目标函数的Hessian矩阵的逆矩阵,计算比较复杂。
特征:1牛顿法收敛速度为二阶,对于正定二次函数一步迭代即达最优解。
2牛顿法是局部收敛的,当初始点选择不当时,往往导致不收敛
3牛顿法不是下降算法,当二阶海塞矩阵非正定时,不能保证产生方向是下降方向。
4二阶海塞矩阵必须可逆,否则算法进行困难。
5对函数要求苛刻(二阶连续可微,海塞矩阵可逆),而且运算量大。
牛顿法的深入理解
c++代码的实现
3、拟牛顿法
基本思想
拟牛顿法的本质思想是改善牛顿法每次需要求解复杂的Hessian矩阵的逆矩阵的缺陷,它使用正定矩阵来近似Hessian矩阵的逆,从而简化了运算的复杂度。
拟牛顿法和最速下降法一样只要求每一步迭代时知道目标函数的梯度。
通过测量梯度的变化,构造一个目标函数的模型使之足以产生超线性收敛性
。这类方法大大优于最速下降法,尤其对于困难的问题。另外,因为拟牛顿法不需要二阶导数的信息,所以有时比牛顿法更为有效。如今,优化软件中包含了大量的拟牛顿算法用来解决无约束,约束,和大规模的优化问题。
方法推导

线性回归的评估标准

评估指标详解
RMSE(Root Mean Square Error)均方根误差

衡量观测值与真实值之间的偏差。

常用来作为机器学习模型预测结果衡量的标准。
在这里插入图片描述
MSE(Mean Square Error)均方误差

MSE是真实值与预测值的差值的平方然后求和平均。

通过平方的形式便于求导,所以常被用作线性回归的损失函数。
在这里插入图片描述
SD(Standard Deviation)标准差

方差的算术平均根。

用于衡量一组数值的离散程度。
在这里插入图片描述

sklerrn参数详解

参数解释

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值