https://blog.csdn.net/weixin_45638544/article/details/107442912
@[TOC](结合石油专业的 常见机器学习算法特点梳理)
1 前言
传统技术与机器学习各有特点。本文对于机器学习的一些特点进行一些梳理。
在我的一篇博客中说道^1,机器学习总的来说可以分为5个部分,每个部分各有特点。结合石油行业的特点,主要部分就集中在数据处理与网络模型这两个部分。
数据处理需要根据不同的项目进行调整,调整的越细微,效果越好,不过即使使用通用数据处理流程也可以完成多数任务。同时模型也是同理,成熟的算法已经可以满足绝大多数项目应用,改进算法肯定是有进步空间,不过代价肯定也是有的。
因此,如果说数据处理有一套通用模板的话,那么模型的选择就有多套模板供您挑选。
在机器学习领域,一个基本的定理就是“没有免费的午餐 No Free Lunch Theorem ”(简称NLF)。换言之,就是没有算法能完美地解决所有问题,尤其是对监督学习而言(例如预测建模)^2。
比如只要足够的网络参数,神经网络理论上能拟合任意函数,也就是说任何数据都能进行训练,但是实际项目中经常会表现的糟糕。造成这种结果的原因有很多,比如数据量不够(很多时候项目限制了数据量本来就没有太多)。所以,每个算法都试一试是解决实际问题最有效的手段,并且需要选择合理的算法,比如我想预测有时间序列关系的数据就不能直接套用神经网络去解决,需要做一些数据处理再使用,比如让输入的数据本身就能体现出时间的先后关系,或者让预测值体现时间先后关系。
经常会有新算法被提出来,这里仅简单的说明几个经过比较简单有效的算法。
各类算法有很多,项目实践中主要用的还是分类与回归问题,故此本文会主要对这两个线进行阐述。
并且大多数算法可能研发时是为了分类,后来会衍生出回归的能力。这也是有的算法既能分类又能回归的原因。
2 常用算法对比一览表
本节是把后文的特点进行简述,想看更多的内容可以在后续章节进行查看,也可以索引各个算法的原理详情,本文的内容会从项目实践的角度阐述^3。
注:有的缺点可能是通用缺点比如
过拟合
这个缺点其实每个算法都会存在。
算法 | 特点 | 优势 | 劣势 |
---|---|---|---|
决策树 | 1. 支持分类与回归 | 1. 计算简单 2. 可以解释 查看分类或者回归的依据 |
1. 容易过拟合 |
随机森林 | 1. 支持分类与回归 2. 属于集成算法,是多个决策树得到的结论经过投票得出的最终结果 |
1. 决策树的加强版,对于缺失值、样本不均衡、训练速度有提升 2. 对于大规模数据、各属性间没什么关系的情况有优势 |
1. 噪声对过拟合影响较大 2. 某个属性如果有过多的类别可能导致结果差 |
xgboost | 1. 支持分类与回归 2. 结合随机森林思想的决策树,这里单独列出来是因为它的各方面效果都很好 3. 个人感觉分类的效果比回归的效果好 |
1. 缓解过拟合 2. 并行优化 3. 采用二阶导数 4. 缺失值处理 5. 列抽样 |
1. 划分层数过多时,继续新增层数的效果会降低 |
k-means聚类 | 1. 聚类算法,既不能分类也不能回归 2. 需要人根据经验把结果综合业务场景进行解释 |
1. 简单、快复杂度较低 | 1. 噪音的影响较大 |
knn | 1. 支持分类与回归 | 1. 简单、复杂度极低 | 1. 受样本不均衡影响会偏向大容量数据(比如类型a多就多预测为类型a) |
线性回归 | 1. 回归 | 1. 简单 2. 存在解析解 |
1. 欠拟合(数据如果复杂拟合效果差) |
SVM | 1. 支持分类与回归 2. 数据升维(比如两个圈套在一起,平面上看是没法区分,三维上看很容易解决) |
1. 拟合效果可以很好 | 1. 核函数(SVM内使用的一个具体方法)不同,效果也有很大差距 2. 可解释性差(只有用线性核才便于解释,然而线性核对于实际问题没什么用) |
神经网络 | 1. 支持分类与回归 2. 本质上的神经网络的两个核心操作就是全连接和卷积,前者是对于数据点的操作,后者主要是体现了多个数据点在一起具有某种意义的操作,比如图像的某个区域内n个像素 3. 深度学习的大门在这,效果的确很好,同时模型会特别复杂,以及耗时、烧钱 |
1. 全都是优点 | 1. 数据不行的时候所有优点都没用 |
3 个人经验
个人觉得各种算法的优缺点只是理论上的,并且很多优缺点都是通用的,比如容易过拟合
这个缺点是所有模型都有的,因为拟合与过拟合本身就是矛盾的,只能寻找平衡。优点方面有的模型比较简单,而实际上如果项目要求不是很高,再复杂的模型也不会消耗太多的时间或计算机资源,反之亦然。
数据决定了效果的上限,模型只是逼近这个上限的手段。