如何为回归问题选择机器学习算法?
到处都在谈论——机器学习!
那么,“机器学习(ML)”是什么意思呢?
让我们考虑一个实际的例子。如果你能够想象第一次完成一个任务的结果的可能性——比如说学习开车。也就是说,你会如何对自己进行反馈?带有不确定性吗?
另一方面,如果你在练习了几年后再次完成同样的任务,你会如何对自己进行鼓励?可能你的心态从不确定性参数转变为更确定的参数。那么,你是如何在这项任务中获得这样的专业知识的呢?
很可能,你通过调整一些参数来积累了经验,从而提高了自己的表现。对吧?这就是。
根据经验(E)在某些任务(T)上进行学习的计算机程序能够得出最佳的执行结果(P)。
同样地,机器通过一些复杂的数学概念进行学习,它们的所有数据都以0和1的形式存在。因此,我们不对程序编写逻辑,而是希望机器能够自己从数据中找出逻辑。
此外,如果你想要找到经验、职位级别、罕见技能和薪水之间的关系,那么你需要教会机器学习算法。
根据这个案例研究,你需要调整特征以获取标签。但是,你不需要编写算法,你的重点应该放在数据上。
因此,这个概念就是数据 + 算法 = 洞察。其次,算法已经为我们开发好了,我们只需要知道在解决问题时应该使用哪个算法。让我们来看一下回归问题和选择算法的最佳方法。
机器学习概述
根据具有超过5年机器学习经验的德国科学家Andreybu的说法,“如果你能够理解机器学习任务是回归问题还是分类问题,那么选择正确的算法就是小菜一碟。”
总结一下,它们之间的主要区别在于回归中的输出变量是数值(或连续的),而分类中的输出变量是类别(或离散的)。
机器学习中的回归问题
首先,回归算法试图从输入变量(x)到数值或连续输出变量(y)的映射函数(f)。现在,输出变量可以是实数,可以是整数或浮点数。因此,回归预测问题通常涉及数量或大小。
例如,如果你有一个关于房屋的数据集,并被要求预测它们的价格,那么这就是一个回归任务,因为价格将是一个连续的输出。
常见的回归算法示例包括线性回归、Support Vector Regression (SVR)和回归树。
机器学习中的分类问题
相比之下,在分类算法中,y是映射函数预测的一个类别。换句话说,对于一个或多个输入变量,分类模型将尝试预测一个或多个结论的值。
例如,如果你有一个关于房屋的数据集,分类算法可以尝试预测房屋的价格是否“高于或低于建议零售价”。这里有两个离散的类别:高于或低于指定价格。
常见的分类算法示例包括逻辑回归、朴素贝叶斯、决策树和K最近邻。
选择正确的算法
了解你的数据
- 查看摘要统计数据
- 使用“百分位数”参数来确定数据的范围
- 平均值和中位数描述了集中趋势
- 相关性可以指示强关系
可视化数据
- 箱线图可以指示异常值
- 密度图和直方图显示数据的分布
- 散点图可以描述数量关系
清理数据
- 处理缺失值。结果可能会受到敏感影响(某些变量的缺失数据可能导致不准确的预测)
- 尽管树模型对异常值的存在不太敏感,但回归模型或其他使用方程的模型对异常值更敏感
- 基本上,异常值可能是错误数据收集的结果,也可能是合法的极端值
整理数据
此外,在将原始数据转为符合模型要求的精细数据时,必须注意以下问题:
- 使数据易于解释
- 捕捉更复杂的数据
- 专注于减少数据冗余和维度
- 归一化变量值
通过输入变量对问题进行分类
- 你有带标签的数据;这是一个监督学习问题
- 如果你有无标签的数据并希望找到结构,那么这是一个无监督学习问题
- 如果你想通过与环境进行交互来优化目标函数,那么这是一个 reinforcement learning 问题
通过输出变量对问题进行分类
- 你的模型的输出是一个数字;这是一个回归问题
- 当你的模型的输出是一个类别时,这是一个分类问题
- 你的模型的输出是一组输入组;这是一个聚类问题
约束因素
- 注意存储容量,因为不同模型的存储容量各不相同
- 预测是否需要快速?例如,在实时场景中,如尽量快速地对道路标志进行分类以避免事故
最后,找到算法
现在你对数据有了清晰的认识,可以使用适当的工具来选择正确的算法。
同时,为了做出更好的决策,以下是一个因素的核对清单:
- 看模型是否符合你的业务目标
- 模型需要多少预处理
- 检查模型的准确性
- 模型的可解释性
- 模型的速度:构建模型需要多长时间,模型进行预测需要多长时间
- 模型的可扩展性
此外,在选择算法时,还必须注意算法的复杂性。
一般来说,可以使用以下参数来衡量模型的复杂性:
- 当需要两个或多个特征来学习和预测目标时
- 依赖于更复杂的特征工程(例如使用多项式项、交互项或主成分)
- 当情景具有更多计算开销时(例如单个决策树与100个决策树的随机森林)
此外,相同的算法也可以手动使其更复杂。这完全取决于涉及的参数数量和考虑的场景。例如,您可以设计一个具有更多特征或多项式项和交互项的回归模型。或者,您可以设计一个深度较小的决策树。
常见的机器学习算法
线性回归
这些可能是最简单的算法之一。
线性回归的一些应用示例包括:
- 首先,当需要从一个位置到另一个位置时
- 预测下个月特定产品的销量
- 血液酒精含量对协调能力的影响
- 预测每月礼品卡销售额并改善年度收入预测
逻辑回归
显然,这个算法有很多优点,可以整合更多特征并提供良好的解释功能,还可以方便地更新以附加新数据。
换句话说,您可以用它来:
- 预测客户流失
- 信用评分或欺诈检测的特殊情况
- 衡量营销活动的有效性
决策树
显然,单个树很少被使用,但是与其他许多树的组合一起,它们可以构建高效的算法,例如随机森林或梯度提升树。然而,它们的一个缺点是不支持在线学习,所以当有新的示例出现时,您必须重新构建树。
树非常适合于:
- 投资决策
- 银行贷款违约者
- 销售线索资格
朴素贝叶斯
最重要的是,朴素贝叶斯是当CPU和内存资源受限时的一个正确选择。然而,它的主要缺点是无法学习特征之间的相互作用。
它可以用于:
- 人脸识别
- 标记电子邮件是否为垃圾邮件
- 情感分析和文本分类
结论
因此,一般来说,在实时场景中,很难确定适合目的的正确机器学习算法。但是,您可以使用此清单在方便的时候缩小算法的选择范围。
此外,选择适用于实际问题的正确解决方案需要专业的业务理解以及正确的算法。因此,将数据输入正确的算法中,同时并行或串行运行所有算法,并在最后评估算法的性能以选择最佳算法。
如果您希望专攻深度学习,可以查看this course by deep learning。