您可能听说过瑞士军刀。如果没有,请看下面的图片。它包含许多刀片和工具。每个人都专门从事一项特定的任务。在某些情况下,不同的刀片可以完成相同的任务,但性能不同。

> Image by PublicDomainPictures from Pixabay

我将机器学习算法视为瑞士军刀。 有许多不同的算法。 某些任务需要使用特定的算法,而某些任务可以使用许多不同的算法来完成。 性能可能会根据任务和数据的特征而变化。

在本文中,我将分享16个技巧,我认为这些技巧将帮助您更好地理解算法。 我的目的不是要详细解释算法如何工作。 我宁愿提供一些有关它们的提示或细节。

一些技巧将更笼统,而不是针对特定算法。 例如,对数损失是与所有分类算法相关的成本函数。

我假设您对算法有基本的了解。 即使您不这样做,也可以选择一些详细信息,以便日后使用。

开始吧。

1.支持向量机(SVM)的C参数

SVM的C参数为每个错误分类的数据点增加了代价。如果c小,则对错误分类的点的惩罚较低,因此以较大数量的错误分类为代价选择了具有较大余量的决策边界。

如果c大,由于高罚分,SVM会尝试最大程度地减少误分类示例的数量,从而导致决策边界的边距较小。对于所有错误分类的示例,惩罚都不相同。它与到决策边界的距离成正比。

2.具有RBF内核的SVM的Gamma参数

具有RBF内核的SVM的Gamma参数控制单个训练点的影响距离。 较低的gamma值表示相似半径较大,这导致将更多点组合在一起。

对于较高的伽玛值,这些点必须彼此非常接近,以便在同一组(或类)中考虑。因此,具有非常大的伽玛值的模型往往会过拟合。

3.是什么使逻辑回归成为线性模型

逻辑回归的基础是逻辑函数,也称为Sigmoid函数,该函数接受任何实数值,并将其映射到0到1之间的一个值。

> (image by author)

它是一个非线性函数,但逻辑回归是一个线性模型。

这是我们从S型函数得到线性方程的方法:

> (image by author)

以双方的自然对数:

> (image by author)

在方程式(1)中,我们可以使用线性方程式z代替x:

> (image by author)

然后,等式(1)变为:

> (image by author)

假设y为正分类的概率。 如果为0.5,则上式的右侧变为0。

我们现在有一个线性方程要求解。

4. PCA中的主要组成部分

PCA(主成分分析)是一种线性降维算法。 PCA的目标是在减少数据集的维数(要素数量)的同时保留尽可能多的信息。

信息量由方差衡量。具有高方差的特征会告诉我们有关数据的更多信息。

主要成分是原始数据集特征的线性组合。

5.随机森林

随机森林是使用称为装袋的方法构建的,其中将每个决策树用作并行估计器。

随机森林的成功很大程度上取决于使用不相关的决策树。 如果我们使用相同或非常相似的树,则总体结果将与单个决策树的结果相差无几。 随机森林通过自举和特征随机性来实现具有不相关的决策树。

> (image by author)

6.梯度增强决策树(GBDT)

GBDT使用提升方法来组合各个决策树。 增强意味着将一系列学习算法串联起来,以从许多顺序连接的弱学习者中获得强大的学习者。

每棵树都适合前一棵树的残差。 与装袋不同,加强不涉及自举采样。 每次添加新树时,它都适合初始数据集的修改版本。

> (image by author)

7.增加随机森林和GBDT中的树的数量

增加随机森林中的树的数量不会导致过度拟合。 在某一点之后,模型的准确性不会因添加更多树而增加,但也不会因添加过多树而受到负面影响。 由于计算原因,您仍然不想添加不必要的树,但是不存在与随机森林中的树数相关联的过拟合风险。

但是,就过度拟合而言,梯度增强决策树中的树数非常关键。添加过多的树会导致过拟合,因此一定要停止添加树,这一点很重要。

8.层次聚类vs K-均值聚类

分层群集不需要预先指定群集数量。必须为k均值算法指定簇数。

它总是生成相同的聚类,而k均值聚类可能会导致不同的聚类,具体取决于质心(聚类中心)的启动方式。

与k均值相比,分层聚类是一种较慢的算法。特别是对于大型数据集,运行需要很长时间。

9. DBSCAN算法的两个关键参数

DBSCAN是一种聚类算法,可与任意形状的聚类一起很好地工作。这也是检测异常值的有效算法。

DBSCAN的两个关键参数:

  • eps:指定邻域的距离。 如果两个点之间的距离小于或等于eps,则将其视为相邻点。
  • minPts:定义集群的最小数据点数。

10. DBSCAN算法中的三种不同类型的点

根据eps和minPts参数,将点分为核心点,边界点或离群值:

· 核心点:如果在其半径为eps的周围区域中至少有minPts个点(包括该点本身),则该点为核心点。

· 边界点:如果一个点可以从核心点到达并且其周围区域内的点数少于minPts,则它是边界点。

· 离群点:如果一个点不是核心点并且无法从任何核心点到达,则该点就是离群点。

> Figure source

在这种情况下,minPts为4。红色点是核心点,因为在其周围区域内至少有4个半径为eps的点。 该区域在图中用圆圈显示。 黄色点是边界点,因为它们可以从核心点到达并且在其邻域内不到4个点。 可到达意味着在核心点的周围。 点B和C在其邻域内(即半径为eps的周围区域)有两个点(包括点本身)。 最后,N是一个离群值,因为它不是核心点,无法从核心点获得。

11.为什么朴素贝叶斯被称为朴素?

朴素贝叶斯算法假设要素彼此独立,要素之间没有关联。 但是,现实生活中并非如此。 特征不相关的这种朴素假设是将该算法称为"天真"的原因。

与复杂算法相比,所有特征都是独立的这一假设使朴素贝叶斯算法非常快。在某些情况下,速度比精度更高。

它适用于高维数据,例如文本分类,电子邮件垃圾邮件检测。

12.什么是对数损失?

对数损失(即交叉熵损失)是机器学习和深度学习模型广泛使用的成本函数。

交叉熵量化了两种概率分布得比较。 在监督学习任务中,我们有一个我们要预测的目标变量。 使用交叉熵比较目标变量的实际分布和我们的预测。 结果是交叉熵损失,也称为对数损失。

13.如何计算对数损失?

对于每个预测,都会计算真实类别的预测概率的负自然对数。所有这些值的总和使我们损失了对数。

这是一个可以更好地解释计算的示例。

我们有4个类别的分类问题。 我们针对特定观测值的模型的预测如下:

> (image by author)

来自此特定观察值(即数据点或行)的对数损失为-log(0.8)= 0.223。

14.为什么我们使用对数损失而不是分类准确性?

在计算对数损失时,我们采用预测概率的自然对数的负数。我们对预测的确定性越高,对数损失就越低(假设预测正确)。

例如,-log(0.9)等于0.10536,-log(0.8)等于0.22314。因此,确定为90%比确定为80%所导致的日志损失更低。

分类,准确性和召回率等传统指标通过比较预测的类别和实际类别来评估性能。

下表显示了在由5个观测值组成的相对较小的集合上两个不同模型的预测。

> (image by author)

两种模型都正确地将5个观测值归为5个。因此,就分类精度而言,这些模型具有相同的性能。但是,概率表明模型1在预测中更为确定。因此,总体上可能会表现更好。

对数损失(即交叉熵损失)提供了对分类模型的更强大和准确的评估。

15. ROC曲线和AUC

ROC曲线通过组合所有阈值处的混淆矩阵来总结性能。 AUC将ROC曲线转化为二进制分类器性能的数字表示。 AUC是ROC曲线下的面积,取值介于0到1之间。AUC表示模型在分离阳性和阴性类别方面的成功程度。

16.精度度和召回率

精度度和召回率指标使分类精度进一步提高,使我们对模型评估有了更具体的了解。 首选哪一个取决于任务和我们要实现的目标。

精度衡量的是当预测为正时我们的模型有多好。精度的重点是积极的预测。它表明有多少积极预测是正确的。

回忆度量了我们的模型在正确预测肯定类别方面的表现。 召回的重点是实际的正面课堂。 它指示模型能够正确预测多少个肯定类别。

结论

我们已经涵盖了一些基本信息以及有关机器学习算法的一些细节。

有些要点与多种算法有关,例如关于对数损失的算法。 这些也很重要,因为评估模型与实施模型同等重要。

所有机器学习算法在某些任务中都是有用且高效的。根据您正在执行的任务,您可以精通其中的一些。

但是,了解每种算法的工作原理很有价值。

【编辑推荐】

  1. 不只有Docker:可选择的容器化工具还有很多……
  2. 效率王者!五大工具软件包助力高效Flutter开发
  3. 软件开发人员应该了解的2021年技术趋势_IT技术周刊第652期
  4. 风险技术的下一个前沿应该在云端
  5. Shell—正则表达式(grep命令、sed工具)

关于机器学习算法的16个技巧相关推荐

  1. 机器学习算法应用中常用技巧-1

    参考:Udacity ML纳米学位 1. 取样 数据量很大的时候,想要先选取少量数据来观察一下细节. indices = [100,200,300]# 把sample原来的序号去掉重新分配 sampl ...

  2. 【活动打卡】【Datawhale】第16期 机器学习算法梳理(AI入门体验) Task02:基于决策树的分类预测

    1.决策树的介绍和应用 1.1 决策树的介绍 决策树是一种常见的分类模型,在金融风控.医疗辅助诊断等诸多行业具有较为广泛的应用.决策树的核心思想是基于树结构对数据进行划分,这种思想是人类处理问题时的本 ...

  3. Google Brain 研究员梁辰:从零开始搜索机器学习算法(附视频、PPT)

    导读:2020 年 5 月 16 日上午,在北京智源人工智能研究院主办的智源论坛第 31 期上,AutoML-Zero 团队核心成员梁辰做了题为<AutoML-Zero: Evolving Ma ...

  4. 机器学习算法一览,应用建议与解决思路

    机器学习算法一览,应用建议与解决思路 作者:寒小阳  时间:2016年1月.  出处:http://blog.csdn.net/han_xiaoyang/article/details/5046933 ...

  5. GPT-3不算机器学习算法创新?2020年AI顶会最佳论文榜单引发激烈争论

    贾浩楠 发自 凹非寺 量子位 报道 | 公众号 QbitAI 2020年的最后一天,来回顾一下今年所有AI顶会的最佳论文吧! 今年,顶会的最佳论文,既有ECCV的"2D变3D"的N ...

  6. 从零实现来理解机器学习算法:书籍推荐及障碍的克服

     从零实现来理解机器学习算法:书籍推荐及障碍的克服 发表于2015-09-10 16:16| 1261次阅读| 来源Machine Learning Mastery| 2 条评论| 作者Jason ...

  7. 机器学习算法中的概率方法

    雷锋网(公众号:雷锋网) AI 科技评论按,本文作者张皓,目前为南京大学计算机系机器学习与数据挖掘所(LAMDA)硕士生,研究方向为计算机视觉和机器学习,特别是视觉识别和深度学习. 个人主页:http ...

  8. 常用机器学习算法汇总(中)

    机器学习入门系列(2)–如何构建一个完整的机器学习项目,第八篇! 该系列的前七篇文章: 机器学习入门系列(2)–如何构建一个完整的机器学习项目(一) 机器学习数据集的获取和测试集的构建方法 特征工程之 ...

  9. 机器算法有哪几种 python_8种顶级Python机器学习算法-你必须学习

    今天,我们将更深入地学习和实现8个顶级Python机器学习算法. 让我们开始Python编程中的机器学习算法之旅. 8 Python机器学习算法 - 你必须学习 以下是Python机器学习的算法: 1 ...

最新文章

  1. 高亮提示、聚焦控件并滚动到浏览器中干好可以查看到该控件的位置
  2. 平台篇-58 HBase 平台实践和应用
  3. 编程开发中最浪费时间和资源的7个错误
  4. PHP中数组的三种排序方法
  5. shell 判断文件是否存在,没有则创建
  6. K-Means原理详解与Java代码实现细节
  7. win10安装python3.7及配置环境变量
  8. CSS布局讲解-float浮动布局使用
  9. jquery 设置背景
  10. 【机器学习数学基础】Mathematics for Machine Learning 梳理+习题答案
  11. 将axf 文件转换为bin文件
  12. mysql client_multi_statements_MySQL中CLIENT_MULTI_STATEMENTS的用法
  13. elasticsearch7.12 agg分组聚合分页同段同句查询
  14. java实现退出重启后保存_JAVA实现关机、重启等
  15. VC下自制一个MusicPlayer:调用activemovie控件
  16. ISTQB基础级认证参考书
  17. PCA(主成分分析)获取BoundingBox代码分析
  18. 【Hardware】【史密斯圆图】
  19. 如何监测一个土豆的一生?
  20. [SCM]软件配置管理

热门文章

  1. mysql中行转列,MySQL 中行转列的方法
  2. Linux函数名加数字,C++ 编译器的函数名修饰规则
  3. Linux学习(二)--远程登录Linux系统
  4. anaconda创建菜单失败
  5. anaconda中查看python的版本
  6. PCA中transform等scikit-learn中系列API用法
  7. GBDT与XGBoost区别与联系 GBDT近些年来更因为被用于构建搜索排序的机器学习模型而引起广泛的关注
  8. SQL begin end 块作用
  9. ArXiv 2020 年 Top10 论文 | 智源社区AI周刊#054
  10. 2021年度值得学习的100个案例榜单