数据拟合

深度学习基础模型算法原理及编程实现--04.改进神经网络的方法

≡放荡痞女 提交于 2019-12-03 18:45:43
文章列表 1. 深度学习基础模型算法原理及编程实现–01.感知机 . 2. 深度学习基础模型算法原理及编程实现–02.线性单元 . 3. 深度学习基础模型算法原理及编程实现–03.全链接 . 4. 深度学习基础模型算法原理及编程实现–04.改进神经网络的方法 . 5. 深度学习基础模型算法原理及编程实现–05.卷积神经网络 . 6. 深度学习基础模型算法原理及编程实现–06.循环神经网络 . 9. 深度学习基础模型算法原理及编程实现–09.自编码网络 . 9. 深度学习基础模型算法原理及编程实现–10.优化方法:从梯度下降到NAdam . … 深度学习基础模型算法原理及编程实现–04.改进神经网络的方法 4.1 基本激活函数认知 4.1.1 sigmoid 5.1.2 tf.tanh 5.1.3 ReLU 5.1.4 Leaky ReLU 5.1.5 Softplus 5.2 增加隐藏层数 5.3 提升学习速率 5.3.1 梯度下降改为随机梯度下降 5.3.2 输出层激活函数与目标函数的选择 5.3.2.1 激活函数为sigmoid函数、损失函数为交叉项 5.3.2.2 激活函数为线性函数且损失函数为平方损失函数 5.3.2.3 损失函数为交叉项的好处 5.3.2.4 柔性最大值(softmax函数) 5.3.2.5 Softmax-loss 5.3.3

模型评估、过拟合欠拟合以及超参数调优方法

人走茶凉 提交于 2019-12-03 17:31:23
机器学习入门系列(2)–如何构建一个完整的机器学习项目,第十一篇! 该系列的前 10 篇文章: 机器学习入门系列(2)–如何构建一个完整的机器学习项目(一) 机器学习数据集的获取和测试集的构建方法 特征工程之数据预处理(上) 特征工程之数据预处理(下) 特征工程之特征缩放&特征编码 特征工程(完) 常用机器学习算法汇总比较(上) 常用机器学习算法汇总比较(中) 常用机器学习算法汇总比较(完) 简单聊聊模型的性能评估标准 上一篇文章 介绍了性能评估标准,但如何进行模型评估呢,如何对数据集进行划分出训练集、验证集和测试集呢?如何应对可能的过拟合和欠拟合问题,还有超参数的调优,如何更好更快找到最优的参数呢? 本文会一一介绍上述的问题和解决方法。 2. 模型评估的方法 2.1 泛化能力 泛化能力 :指模型对 未知的、新鲜的数据的预测能力 ,通常是根据 测试误差 来衡量模型的泛化能力,测试误差越小,模型能力越强; 统计理论表明:如果训练集和测试集中的样本都是独立同分布产生的,则有 模型的训练误差的期望等于模型的测试误差的期望 。 机器学习的“没有免费的午餐定理”表明:在所有可能的数据生成分布上,没有一个机器学习算法总是比其他的要好。 该结论仅在考虑所有可能的数据分布时才成立。 现实中特定任务的数据分布往往满足某类假设,从而可以设计在这类分布上效果更好的学习算法。

L0、L1、L2范数正则化

微笑、不失礼 提交于 2019-12-03 02:27:54
一、范数的概念 向量范数是定义了向量的类似于长度的性质,满足正定,齐次,三角不等式的关系就称作范数。 一般分为L0、L1、L2与L_infinity范数。 二、范数正则化背景 1. 监督机器学习问题无非就是“minimizeyour error while regularizing your parameters”,也就是在规则化参数的同时最小化误差。最小化误差是为了让我们的模型拟合我们的训练数据,而规则化参数是防止我们的模型过分拟合我们的训练数据。 2 .  因为参数太多,会导致我们的模型复杂度上升,容易过拟合,也就是我们的训练误差会很小。但训练误差小并不是我们的最终目标,我们的目标是希望模型的测试误差小,也就是能准确的预测新的样本。所以,我们需要保证模型“简单”的基础上最小化训练误差,这样得到的参数才具有好的泛化性能(也就是测试误差也小),而模型“简单”就是通过规则函数来实现的。另外,规则项的使用还可以约束我们的模型的特性 。 这样就可以将人对这个模型的先验知识融入到模型的学习当中,强行地让学习到的模型具有人想要的特性,例如稀疏、低秩、平滑等等。要知道,有时候人的先验是非常重要的。前人的经验会让你少走很多弯路,这就是为什么我们平时学习最好找个大牛带带的原因。一句点拨可以为我们拨开眼前乌云,还我们一片晴空万里,醍醐灌顶。对机器学习也是一样,如果被我们人稍微点拨一下

吴恩达:深度学习作业2相关

匿名 (未验证) 提交于 2019-12-03 00:39:02
深度学习小知识点:( 欠拟合与过拟合 ) 1.出现欠拟合应该怎样解决:(欠拟合就是模型没能很好的捕捉到数据的特征,不能很好地拟合数据) 欠拟合的情况如图所示: a.增加特征项,出现欠拟合的原因一般是特征项不够造成的,只有增加更多的特征,网络才能学习到数据中更多的信息,一般的可以描述特征的包括“上下文特征”,“位置特征”等一些其它的特征。在日常的工作中,可以从其它的任务那得到灵感,模仿其它的工作中所用的特征项,然后把这个特征项用在自己的任务中,说不定会有提升。 b.添加多项式特征。例如上图,此时拟合的函数是一个一次的函数,我们可以添加一个二次项和一个三次项,使拟合曲线变为下图所示的这样,提升模型的泛化能力。 c.减少正则化参数。因为一般防止过拟合就会增加正则化参数。所以现在欠拟合就应该减少正则化参数。 2.出现过拟合应该怎样解决:(过拟合是指模型为了把训练集中的数据每个都划分正确,学习到了噪声数据的特征。) 过拟合的情况如图所示: a.清洗数据。造成过拟合的原因有可能是训练数据中混入了噪声数据,所以对数据进行重新清洗,可能会缓解过拟合的现象。 b.增大数据的训练量。过拟合很可能是由于数据数量过少造成的,难以学到有用的特征,反而学到了噪声数据的特征,所以可能增大数据量。 c.采用正则化。正则化方法包括L0,L1,L2正则化,L2正则化又被称为权值衰减(weight_decay)

中国财政收入时间序列分析(二)

匿名 (未验证) 提交于 2019-12-03 00:34:01
这是我的第一篇博客,就献给了时间序列大作业了。为什么第一篇是二呢,因为对于时间序列分析,有传统模型的做法也有降低时间属性重要度,通过特征工程构造其他特征的做法。而我在项目中负责其他方法,正好把论文写完了,那么我就先写这个吧。此文中各模型不涉及推导,只有相关的code和整个流程,具体各模型推导以及实现我将在以后的博客更新。 可能第一篇写的格式还很奇怪。。。markdown也没怎么练习过,emmm不过没关系至少我开始写了hhh 如果code不好或者有bug或者有其他的想法也麻烦写一下哦,感谢! 数据可在 http://data.stats.gov.cn/easyquery.htm?cn=A01 找到 Prophet Regression Tree Gradient Boosting Decision Tree Random Forest XGBoost BP Neural Network LSTM 对于传统模型,也即我们常说的,AR,MA,ARMA,ARIMA,GARCH等模型,目前在数据挖掘算法盛行的时代,优缺点逐渐显露。传统模型的确在过去的时间里不断发展,完善形成了一种处理时间序列较好并且解释力较足的方法。并且在只有一元时间序列特征的情况下拟合效果与预测效果能达到较好,在多元时间序列特征的情况下能建立VAR

偏差与方差,欠拟合与过拟合的关系

匿名 (未验证) 提交于 2019-12-03 00:12:02
偏差指预测输出与真实标记的差别,记为: 偏差度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力。 方差指一个特定训练集训练得到的函数,与所有训练集得到平均函数的差的平方再取期望,记为: 方差度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响。方差表示所有模型构建的预测函数,与真实函数的差别有多大。 偏差与方差的区别可用如下的 靶标图 来说明: 低偏差低方差时,是我们所追求的效果,此时预测值正中靶心(最接近真实值),且比较集中(方差小)。 低偏差高方差时,预测值基本落在真实值周围,但很分散,此时方差较大,说明模型的稳定性不够好。 高偏差低方差时,预测值与真实值有较大距离,但此时值很集中,方差小;模型的稳定性较好,但预测准确率不高,处于“一如既往地预测不准”的状态。 高偏差高方差时,是我们最不想看到的结果,此时模型不仅预测不准确,而且还不稳定,每次预测的值都差别比较大 来源:博客园 作者: Dino_L 链接:https://www.cnblogs.com/dinol/p/11605696.html

过拟合和欠拟合

匿名 (未验证) 提交于 2019-12-03 00:11:01
过拟合和欠拟合 过拟合(overfitting) 产生原因 解决办法 欠拟合(underfitting) 产生原因 解决办法 判定 过拟合(overfitting) 过拟合指的是模型在训练集上表现的很好,但是在训练集外的数据集上(e.g.,交叉验证集和测试集)表现一般,也就是说模型对对新数据的预测表现一般,泛化(generalization)能力较差。 产生原因 a.训练数据过少或存在噪音,无法对整个数据的分布进行估计 b.特征维度过多,求解模型中没有那么多的特征值得重用 c.在对模型进行过度训练(overtraining)时,常常会导致模型的过拟合 解决办法 数据清洗、增加训练集、early stopping、数据集扩增(Data augmentation)、正则化(Regularization)、Dropout(神经网络) 欠拟合(underfitting) 过拟合指的是模型没有很好地捕捉到数据特征,导致拟合的函数在训练集上表现效果差,预测的准确率低。 产生原因 解决办法 1.添加其他特征项(e.g.,“组合”、“泛化”、“相关性”),模型出现欠拟合的时候是因为特征项不够导致的,可以添加其他特征项来很好地解决。 2.添加多项式特征,例如将线性模型通过添加二次项或者三次项使模型泛化能力更强 3.减少正则化参数,正则化的目的是用来防止过拟合的,当模型出现了欠拟合

scikit-learn Adaboost类库使用小结

匿名 (未验证) 提交于 2019-12-02 23:49:02
    在 集成学习之Adaboost算法原理小结 中,我们对Adaboost的算法原理做了一个总结。这里我们就从实用的角度对scikit-learn中Adaboost类库的使用做一个小结,重点对调参的注意事项做一个总结。     scikit-learn中Adaboost类库比较直接,就是AdaBoostClassifier和AdaBoostRegressor两个,从名字就可以看出AdaBoostClassifier用于分类,AdaBoostRegressor用于回归。     AdaBoostClassifier使用了两种Adaboost分类算法的实现,SAMME和SAMME.R。而AdaBoostRegressor则使用了我们原理篇里讲到的Adaboost回归算法的实现,即Adaboost.R2。     当我们对Adaboost调参时,主要要对两部分内容进行调参,第一部分是对我们的Adaboost的框架进行调参, 第二部分是对我们选择的弱分类器进行调参。两者相辅相成。下面就对Adaboost的两个类:AdaBoostClassifier和AdaBoostRegressor从这两部分做一个介绍。     我们首先来看看AdaBoostClassifier和AdaBoostRegressor框架参数。两者大部分框架参数相同,下面我们一起讨论这些参数,两个类如果有不同点我们会指出

拟合R语言中的多项式回归

匿名 (未验证) 提交于 2019-12-02 23:43:01
版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 ( Creative Commons ) 如下所示: 但购买和出售,我们可能要考虑一些其他相关信息,就像当:购买显著数量很可能是我们可以要求并获得折扣,或购买更多更重要的是我们可能会推高价格。 这可能导致像这样的情况,其中总成本不再是数量的线性函数: 通过多项式回归,我们可以将n阶模型拟合到数据上,并尝试对非线性关系进行建模。 如何拟合多项式回归 这是我们模拟观测数据的图。模拟的数据点是蓝色的点,而红色的线是信号(信号是一个技术术语,通常用于表示我们感兴趣检测的总体趋势)。 让我们用R来拟合。当拟合多项式时,您可以使用 通过使用该confint()函数,我们可以获得我们模型参数的置信区间。 模型参数的置信区间: confint(model,level = 0.95) 拟合vs残差图 总的来说,这个模型似乎很适合,因为R的平方为0.8。正如我们所预期的那样,一阶和三阶项的系数在统计上显着。 预测值和置信区间: 将线添加到现有图中: 我们可以看到,我们的模型在拟合数据方面做得不错。 文章来源: https://blog.csdn.net/qq_19600291/article/details/79852448

R语言实现拟合神经网络; 神经网络包

匿名 (未验证) 提交于 2019-12-02 23:42:01
版权声明:本文为博主原创文章,未经博主允许不得转载。咨询链接:http://y0.cn/teradat 博文链接: https://blog.csdn.net/qq_19600291/article/details/90485459 神经网络一直是迷人的机器学习模型之一,不仅因为花哨的反向传播算法,而且还因为它们的复杂性(考虑到许多隐藏层的深度学习)和受大脑启发的结构。 神经网络并不总是流行,部分原因是它们在某些情况下仍然存在计算成本高昂,部分原因是与支持向量机(SVM)等简单方法相比,它们似乎没有产生更好的结果。然而,神经网络再一次引起了人们的注意并变得流行起来。 neuralnet 包装拟合一个简单的神经网络,并将线性模型作为比较。 数据集 我们将在MASS包中使用Boston数据集。 波士顿数据集是波士顿郊区房屋价值数据的集合。我们的目标是使用所有其他可用的连续变量来预测自住房屋(medv)的中值。 首先,我们需要检查是否缺少数据点,否则我们需要修复数据集。 apply(data,2,function(x)sum(is.na(x))) 没有遗漏数据,很好。我们通过随机将数据分成火车和测试集来进行,然后我们拟合线性回归模型并在测试集上进行测试。请注意,我正在使用该 gml() 函数而不是 lm() 这将在以后交叉验证线性模型时变得有用。 index < - sample(1