您的位置:首页 > 其它

线性回归算法梳理 - 概念,线性回归

2019-03-29 21:41 453 查看

1. 机器学习 & 基本概念

机器学习的核心是“使用算法解析数据,从中学习,然后对世界上的某件事情做出决定或预测”。这意味着,与其显式地编写程序来执行某些任务,不如教计算机如何开发一个算法来完成任务。有三种主要类型的机器学习:监督学习、非监督学习和强化学习,所有这些都有其特定的优点和缺点1
监督学习涉及一组标记数据。计算机可以使用特定的模式来识别每种标记类型的新样本。监督学习的两种主要类型是分类回归
分类中,机器被训练成将一个组划分为特定的类。分类的一个简单例子是电子邮件帐户上的垃圾邮件过滤器。过滤器分析你以前标记为垃圾邮件的电子邮件,并将它们与新邮件进行比较。如果它们匹配一定的百分比,这些新邮件将被标记为垃圾邮件并发送到适当的文件夹。那些比较不相似的电子邮件被归类为正常邮件并发送到你的邮箱。
回归中,机器使用先前的(标记的)数据来预测未来。天气应用是回归的好例子。使用气象事件的历史数据(即平均气温、湿度和降水量),你的手机天气应用程序可以查看当前天气,并在未来的时间内对天气进行预测。

无监督数据是无标签的。由于大多数真实世界的数据都没有标签,这些算法有很大用处。无监督学习分为聚类降维
聚类用于根据属性和行为对象进行分组。这与分类不同,因为这些组不是你提供的。聚类的一个例子是将一个组划分成不同的子组(例如,基于年龄和婚姻状况),然后应用到有针对性的营销方案中。
降维通过找到共同点来减少数据集的变量。大多数大数据可视化使用降维来识别趋势和规则。

强化学习:使用机器的个人历史和经验来做出决定。强化学习的经典应用是玩游戏。与监督和非监督学习不同,强化学习不涉及提供“正确的”答案或输出。相反,它只关注性能。这反映了人类是如何根据积极和消极的结果学习的。很快就学会了不要重复这一动作。同样的道理,一台下棋的电脑可以学会不把它的国王移到对手的棋子可以进入的空间。然后,国际象棋的这一基本教训就可以被扩展和推断出来,直到机器能够打(并最终击败)人类顶级玩家为止。

模型选择与评估

泛化能力 :泛化能力是模型对未知数据的预测能力。大白话来说就是,模型训好了,放到实际场景中去使用,会不会掉链子,还是能达到跟训练时一样的效果。泛化能力的本质就是反映模型有没有对客观世界做真实的刻画,还是发生了过拟合。
常见的度量方法参见:1.泛化能力如何评估?泛化能力的置信度是什么? 2.机器学习入门——泛化能力性能度量

过拟合:由于学习能力过强导致把训练样本本身的“个性”当作潜在样本的“共性”,导致泛化性能下降。
欠拟合:与过拟合相反,由于无法学习到训练样本的共性。
产生原因及解决方法:机器学习+过拟合和欠拟合+方差和偏差

方差、偏差的应用场景?

用于计算模型的好坏。具体是使用error公式。
Error = Bias^2 + Variance+Noise
Bias(偏差): Bias反映的是模型在样本上的输出与真实值之间的误差,即模型本身的精准度,即算法本身的拟合能力
Variance(方差):Variance反映的是模型每一次输出结果与模型输出期望之间的误差,即模型的稳定性。反应预测的波动情况。
Noise(噪声):这就简单了,就不是你想要的真正数据,你可以想象为来破坏你实验的元凶和造成你可能过拟合的原因之一,至于为什么是过拟合的原因,因为模型过度追求Low Bias会导致训练过度,对测试集判断表现优秀,导致噪声点也被拟合进去了

交叉验证:交叉验证需要将数据集分为训练集和验证集(或者称测试集),在训练集上对模型训练参数,在验证集上看训练出的模型的好坏。

线性回归的原理2

线性回归(Linear Regression)是一种通过属性的线性组合来进行预测的线性模型,其目的是找到一条直线或者一个平面或者更高维的超平面,使得预测值与真实值之间的误差最小化。

损失函数,代价函数和目标函数

损失函数(Loss Function)
简述:用来量化预测分类标签的得分与真实标签之间的一致性,算的是一个样本的误差

代价函数(评分函数 Score Function)
简述:原始数据到类别分值的映射,是所有样本误差的平均,也就是损失函数的平均

目标函数(target function)
简述:在代价函数中寻找最小化的损失函数。可理解为也就是代价函数 + 正则化项

总结:
​ 线性回归中的定义了方程组: Xw = y,其中(xi,yi)是给定的,不能修改,但是我们可以基于数据不断的调整W矩阵中每一个参数,使得这个函数得到的结果与训练集中的图像的真实类别一致,即评分函数或称为代价函数在正确的分类的位置上应该得到较高的的得分

优化方法

梯度下降法(Gradient Descent)
简述:梯度下降是一种迭代算法,迭代中寻找使目标函数极小化的x值。此处的f(x)是具有一阶连续偏导数的函数。而在实际应用中,由于负梯度方向是使函数值下降最快的方法,于是我们的目标就是在每次迭代之后,以负梯度更新x的值,从而达到减少函数值的目的。

牛顿法(Newton’s Method)
简述:核心与梯度下降法类似,不同之处在于f(x)具有二阶连续偏导数。每次迭代计算完梯度值后求解目标函数的海赛矩阵的逆矩阵。

拟牛顿法(Quasi-Newton Methods)
简述:核心与牛顿法相似,因为牛顿法需要计算海赛矩阵的逆矩阵较为复杂,此方法则用一个n阶矩阵近似的代替海赛矩阵的计算

具体步骤:组队学习–线性回归算法梳理及机器学习中常见概念

评估指标3

均方误差MSE(Mean Squared Error)
对于简单的线性回归,目标是找到a,b 使 方差尽可能小,最终得到的衡量标准是:

实际上就是 真实值 - 预测值 然后平方之后求和。

均方根误差RMSE(Root Mean Squared Error)
对于MSE的公式有一个问题就是会导致量纲的问题,因为对其做了平方的缘故,会导致数据极大,这里对均方误差进行开根,使量纲相同

平均绝对误差MAE(Mean Absolute Error)
最后这个是另一种思路,用绝对值代替平方的形式,有点类似p1 与 p2 正则化的区别,不过没有平方:

skleam参数详解4

fit_intercept: 布尔型,默认为true
说明:是否对训练数据进行中心化。如果该变量为false,则表明输入的数据已经进行了中心化,在下面的过程里不进行中心化处理;否则,对输入的训练数据进行中心化处理

normalize布尔型,默认为false
说明:是否对数据进行标准化处理

copy_X 布尔型,默认为true
说明:是否对X复制,如果选择false,则直接对原数据进行覆盖。(即经过中心化,标准化后,是否把新数据覆盖到原数据上)

n_jobs 整型, 默认为1
说明:计算时设置的任务个数(number of jobs)。如果选择-1则代表使用所有的CPU。这一参数的对于目标个数>1(n_targets>1)且足够大规模的问题有加速作用。

返回值:
coef_数组型变量, 形状为(n_features,)或(n_targets, n_features)

说明:对于线性回归问题计算得到的feature的系数。如果输入的是多目标问题,则返回一个二维数组(n_targets, n_features);如果是单目标问题,返回一个一维数组 (n_features,)。

intercept_ 数组型变量
说明:线性模型中的独立项。

注:该算法仅仅是scipy.linalg.lstsq经过封装后的估计器。

方法:
decision_function(X) 对训练数据X进行预测
fit(X, y[, n_jobs]) 对训练集X, y进行训练。是对scipy.linalg.lstsq的封装
get_params([deep]) 得到该估计器(estimator)的参数。
predict(X) 使用训练得到的估计器对输入为X的集合进行预测(X可以是测试集,也可以是需要预测的数据)。

score(X, y[,]sample_weight) 返回对于以X为samples,以y为target的预测效果评分。

set_params(**params) 设置估计器的参数

decision_function(X) 和predict(X)都是利用预估器对训练数据X进行预测,其中decision_function(X)包含了对输入数据的类型检查,以及当前对象是否存在coef_属性的检查,是一种“安全的”方法,而predict是对decision_function的调用。

score(X, y[,]sample_weight) 定义为(1-u/v),其中u = ((y_true - y_pred)**2).sum(),而v=((y_true-y_true.mean())**2).mean()

最好的得分为1.0,一般的得分都比1.0低,得分越低代表结果越差。

其中sample_weight为(samples_n,)形状的向量,可以指定对于某些sample的权值,如果觉得某些数据比较重要,可以将其的权值设置的大一些

  1. 这可能是最简单易懂的机器学习入门(小白必读), Link:https://blog.csdn.net/qq_28168421/article/details/81351321, ↩︎

  2. https://blog.csdn.net/pxhdky/article/details/82388964 ↩︎

  3. https://blog.csdn.net/qq_41978536/article/details/88884810 ↩︎

  4. https://blog.csdn.net/qq_29083329/article/details/48653391 ↩︎

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: