学习内容
- 机器学习的一些概念
有监督、无监督、泛化能力、过拟合欠拟合(方差和偏差以及各自解决办法)、交叉验证
监督学习
是指学生从老师那里获取知识、信息,**老师提供对错指示、告知最终答案。**学生在学习过程中借助老师的提示获得经验、技能,最后对没有学习过的问题也可以做出正确解答。在监督学习中,我们只需要给定输入样本集,机器就可以从中推演出指定目标变量的可能结果。机器只需从输入数据中预测合适的模型,并从中计算出目标变量的结果。要实现的目标是“对于输入数据X能预测变量Y”
e.g. KNN(k-nearest neighbors algorithm), Decision tree, Naive Bayesian
无监督学习
无监督学习是指在没有老师的情况下,学生自学的过程。学生在学习的过程中,自己对知识进行归纳、总结。无监督学习中,类似分类和回归中的目标变量事先并不存在。要回答的问题是“从数据X中能发现什么”。
e.g. K-means聚类, 谱聚类,PCA主成分分析
泛化能力
是指机器学习算法对新鲜样本的适应能力。 学习的目的是学到隐含在数据背后的规律,对具有同一规律的学习集以外的数据,经过训练的网络也能给出合适的输出,该能力称为泛化能力。
过拟合欠拟合
过拟合则是模型能够非常好的拟合训练数据,但在新的数据集上的表现非常糟糕,说明模型过于复杂,泛化能力差。
欠拟合是指模型拟合程度不高,数据距离拟合曲线较远,或指模型没有很好地捕捉到数据特征,不能够很好地拟合数据。
方差和偏差
想象你开着一架黑鹰直升机,得到命令攻击地面上一只敌军部队,于是你连打数十梭子,结果有一下几种情况:
1.子弹基本上都打在队伍经过的一棵树上了,连在那棵树旁边等兔子的人都毫发无损,这就是方差小(子弹打得很集中),偏差大(跟目的相距甚远)。
2.子弹打在了树上,石头上,树旁边等兔子的人身上,花花草草也都中弹,但是敌军安然无恙,这就是方差大(子弹到处都是),偏差大(同1)。
3.子弹打死了一部分敌军,但是也打偏了些打到花花草草了,这就是方差大(子弹不集中),偏差小(已经在目标周围了)。
4.子弹一颗没浪费,每一颗都打死一个敌军,跟抗战剧里的八路军一样,这就是方差小(子弹全部都集中在一个位置),偏差小(子弹集中的位置正是它应该射向的位置)。方差,是形容数据分散程度的,算是“无监督的”,客观的指标,偏差,形容数据跟我们期望的中心差得有多远,算是“有监督的”,有人的知识参与的指标。
导致偏差和方差的原因
偏差通常是由于我们对学习算法做了导致偏差和方差的原因偏差通常是由于我们对学习算法做了错误的假设,或者模型的复杂度不够;
比如真实模型是一个二次函数,而我们假设模型为一次函数,这就会导致偏差的增大(欠拟合);
由偏差引起的误差通常在训练误差上就能体现,或者说训练误差主要是由偏差造成的
方差通常是由于模型的复杂度相对于训练集过高导致的;
比如真实模型是一个简单的二次函数,而我们假设模型是一个高次函数,这就会导致方差的增大(过拟合);
由方差引起的误差通常体现在测试误差相对训练误差的增量上。
交叉验证
在机器学习里,通常来说我们不能将全部用于数据训练模型,否则我们将没有数据集对该模型进行验证,从而评估我们的模型的预测效果。
-
线性回归的原理
在有监督(有标签的)学习中,我们会有一份数据集,由一列观测(y,即因变量)和多列特征(X,即自变量)组成 。线性回归的目的就是找到和样本拟合程度最佳的线性模型(or式子,方程 whatever),在寻找过程中需要确定系数β和干扰项ε(干扰项的作用是捕获除了X之外所有影响y的其他因素)。 -
线性回归损失函数、代价函数、目标函数
在算法的评价环节,需要评价一个算法的性能,则需要使用性能度量/指标,根据不同的算法有不同的性能度量/指标,比如代价函数、损失函数。而在算法的优化环节,我们是希望能够找到最好的模型,也就是使目标函数优化为最佳的参数所对应的模型。举个例子,线性回归中的性能度量/指标是损失函数(平方损失函数),而这个平方损失函数就是可以直接作为目标函数来优化。 -
优化方法(梯度下降法、牛顿法、拟牛顿法等)
在神经网络(非凸问题)的训练中,大多数都采用梯度下降法一族方法。而在训练逻辑回归(凸问题)等模型时,可采用梯度下降和拟牛顿方法。
5、线性回归的评估指标
1-对模型的解释程度
2-方差分析,这里注意F统计量和Significance-F
3- t统计量和对应的p-value
4-补充残差
线性回归的公式里面存在随机扰动项,一般而言,对于我们想要知道是否是有效估计,这个时候我们要用到方程里面的随机扰动项。线性回归方程里任意一组的自变量的取值的残差符合随机扰动项符合均值为0,同方差性的正态分布,也是相互独立的。为了检验是否存在有效性,我们要借助两个工具:一个是回归残差和自变量之间的散点图,以及回归残差和因变量预测值的散点图。
作者:pan7777
链接:https://zhuanlan.zhihu.com/p/39892366
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
6、sklearn参数详解
LinearRegression(fit_intercept=True,normalize=False,copy_X=True,n_jobs=1)
fit_intercept:是否有截据,如果没有则直线过原点。
normalize:是否将数据归一化。
copy_X:默认为True,当为True时,X会被copied,否则X将会被覆写。