Bagging,bagging

Bagging,bagging

如何快速提高机器学习模型的性能?

谢邀!当被要求改进现有的预测模型的性能时,人们往往会陷入困境。通常的情况是,会尝试不同的算法来检查结果,但多数人不会想到要改进模型,本文会为大家介绍一些增强现有模型的方法。1.添加更多数据大量的数据总是有用的。它有助于我们捕获数据所有的差异。有时我们可能没有选择获得额外的训练数据。当你参加数据科学竞赛时举例。

但是,在处理客户项目时,如果需要,你可以要求更多数据。问题是什么时候我们应该要求更多的数据?我们无法量化更多的数据。这取决于你正在处理的问题以及你正在实施的算法,例如,在处理时间序列数据时,我们应该查找至少一年的数据。无论何时你处理神经网络算法,建议你获取更多的训练数据,否则模型将不会推广。2.特征工程1.添加新功能可降低模型方差的偏差。

新功能可以帮助算法以更有效的方式解释模型的差异。当我们做假设生成时,应该有足够的时间花费在模型所需的功能上。然后,我们应该从现有数据集创建这些功能。比如,我们想要预测ATM的每日提款量,在这种情况下,我们可以认为人们可能倾向于在月初提取更高的金额。可能的原因可能是人们得到他们的薪水,或者他们在月初会支付各种月度支出。

所以我们将为此创建一个新功能。2.从事欺诈检测模式工作时,我们可以把收入与贷款的比例作为一个新的特征。3.特征选择这是预测建模最重要的方面之一。选择模型中的重要特征并且仅在具有重要和显著特征的情况下再次构建模型才是明智的。即假设我们有100个变量。将会有变量驱动模型的大部分方差。如果我们只是在p值的基础上选择特征的数量,那么我们仍然可能超过50个变量。

在这种情况下,你应该寻找其他措施,如个体变量对模型的贡献。如果模型的90%方差仅由15个变量解释,那么只需在最终模型中选择这15个变量。4.缺失值和离群值处理离群值可能会让你的模型变得糟糕,以至于有时对这些离群值进行处理变得至关重要。因为通常可能有一些数据是错误的或不合逻辑的。即一旦我正在研究航空业数据,在数据中有一些年龄为100 的乘客,甚至有一些在年龄一栏填的是2000,这说明是有些用户故意误输了他们的年龄,有些是将他们的年龄一栏误输成出生年月。

同样,应该解决缺失值问题。缺失的价值观治疗可以在提高绩效方面发挥作用。即使用时间序列数据,我们可以用它们的整体平均值或按月平均值来代替值。明智的月份将是最合乎逻辑的,缺失值和离群值处理是建模过程的一部分。你可能会想,这些如何能够帮助提高性能。这两个问题都可以通过几种方式解决。你必须确定哪个是给定任务的最佳方式。

正确的方法才会导致性能的改进。5.集成模型集成建模是改进建模结果的流行技术之一。 Bagging(Bootstrap Aggregating)和Boosting是可以使用的一些方法。这些方法通常是更复杂的黑盒子方法。我们还可以集合几个弱模型,并通过对所有这些模型进行简单平均或加权平均来产生更好的结果。

集成建模背后的想法是,一个模型可以更好地捕获数据的变化,另一个模型可以更好地捕获趋势。在这些类型的情况下,集成方法的效果很好。6.使用适合的机器学习算法选择正确的算法是构建更好模型的关键步骤。如果使用holtzwinter模型进行预测,但是它对于实时预测表现不佳,就转向神经网络模型。有些算法比其他算法更适合于某些数据集。

识别正确类型的算法是一个迭代思想的过程。你、需要不断尝试不同的算法,以最终登陆到高效的算法。7.自动特征生成特征的质量对最终的机器学习算法的准确性至关重要。没有机器学习方法可以很好地选择功能不佳的产品。但是当我们使用深度学习算法时,你不需要特征工程。由于深度学习不需要提供最佳的功能,因此它可以自行学习。

如果你正在进行图像分类或手写分类,那么深度学习是适合的。使用深度学习,图像处理任务已经取得了惊人的成果,在下图可以看到每个图层中如何自动创建功能。你还可以观察每层之后有多少功能正在变得更好。8.数据分配和参数调整有效地探索数据总是更好。数据分布可能意味着转型,数据可能跟随高斯函数或其他函数族,在这种情况下,我们可以应用一点变换的算法来得到更好的预测结果。

我们可以做的另一件事是微调算法的参数。即当我们构建随机森林分类器时,我们可以调整要构建的树的数量,选择用于拆分的变量的数量等。同样,当我们构建深度学习算法时,我们可以指定我们需要多少层,需要多少个神经元。在每一层中,我们需要哪种激活功能。如果我们在算法中使用合适的参数类型,调整参数就可以提高模型性能。

结论:提高机器学习模型的性能很困难。以上提高性能的方法都是基于经验。当我们使用集成方法时,需要对算法有全面的了解。诸如随机森林、Xgboost、SVM和神经网络的算法被用于高性能。不知道该算法如何能很好地适应训练数据,是获得更高性能的障碍。所以我们应该始终知道如何根据不同的任务调整算法。当我们进行参数调整时,应该考虑过度拟合。

机器学习初学者需要了解的基本算法有哪些?

你应该使用哪种机器学习算法?这在很大程度上依赖于可用数据的性质和数量以及每一个特定用例中你的训练目标。不要使用最复杂的算法,除非其结果值得付出昂贵的开销和资源。这里给出了一些最常见的算法,按使用简单程度排序。1. 决策树(Decision Tree):在进行逐步应答过程中,典型的决策树分析会使用分层变量或决策节点,例如,可将一个给定用户分类成信用可靠或不可靠。

优点:擅长对人、地点、事物的一系列不同特征、品质、特性进行评估场景举例:基于规则的信用评估、赛马结果预测2. 支持向量机(Support Vector Machine):基于超平面(hyperplane),支持向量机可以对数据群进行分类。优点:支持向量机擅长在变量 X 与其它变量之间进行二元分类操作,无论其关系是否是线性的场景举例:新闻分类、手写识别。

3. 回归(Regression):回归可以勾画出因变量与一个或多个因变量之间的状态关系。在这个例子中,将垃圾邮件和非垃圾邮件进行了区分。优点:回归可用于识别变量之间的连续关系,即便这个关系不是非常明显场景举例:路面交通流量分析、邮件过滤4. 朴素贝叶斯分类(Naive Bayes Classification):朴素贝叶斯分类器用于计算可能条件的分支概率。

每个独立的特征都是「朴素」或条件独立的,因此它们不会影响别的对象。例如,在一个装有共 5 个黄色和红色小球的罐子里,连续拿到两个黄色小球的概率是多少?从图中最上方分支可见,前后抓取两个黄色小球的概率为 1/10。朴素贝叶斯分类器可以计算多个特征的联合条件概率。优点:对于在小数据集上有显著特征的相关对象,朴素贝叶斯方法可对其进行快速分类场景举例:情感分析、消费者分类5. 隐马尔可夫模型(Hidden Markov model):显马尔可夫过程是完全确定性的——一个给定的状态经常会伴随另一个状态。

交通信号灯就是一个例子。相反,隐马尔可夫模型通过分析可见数据来计算隐藏状态的发生。随后,借助隐藏状态分析,隐马尔可夫模型可以估计可能的未来观察模式。在本例中,高或低气压的概率(这是隐藏状态)可用于预测晴天、雨天、多云天的概率。优点:容许数据的变化性,适用于识别(recognition)和预测操作场景举例:面部表情分析、气象预测6. 随机森林(Random forest):随机森林算法通过使用多个带有随机选取的数据子集的树(tree)改善了决策树的精确性。

本例在基因表达层面上考察了大量与乳腺癌复发相关的基因,并计算出复发风险。优点:随机森林方法被证明对大规模数据集和存在大量且有时不相关特征的项(item)来说很有用场景举例:用户流失分析、风险评估7. 循环神经网络(Recurrent neural network):在任意神经网络中,每个神经元都通过 1 个或多个隐藏层来将很多输入转换成单个输出。

循环神经网络(RNN)会将值进一步逐层传递,让逐层学习成为可能。换句话说,RNN 存在某种形式的记忆,允许先前的输出去影响后面的输入。优点:循环神经网络在存在大量有序信息时具有预测能力场景举例:图像分类与字幕添加、政治情感分析8. 长短期记忆(Long short-term memory,LSTM)与门控循环单元神经网络(gated recurrent unit nerual network):早期的 RNN 形式是会存在损耗的。

尽管这些早期循环神经网络只允许留存少量的早期信息,新近的长短期记忆(LSTM)与门控循环单元(GRU)神经网络都有长期与短期的记忆。换句话说,这些新近的 RNN 拥有更好的控制记忆的能力,允许保留早先的值或是当有必要处理很多系列步骤时重置这些值,这避免了「梯度衰减」或逐层传递的值的最终 degradation。

LSTM 与 GRU 网络使得我们可以使用被称为「门(gate)」的记忆模块或结构来控制记忆,这种门可以在合适的时候传递或重置值。优点:长短期记忆和门控循环单元神经网络具备与其它循环神经网络一样的优点,但因为它们有更好的记忆能力,所以更常被使用场景举例:自然语言处理、翻译9. 卷积神经网络(convolutional neural network):卷积是指来自后续层的权重的融合,可用于标记输出层。

  • 姓名:
  • 专业:
  • 层次:
  • 电话:
  • 微信:
  • 备注:
文章标题:Bagging,bagging
本文地址:http://www.55jiaoyu.com/show-728773.html
本文由合作方发布,不代表展全思梦立场,转载联系作者并注明出处:展全思梦

热门文档

推荐文档