Datawhale-初级机器学习算法梳理-任务一
机器学习的一些概念
有监督:通俗而言,训练数据带有标签信息称为有监督学习,分类和回归是有监督学习的代表。
无监督:训练数据中没有带有标签信息(lable),成为无监督学习,常见如聚类。
泛化能力:泛化能力就是指模型对于未知数据的预测能力。常用的办法就是通过测试误差来评价泛化能力
过拟合:一味的追求提高对训练数据的预测能力,所选的模型复杂度往往比真的模型更高,这就是过拟合。过拟合往往对已知的数据预测效果比较好,但是对于未知的数据(例如测试数据)表现效果很差。
欠拟合:就是说训练的模型对训练的数据拟合不是很好。
第一张图代表欠拟合,第三张代表过拟合。
偏差:偏差主要是用于衡量模型拟合训练数据的能力。偏差越小,拟合的能力越高。
方差:方差衡量的是模型的泛化能力。方差越小,模型的泛化能力越高。
误差:预测输出和样本真实输出之间的差异称为“误差”。
如何解决欠拟合:
添加其他特征项。组合、泛化、相关性、上下文特征、平台特征等特征是特征添加的重要手段,有时候特征项不够会导致模型欠拟合。
添加多项式特征。例如将线性模型添加二次项或三次项使模型泛化能力更强。例如,FM模型、FFM模型,其实就是线性模型,增加了二阶多项式,保证了模型一定的拟合程度。
可以增加模型的复杂程度。
减小正则化系数。正则化的目的是用来防止过拟合的,但是现在模型出现了欠拟合,则需要减少正则化参数。
如何解决过拟合:
重新清洗数据,数据不纯会导致过拟合,此类情况需要重新清洗数据。
增加训练样本数量。
降低模型复杂程度。
增大正则项系数。
采用dropout方法,dropout方法,通俗的讲就是在训练的时候让神经元以一定的概率不工作。
early stoping。
减少迭代次数。
增大学习率。
添加噪声数据。
树结构中,可以对树进行剪枝。
线性回归的原理:线性回归就是想在给出的数据所在的N维空间中找到一条“线”来描述这个数据的规律。在给出新的一个数据的时候,这个模型能够根据之前的训练数据来进行预测输出。
线性回归损失函数、代价函数、目标函数
损失函数
在这个式子之中,Y代表真实值,f(x)为算法的输出值。
代价函数:
使用矩阵表达为
目标函数
目标函数就是经验风险最小化,假如结构风险最小化,后面的J(f)代表的是模型的复杂度。
优化方法(梯度下降法、牛顿法、拟牛顿法等)
梯度下降法:
是一个一阶最优化算法,通常也称为最速下降法。 要使用梯度下降法找到一个函数的局部极小值,必须向函数上当前点对应梯度(或者是近似梯度)的反方向的规定步长距离点进行迭代搜索。
梯度在目标函数中就是导数,对数据进行求导,选择梯度最大的方向进行减小。但是梯度下降容易陷入到局部最优解中。
牛顿法:牛顿法的基本是一种是用导数的算法,它每一步的迭代方向都是沿着当前点函数值下降的方向。
拟牛顿法:
线性回归的评估指标
均方误差MSE:
根均方误差:
平均绝对误差MAE:
R方:
sklearn参数详解
class sklearn.linear_model.LinearRegression(fit_intercept=True, normalize=False, copy_X=True, n_jobs=None)
Fit_intercept:是一个bool值,默认是True。是否计算截距
Normzlize:bool值,默认为False,如果前面的fit_intercept选项为False,则忽视这个选项。如果这个选项为True则会对结果减去均值除L2范数。
copy_x:bool值,默认为True。如果选项为True,则复制x,否则会在原有数据上进行修改
n_jobs: 默认为1 计算的时候使用的核数。