sklearn机器学习入门第一章:机器学习中的任务和方法概述(本篇长期更新)

1 机器学习的任务与方法范式

机器学习的过程通俗来说是算法模型在迭代计算中获取到了输入数据和输出数据中的某种联系,并根据这种联系预测新的输入数据会产生怎样的输出数据。

1.1 有监督、半监督、无监督

机器学习任务的经典划分首先是回答是否具有标签,使用标签的任务是有监督学习任务,不使用标签的任务是无监督学习任务,与此对应的算法模型划分为有监督算法模型无监督算法模型,随着研究的扩展,出现了一批半监督任务(算法模型),即部分样本具有标签,而其余样本没有标签,典型如小样本学习、零样本学习等等新出现的概念,本质上依然是将已有的标签进行推广、扩散、类比等等,统称为半监督学习

有监督学习任务本质上是一种预测任务,即模型训练完毕后,预测新的输入输入数据作为新的输出数据。无监督学习任务本质上是一种探索任务,即模型训练完毕后,通过输出结果启发人们对数据的认识。

1.2 有监督学习任务的类别

有监督学习任务的经典划分为:分类、回归、标注。以下引用《统计学习方法》中对三类任务的描述。
分类任务:在监督学习中,当输出变量取有限个离散值时,预测任务便成了分类任务。
标注任务:标注是分类问题的一种推广,标记问题的输入是一个观测序列,输出是一个标记序列或状态序列。标注问题的目标在于学习一个模型,使它能够对观测序列给出标记序列作为预测。
回归任务:回归用于预测输入变量和输出变量之间的关系,特别是当输入变量的值发生变化时,输出变量的值随之发生的变化。

1.3 无监督学习的类别

无监督学习的划分较为庞杂,不同的需求会导致不同的划分方法,如以KMeans为代表的聚类算法模型所要解决的聚类任务、适用于数据库挖掘的Apriori等。

2 机器学习的流派

2.1 频率派和贝叶斯派之争

机器学习种方法众多,可以简单区分为两大流派:频率派和贝叶斯派,两派从根本上对概率的认知不一样,产出的算法模型区别显著,二者相辅相成如同一枚硬币的两面。

频率派认为:概率是一个固定的值,关心概率分布毫无意义,实验中呈现的数据都是由这个固定的值产生的,只要试验次数够多,样本量足够大,那么我们就可以无限逼近这个不可见的、潜在的固定值。说到底,追求逼近固定概率值的极限。这一派的观点非常符合大多数人(包括专业人士)对于专业中、生活中“概率”这一概念的认知,即,有概率的、随机的、客观的。

贝叶斯派认为:频率派的人冥顽不化,没有用发展的眼光看问题。人对事物的认知是不同的,因为每个人的知识背景不一样。而且你怎么就知道哪个值是真实准确的值呢,你又没有上帝视角。所以主张参数空间里的每一个值都有可能是所谓“唯一准确的值”,区别在于概率不同而已。到这就完全颠覆了频率派对概率的认知,即数据并不是随机生成的,而是固定的,真正随机的应该是待估计的参数。

机器学习中的频率派(Frequentist)和贝叶斯派(Bayesian)主要在以下几个方面有区别:

  1. 频率派认为模型参数是固定不变的,而贝叶斯派则将模型参数视为随机变量,并赋予它们先验分布。

  2. 频率派依赖于大样本理论,通过频繁重复实验来估计模型参数。而贝叶斯派则通过 Bayes 定理来更新参数的后验分布。

  3. 频率派的推断目标是点估计,而贝叶斯派则给出参数的后验分布。

  4. 频率派的置信区间是基于数据分布而推导出来的,而贝叶斯派的可信区间则基于参数的后验分布。

  5. 频率派只依赖于数据,而贝叶斯派需要结合数据和先验知识。

  6. 频率派更注重模型的频率性质,而贝叶斯派更注重模型的参数不确定性。

  7. 频率派的方法更简单易解释,而贝叶斯方法在计算上更为复杂。

  8. 频率派方法在样本量大时效果较好,而贝叶斯方法在样本量少时表现较好。

总的来说,频率派依赖数据频率,贝叶斯派依赖先验知识;频率派追求对象性,贝叶斯派注重主观性,两者各有优劣。从技术上来说,贝叶斯派面临的情况更复杂,估计的目标也更困难。

2.2 机器学习算法模型的种类划分

一些常见的算法模型按两派划分包括但不限于以下:
频率派:

  • 线性回归
  • logistic回归
  • 支持向量机(SVM)
  • K近邻(KNN)
  • 决策树(如CART)
  • 随机森林
  • AdaBoost
  • K均值聚类

贝叶斯派:

  • 贝叶斯线性回归
  • 贝叶斯逻辑回归
  • 贝叶斯网络
  • 朴素贝叶斯
  • 贝叶斯推断
  • 马尔可夫链蒙特卡罗
  • 贝叶斯优化
  • 贝叶斯非参数方法

3 数据分析、机器学习、深度学习和人工智能的关系

很多入门学习者很难区分数据分析、机器学习、深度学习和人工智能的关系,在此简单区分如下:

  • 数据分析主要指用统计学等方法对数据进行分析,找出数据模式和趋势。它是更基础的工作,为其他提供分析基础。
  • 机器学习是使计算机可以从数据中学习、改进性能,无需明确编程的领域。其核心是各种算法模型。机器学习基于数据分析结果建立模型。
  • 深度学习是机器学习的一个分支,通过构建和训练多层神经网络实现各种功能。它利用神经网络架构模拟人脑分析学习。深度学习是机器学习的高级方法。
  • 人工智能是让机器具有像人一样智能的能力,可以感知、学习、理解、决策等的技术和科学。它包含机器学习与深度学习,还包括其他领域知识。

4 机器学习中常用的指标

请参照此文章:机器学习算法常用指标总结

5 参数优化

参数优化是机器学习领域中一项重要的工作,通常指在建立基线模型后,对模型参数进行基于优化算法的调整,使模型性能获得一定的提升,基本步骤包括:给定参数空间(范围)、给出优化方向(最大化/最小化)、确定优化策略(指定优化算法)、执行优化计划、保存最佳模型。在本系列中我们使用optuna来进行参数优化。在机器学习中,参数优化指的是通过调整模型的参数以获得最佳性能的过程。这些参数通常被称为超参数(hyperparameters),与模型的权重参数不同,它们不是通过训练数据学习得来,而需要人工设置。超参数的选择可以显著影响模型的性能,因此参数优化是机器学习项目中的重要步骤。以下是一些常见的机器学习超参数,以及关于参数优化的一些重要概念:

  1. 决策树深度(Tree Depth):在决策树算法中,树的深度是一个重要的超参数。深度过大可能导致过拟合,深度过小可能导致欠拟合。

  2. K-近邻中的K值(K-Nearest Neighbors, KNN):KNN算法中的K值表示用于决定一个数据点的邻居数量。选择合适的K值影响了KNN模型的性能。

  3. 支持向量机中的核函数(SVM Kernel):支持向量机中的核函数(如线性核、多项式核、高斯核等)是重要的超参数,选择合适的核函数可以影响SVM的性能。

  4. 随机森林中的树数量(Random Forest Trees):在随机森林中,决定树的数量是一个关键的超参数。

参数优化的目标是找到最优的超参数组合,以最大化模型的性能。常见的参数优化方法包括:

  1. 网格搜索(Grid Search):通过在预定义的参数空间中进行穷举搜索,找到最佳超参数组合。这是一种简单但昂贵的方法。

  2. 随机搜索(Random Search):与网格搜索不同,随机搜索在参数空间中随机采样,以寻找更好的超参数组合。通常比网格搜索更高效。

  3. 贝叶斯优化(Bayesian Optimization):使用贝叶斯统计方法,根据先前的结果来选择下一个参数组合,以在更少的尝试中找到最佳超参数。

  4. 自动化超参数优化工具(AutoML):自动化机器学习工具如Auto-sklearn、Auto-Keras和TPOT可以自动执行超参数优化,以简化这个任务。

参数优化是一个重要的步骤,因为它可以显著改善模型的性能,减少过拟合或欠拟合的风险,并使机器学习模型更适合特定的任务。参数优化需要谨慎而系统地进行,通常涉及交叉验证来评估不同参数组合的性能。但参数优化并不能保证一定可以大幅提升模型的表现,这跟参数空间设置、迭代优化次数和指标的选择都有关系,入门者往往把参数优化视作万能的良药,似乎模型表现不佳时,只需要做大规模的参数优化就可以把模型的性能提升到预期的水平,这是一个完全错误的认知。虽然参数优化可以提升模型的性能,但这也只是一定程度上的,因为参数优化只是一种“锦上添花”,甚至当设置不佳时,连锦上添花都做不到,它甚至会削弱模型的性能,还不如根据经验设置的一组参数或随便设置(比如默认参数)的效果好,这是为什么呢?
因为机器学习建模分析的效果,本质上来说是模型的复杂度、数据复杂度和人的认知这三者相对关系,当模型的复杂度超越了数据的复杂度时,模型从理论上的确能够完全学习到数据间的数量关系,但跟人与模型性能的预期之间还有一个环节,就是数据和实际业务之间的表示程度,当数据没有很好地表示业务时,即便模型的性能很强(超出数据的复杂度),其性能也会和人的预期差距很大。参数调整只是尽可能地在模型拟合数据这一环节把模型和数据尽可能地贴合在一起,而人的预期和数据的贴合需要另外的环节来补充,比如特征工程,再比如表单的设置和业务的翻译。

6 流水线与自动化

6.1 流水线

在机器学习中,流水线(Pipeline)是一种数据处理工具,用于将数据处理和建模步骤组织成一个有序的序列。这个序列包括数据预处理、特征工程、模型训练和模型评估等环节。流水线的主要目的是简化和自动化机器学习任务,使其更易于管理、复现和部署。

一个典型的机器学习流水线通常包括以下几个步骤:

  1. 数据收集:获取原始数据,可能来自各种来源,如数据库、文件、API等。

  2. 数据预处理:对数据进行清洗、缺失值处理、异常值处理等操作,以确保数据质量。

  3. 特征工程:从原始数据中提取、转换和选择特征,以便用于训练模型。这可能包括特征缩放、编码分类变量、特征选择等操作。

  4. 模型选择:选择合适的机器学习算法或模型,以解决特定的问题。

  5. 模型训练:使用训练数据拟合模型,学习数据的模式和关系。

  6. 模型评估:使用测试数据评估模型的性能,通常包括各种指标如准确率、召回率、F1分数等。

  7. 模型部署:将训练好的模型部署到生产环境中,以进行实际预测和推断。

机器学习流水线的优势在于它可以将这些步骤组织成一系列互相关联的任务,确保数据在不同阶段的处理一致性,减少了手动操作的需求,并使整个过程更加高效。常见的工具和库,如scikit-learn(Python中的机器学习库)和Apache Spark,都提供了流水线的支持。流水线的设计可以根据具体的问题和需求进行定制,以实现自动化和优化机器学习工作流程。

6.2 自动化

自动化机器学习(AutoML)是一种将机器学习任务中的一些繁琐和复杂的任务自动化的方法,以降低机器学习应用的门槛,加速模型开发和部署,并使更多的人能够利用机器学习技术。AutoML旨在简化机器学习流程,从数据预处理到模型选择和调优,以便非专业人士或数据科学家能够轻松地构建高性能的机器学习模型。

以下是自动化机器学习的一些关键特点和组成部分:

  1. 数据预处理自动化:AutoML工具可以自动处理数据清洗、缺失值处理、特征缩放和编码等预处理任务,减少了数据准备的工作量。

  2. 特征工程自动化:自动化机器学习工具可以自动选择、生成和优化特征,从而减少了特征工程的复杂性。这些工具可以使用各种技术,如特征选择、特征交叉等。

  3. 模型选择和调优:AutoML工具可以自动选择合适的机器学习算法和模型架构,并进行超参数调优,以提高模型的性能。

  4. 自动化的模型评估:AutoML工具通常提供了自动化的模型评估,包括交叉验证和性能指标的计算,以帮助用户了解模型的性能。

  5. 自动化部署:一些AutoML工具还提供了模型部署的功能,以便将模型轻松部署到生产环境中,以进行实际的预测和推断。

  6. 自动化解释性:一些AutoML工具还包括模型解释性的功能,以帮助用户理解模型的预测过程和决策。

AutoML的应用范围非常广泛,从传统的分类和回归任务到图像识别、自然语言处理和时间序列分析等各种机器学习任务都可以受益于自动化机器学习。它可以减轻数据科学家的负担,提高模型的性能,并加速机器学习项目的交付时间。一些流行的AutoML工具和框架包括Google的AutoML、H2O.ai、Auto-sklearn、TPOT和IBM的AutoAI等。这些工具提供了不同程度的自动化和可定制性,以满足不同项目的需求。

7 集成方法

集成学习是一种机器学习技术,旨在通过结合多个基本模型(弱学习器)的预测结果,以获得更强大、更稳定的整体模型。集成学习的核心思想是,多个模型的组合可能比单个模型更具预测能力,因为它可以弥补单个模型的局限性,降低过拟合风险,提高鲁棒性,从而提高整体性能。

以下是一些常见的集成学习方法和概念:

  1. 袋装法(Bagging):袋装法是一种通过对数据集进行有放回的随机抽样,然后基于每个子样本训练多个弱学习器,最后将它们的预测结果进行平均或投票来进行分类或回归的方法。袋装法的代表是随机森林(Random Forest)。

  2. 提升法(Boosting):提升法是一种通过逐步改进模型的方法,每一步都会根据前一步的预测性能来赋予样本不同的权重。常见的提升算法包括AdaBoost、Gradient Boosting和XGBoost。

  3. 堆叠法(Stacking):堆叠法是一种将多个不同的基本模型组合成一个元学习器的方法。首先,多个基本模型独立地训练,然后一个元模型被训练来融合这些基本模型的预测结果。

  4. 投票法(Voting):投票法是一种通过多数投票来决定最终的分类结果,或通过平均来决定回归结果的方法。可以采用硬投票(多数票)或软投票(根据概率权重加权平均)。

  5. 随机子空间法(Random Subspace Method):这是一种在特征空间上随机选择子集进行训练的方法,用于构建多个模型,然后将它们的结果组合起来。

集成学习的优势在于它可以降低过拟合的风险,提高模型的鲁棒性,适用于各种类型的机器学习任务。不同的集成方法可以在不同情况下表现更好,因此在实践中通常需要进行实验和调优,以选择最适合特定问题的集成策略。

总之,集成学习是一种强大的技术,已被广泛应用于机器学习领域,以提高模型的性能和稳定性。

8 欠拟合与过拟合

"欠拟合"和"过拟合"是机器学习和统计建模中两个重要的概念,它们描述了模型在处理数据时的性能和泛化能力。这两个概念通常与模型的复杂性和数据适应性有关。

  1. 欠拟合(Underfitting)

    • 欠拟合发生在模型过于简单或不足够复杂,无法很好地拟合训练数据的情况下。
    • 欠拟合的模型通常在训练数据上表现糟糕,训练误差高,因为它们未能捕获数据中的复杂模式和关系。
    • 这种模型在新的、未见过的数据上也表现糟糕,因为它们缺乏足够的泛化能力。
    • 解决欠拟合的方法通常包括增加模型的复杂度,添加更多的特征或采用更复杂的算法。
  2. 过拟合(Overfitting)

    • 过拟合发生在模型过于复杂,试图过分适应训练数据的情况下。
    • 过拟合的模型在训练数据上表现非常好,训练误差低,但在新的、未见过的数据上表现糟糕。
    • 过拟合通常是因为模型过多地学习了训练数据的噪声和细微特征,而这些特征不一定在未知数据上成立。
    • 解决过拟合的方法包括减小模型的复杂度(例如,减少特征数或采用正则化技术)、增加训练数据量、或使用更一般化的模型。

找到适当的模型复杂度,以便在训练数据和未知数据上都能获得良好的性能是机器学习的关键挑战之一。这要求在模型开发过程中进行适当的调整和评估,以避免欠拟合和过拟合问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fanshaoliang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值