机器学习面试-核心概念-问题理解

1.机器学习的思想

计算机程序随着经验的积累,能够实现性能的提高。对于某一类任务T及其性能度量P,若一个计算机程序在T上以P衡量的性能随着经验E而自我完善,那么就称这个计算机程序在从经验E学习。


机器学习是人工智能的一个分支,它的核心思想可以从以下几个方面来抽象和通俗地解释:

  1. 数据驱动:机器学习依赖于大量的数据。就像人们通过阅读书籍来学习知识一样,机器学习通过分析数据来学习规律。

  2. 模式识别:机器学习的目标是识别数据中的模式。比如,通过分析大量猫的图片,机器可以学会识别猫的特征。

  3. 算法优化:机器学习使用各种算法来处理数据,这些算法会不断优化以更好地从数据中学习。就像人们通过不断练习来提高技能一样。

  4. 预测与决策:学习到的模式可以用于预测和决策。比如,一个天气预报模型可以预测明天的天气。

  5. 自适应性:机器学习模型可以随着新数据的输入而不断更新和改进。这就像人们根据新信息调整自己的观点和决策。

  6. 泛化能力:好的机器学习模型不仅能在训练数据上表现良好,还能泛化到未见过的数据上。这就像是学会了骑自行车的人,即使换了一辆不同的自行车也能骑得很好。

  7. 自动化:机器学习可以自动化许多任务,比如自动化邮件分类、语音识别等,这大大提升了效率。

用一个通俗的例子来解释机器学习:想象你有一个智能助手,它通过观察你每天的饮食习惯来学习你的口味。随着时间的推移,它开始能够预测你今天可能想吃什么,甚至在你提出要求之前就为你准备好了。这就是机器学习的一个简单例子,它通过观察(数据)学习了你的偏好(模式),然后使用这些信息来做出预测(决策)。

2.数据挖掘、机器学习、人工智能三者之间的关系

机器学习与其他领域之间的关系如下图所示:

数据挖掘:通过处理各种数据来促进人们的决策

机器学习:使机器模仿人类的学习来获取知识

人工智能:使用机器学习和推理来最终形成特定的智能行为


数据挖掘、机器学习和人工智能是三个紧密相关但各有侧重点的概念。下面我将先抽象地描述它们之间的关系,然后再用一个通俗易懂的例子来解释。

  1. 抽象描述

    • 数据挖掘:是分析大量数据以发现模式和关系的过程。它通常用于从数据集中提取有用信息,是机器学习和人工智能的基础。
    • 机器学习:是一种让计算机系统利用数据来提高性能的技术。它通过算法让计算机能够从数据中学习,从而做出预测或决策。
    • 人工智能:是计算机科学的一个分支,旨在创建能够执行通常需要人类智能的任务的系统。机器学习和数据挖掘是实现人工智能的关键技术之一。
  2. 关系

    • 数据挖掘提供了机器学习所需的原材料,即数据中的模式和信息。
    • 机器学习是实现人工智能的一种手段,通过学习数据来提高智能行为。
    • 人工智能是一个更广泛的概念,包含了机器学习和其他技术,以实现更高层次的智能行为。
  3. 通俗易懂的例子: 想象一个大型图书馆,里面有成千上万本书。数据挖掘就像是图书馆管理员,负责整理和分类这些书籍,找出哪些书是关于历史的,哪些是关于科学的,等等。这个过程就是从大量数据中提取有用信息。

    机器学习则像是图书馆里的一个智能机器人,它通过阅读这些书籍来学习知识。随着阅读的书籍越来越多,它能够回答关于历史或科学的问题,甚至能够预测你接下来可能想读什么书。

    人工智能就像是整个图书馆的智能系统,它不仅包括了智能机器人,还有自动借书机、智能导航系统等,所有这些都让图书馆更加智能和高效。

在这个比喻中,数据挖掘是基础,提供了机器学习所需的信息;机器学习是核心,通过学习来提高智能;人工智能则是最终目标,实现了一个高度智能化的环境。

3. 数据挖掘及其相关流派

数据挖掘使用诸如机器学习,统计和数据库之类的方法来发现相对大量的数据集中的模式和知识,涉及数据预处理,模型和推理,可视化等。

 异常检测(anomalydetection):识别不符合预期模式的样本和事件。异常也称为离群值,偏差和异常。异常检测通常用于入侵检测,银行欺诈,疾病检测,故障检测等。

关联规则学习(Associationrulelearning):发现数据库中变量之间的关系(强规则)。例如,在购物篮分析中,发现规则{面包,牛奶}→{酸奶}表示如果客户同时购买面包和牛奶,他们很有可能也会购买酸奶,这些规则可以用于市场营销。

聚类:一种探索性分析,在数据结构未知的情况下,根据相似度将样本划分为不同的群集或子集,不同聚类的样本有很大的差异,以便发现数据的类别和结构。

分类:根据已知样本的某些特征确定新样本所属的类别。通过特征选择和学习,建立判别函数以对样本进行分类。

回归:一种统计分析方法,用于了解两个或多个变量之间的相关性,回归的目标是找到误差最小的拟合函数作为模型,并使用特定的自变量来预测因变量的值。

4.机器学习算法分类

算法定义:自动分析数据并从中获取模式(规律),之后使用模式预测未知数据的方法。

算法分类:监督学习,非监督学习和半监督学习。

在机器学习中,算法可以根据它们处理数据和学习模式的方式进行分类。主要分为三类:

  1. 监督学习(Supervised Learning):算法从标记的训练数据中学习,即每个训练样本都有一个已知的输出标签。目的是学习输入数据到输出标签之间的映射关系,以便对新的、未知的数据进行预测。

  2. 非监督学习(Unsupervised Learning):算法处理没有标记的训练数据,它们试图发现数据中的结构和模式。常见的任务包括聚类和关联规则学习。

  3. 半监督学习(Semi-supervised Learning):介于监督学习和非监督学习之间,算法使用一部分标记数据和大量未标记数据进行训练。这种方法适用于标记数据稀缺但未标记数据丰富的情况。

通俗易懂的解释

想象一下,你有一个大型的图书馆,里面有成千上万本书,但这些书没有分类标签。

  • 监督学习:就像有一个经验丰富的图书管理员,他知道每本书属于哪个类别(如历史、科学等),并教你如何根据书的封面、标题等特征来识别这些类别。在这种情况下,你已经有了正确的分类信息,只需要学习如何识别它们。

  • 非监督学习:就像你没有任何分类信息,需要自己探索这些书,找出它们之间的相似之处,然后将它们归类到不同的类别中。这可能涉及到观察书的封面设计、主题或作者等,以找出它们之间的联系。

  • 半监督学习:这是一种中间情况,你可能只有一小部分书的分类信息,但你需要对整个图书馆进行分类。你首先使用这些已知的分类信息来学习一些基本的规则,然后利用这些规则来帮助对剩余的书籍进行分类。

在机器学习中,这些分类方法帮助算法从数据中学习并做出预测或发现模式,就像图书管理员和图书馆的智能系统在处理书籍分类一样。

机器学习可以分为三种常见的机器学习任务:回归,分类和聚类。

某些机器学习算法可能同时属于不同的类别,例如,某些深度学习算法可能存在于监督学习中,也可能存在于半监督学习中。在具体的实践过程中,可以根据实际需要进行具体地选择。

5.如何进行机器学习算法的选择

进行机器学习算法的选择是一个多步骤的过程,涉及到对问题的理解、数据的分析、算法性能的评估以及实际应用的考虑。以下是一些关键步骤和考虑因素:

问题定义:首先,明确你要解决的问题类型。是分类问题、回归问题、聚类问题还是其他类型的预测问题?
数据理解:分析你的数据集,包括数据的规模、质量和特征类型。数据的这些属性将影响算法的选择。
算法熟悉度:考虑你对不同算法的熟悉程度以及它们在你的问题领域中的常见应用。
算法性能:评估不同算法在类似问题上的历史表现,包括它们的准确性、速度、稳定性和对数据规模的适应性。
模型复杂性:选择一个既不过于简单(可能无法捕捉数据的复杂性)也不过于复杂(可能导致过拟合)的模型。
训练和测试:使用交叉验证等技术来评估不同算法在你的数据集上的表现。
资源限制:考虑计算资源的限制,包括算法的运行时间和所需的内存。
可解释性:某些领域可能需要模型的决策过程是可解释的,这可能影响算法的选择。

6.分类算法概述

分类算法

◆定义:将分类规则应用于记录的目标映射,将它们划分为不同的分类,并建立具有泛化能力的算法模型,即构建映射规则以预测未知样本的类别

分类算法任务

◆分类:经过训练而建立的预测模型在遇到未知样本时会使用建立好的模型对未知样本进行类别的划分

◆描述:描述性分类主要解释和区分现有数据集中的特征,例如,描述动植物的各项特征,并进行标注分类,通过这些特征来确定它们属于哪个类别

机器学习的分类算法包括:决策树,支持向量机(SupportVectorMachine,SVM),最近邻(K-NearestNeighbor,KNN)算法,贝叶斯网络(BayesNetwork)和神经网络等算法。

7.泛化能力

泛化能力是机器学习模型的一个重要特性,指的是模型在面对新的、未见过的数据时,能够做出准确预测的能力。一个具有良好泛化能力的模型能够捕捉到数据的内在规律,而不是仅仅记住训练数据。这种能力使得模型能够应用到更广泛的场景中,而不仅仅是它所训练的具体数据集。

泛化能力通常与以下几个因素相关:

  • 过拟合:模型过于复杂,导致它在训练数据上表现很好,但在新数据上表现差。
  • 欠拟合:模型太简单,无法捕捉数据的复杂性,导致在训练数据和新数据上都表现不佳。
  • 模型选择:选择适当的模型复杂度,以平衡过拟合和欠拟合。
  • 数据多样性:训练数据的多样性有助于提高模型的泛化能力。
  • 正则化:通过限制模型的复杂度来提高泛化能力。

通俗易懂的解释

想象你是一名学生,正在学习一门新的语言。

  • 泛化能力:就像你学习了一门语言的基本规则和词汇后,能够理解并使用这门语言进行交流,即使面对你从未听过的句子或表达方式。

  • 过拟合:如果你只学习了课本上的例句,而没有真正去实践和使用这门语言,你可能只会在考试中做得很好,但在实际对话中却无法流利交流。

  • 欠拟合:如果你只学了一些基本的词汇和非常简单的句子结构,你可能连基本的交流都无法完成。

  • 模型选择:选择一个适合你学习水平的课程,既不过于简单,也不过于复杂,这样你才能更好地掌握语言。

  • 数据多样性:如果你在学习过程中接触了不同的语言环境和语境,比如电影、歌曲、日常对话等,你的语言能力会更加全面。

  • 正则化:就像在学习过程中,老师会提醒你不要死记硬背,而是要理解语言的内在逻辑和规则,这样你才能更好地运用这门语言。

泛化能力是衡量你学习成果的一个重要标准,它决定了你能否将所学知识应用到新的情境中。在机器学习中,泛化能力决定了模型在面对新数据时的预测能力。

8.过拟合与欠拟合

过拟合(Overfitting)和欠拟合(Underfitting)是机器学习模型在训练过程中可能出现的两种极端情况:

过拟合:模型在训练数据上表现非常好,但对新数据的预测能力差,因为它捕捉了训练数据中的噪声和细节,而不是潜在的模式。
欠拟合:模型在训练数据上表现不足,未能捕捉数据的基本模式,导致在新数据上同样表现不佳。
避免这两种情况的常见方法包括:

数据增强:增加数据集的多样性和大小。
特征选择:选择与问题最相关的特征。
模型选择:选择适合数据复杂性的模型。
正则化技术:如L1或L2正则化,限制模型复杂度。
交叉验证:评估模型在不同数据子集上的表现。
早停法(Early Stopping):在训练过程中提前终止以避免过拟合。
集成方法:如随机森林或梯度提升机,通过组合多个模型来提高泛化能力。
通俗易懂的解释
想象你正在学习如何打网球。

过拟合:这就像你在一个特定的场地上练习,这个场地的地面、光线和风向都是完美的。你在这个场地上打得非常好,但当你去其他场地时,你发现你的技能似乎不起作用了,因为你只学会了在这个特定环境下打球。
欠拟合:这就像你只学会了基本的握拍和击球,但没有练习过如何移动、定位或应对不同的球速和旋转。当你真正比赛时,你会发现自己无法应对对手的各种击球。
为了避免过拟合和欠拟合,你可以采取以下措施:

数据增强:就像在不同的场地、不同的天气条件下练习,这样你就能适应各种环境。
特征选择:专注于提高你的步法、力量和策略,而不是只关注握拍的方式。
模型选择:选择适合你技能水平的教练和训练计划,既不过于基础,也不过于高级。
正则化技术:就像教练会限制你使用某些技巧的次数,以确保你不会过度依赖它们。
交叉验证:通过与不同的对手比赛来检验你的技能,看看你在不同情况下的表现。
早停法:如果你发现自己在训练中已经达到了瓶颈,就停止过度练习,转而寻求新的训练方法或策略。
集成方法:就像学习不同的教练和顶级球员的技巧,将它们融合到你自己的风格中,以提高你的适应性和技能。
通过这些方法,你可以确保你的网球技能不仅在特定条件下有效,而且能够在各种情况下都表现出色,这与机器学习中提高模型泛化能力的目标是一致的。

9.特征工程

特征工程(Feature Engineering)是机器学习中的一个重要步骤,指的是从原始数据中提取、构建和选择那些对模型预测能力有重要影响的特征(变量)。这一过程对提高模型的性能至关重要。特征工程包括以下几个关键步骤:

数据探索:了解数据的分布、范围和潜在的模式。
特征提取:从原始数据中提取有用的信息,形成新的特征。
特征构造:基于现有特征,通过数学或逻辑操作构造新的特征。
特征选择:从所有可能的特征中选择对模型最有用的子集。
特征转换:将特征转换为更易于模型处理的形式,例如归一化或编码。
特征降维:减少特征的数量,以避免维度灾难和提高模型的泛化能力。
特征工程的目的是使模型能够更有效地从数据中学习,并提高其预测的准确性。

通俗易懂的解释
想象你是一位厨师,准备参加一场烹饪比赛,你需要从各种食材中选择和准备出最好的菜肴。

数据探索:这就像你了解你的食材,知道它们的味道、颜色和质地。
特征提取:就像你从食材中提取出关键的风味和营养,比如从香草中提取香气,从辣椒中提取辣味。
特征构造:就像你将不同的食材组合起来,创造出新的口味,比如将番茄和罗勒混合制作番茄酱。
特征选择:就像你决定哪些食材对你的菜肴最重要,比如选择高质量的肉类和新鲜的蔬菜。
特征转换:就像你将食材加工成适合烹饪的形式,比如将肉切成块,将蔬菜切成丝。
特征降维:就像你从许多可能的食材中挑选出几种,以确保你的菜肴不会过于复杂,容易让评委品尝和理解。
通过特征工程,你能够确保你的菜肴在味道、外观和营养价值上都能达到最佳状态,这与机器学习中通过特征工程提高模型性能的过程非常相似。通过精心选择和准备特征,你可以构建一个强大的模型,就像制作一道美味的菜肴一样。

10.正则化

正则化(Regularization)是机器学习中用于防止模型过拟合的技术。它通过在模型的损失函数中添加一个额外的项来实现,这个额外的项通常与模型的复杂度相关。正则化的主要目的是在模型的复杂性和训练误差之间找到一个平衡点。以下是正则化的多个方面:

L1 正则化:也称为Lasso正则化,通过向损失函数添加权重的绝对值之和来实现,倾向于产生稀疏权重矩阵,即模型中某些权重为零。
L2 正则化:也称为Ridge正则化,通过添加权重的平方和来实现,倾向于让所有权重都很小,但不为零。
弹性网(Elastic Net)正则化:结合了L1和L2正则化,同时考虑了权重的绝对值和平方。
Dropout:一种在训练过程中随机丢弃(置零)一部分神经元输出的方法,用于防止深度学习模型中的过拟合。
早停法(Early Stopping):在训练过程中,当验证集上的性能不再提升时提前终止训练。
数据增强:通过增加数据的多样性来提高模型的泛化能力。
集成方法:如随机森林或梯度提升机,通过组合多个模型来减少过拟合。
正则化参数的选择:选择合适的正则化强度,通常通过交叉验证来确定。
通俗易懂的解释
想象你是一位画家,正在创作一幅画。

L1 正则化:就像你在画布上只用几种颜色,尽量用最少的颜色来表达画作的主题。
L2 正则化:就像你尽量让每种颜色都使用得恰到好处,不让任何一种颜色过于突出或过于淡薄。
弹性网正则化:就像你同时考虑使用最少的颜色和每种颜色的适量,以达到平衡。
Dropout:就像你在创作过程中,有时会故意忽略某些细节,让画作保持一定的神秘感和想象空间。
早停法:就像你在绘画时,感觉到已经达到了想要的效果,就不再继续添加细节,以避免画蛇添足。
数据增强:就像你从不同角度、不同光线下观察你的画作,以确保它在各种情况下都看起来很棒。
集成方法:就像你邀请几位朋友一起创作,每个人贡献不同的视角和风格,最终融合成一幅更加丰富和多元的画作。
正则化参数的选择:就像你在选择画笔和颜料时,需要找到最适合你创作风格的工具。
通过这些正则化技术,你可以确保你的画作既不会过于复杂(过拟合),也不会过于简单(欠拟合),而是恰到好处地表达你的创意和情感。这与机器学习中使用正则化来提高模型的泛化能力和避免过拟合是相似的。

11.分类算法-决策树

决策树是用于决策的树,目标类别作为叶子节点,特征属性的验证被视为非叶子节点,每个分支都是特征属性的输出结果。

◆决策树擅长评估人员,位置和事物的不同品质和特征,并且可以应用于基于规则的信用评估和竞争结果的预测等

◆决策树的决策过程:从根节点开始,测试不同的特征属性,根据不同的结果选择分支,最后落入某个叶子节点以获得分类结果

◆主要的决策树算法:ID3,C4.5,C5.0,CART,CHAID,SLIQ,SPRINT等算法。

◆决策树的构建过程:根据属性的优先级或重要性逐渐确定树的层次结构,以使叶子节点尽可能属于同一类别,通常情况下,采用局部最优的贪心(贪婪)策略来进行决策树的构建。

12.分类算法-支持向量机

◆支持向量机(SupportVectorMachine,SVM)是由瓦普尼克(Vapnik)等人设计的一款分类器,其主要思想是将低维特征空间中的线性不可分问题进行非线性映射,将其映射到高维空间去,从而转化为线性可分的问题

◆应用结构风险最小理论在特征空间优化分割超平面,找到的分类边界尽可能地宽,以便于该算法更加适用于二分类问题,例如,二维平面图中的某些点无序排列,仅仅使用一条直线无法将其准确地划分为两个类别,但是如果将其映射到三维空间中,可能存在一个平面可以实现将这些杂乱无序的点划分为两个类别分类算法---支持向量机

为了避免从低维空间到高维空间的转换过程中存在的计算复杂性的增加和“维数灾难”等问题的出现,支持向量机使用了核函数,故不用担心非线性映射的显式表达式问题,直接构建它们在高维空间中的线性分类器,降低了整个过程中的计算复杂度。

◆常见的支持向量核函数包括线性核函数,多项式核函数,径向基函数和二层神经网络核函数等

◆支持向量机是典型的二分类算法,可以用于多个类别的划分问题,但是实现的效果不佳

◆支持向量机在小样本数据集中有很好的分类效果
 

原理
支持向量机是一种强大的分类算法,用于解决线性和非线性问题。SVM 的核心思想是找到数据点之间的最优边界,这个边界被称为“超平面”,它能够最大化地分开不同类别的数据点。

线性可分:在最简单的情况下,如果数据是线性可分的,SVM 会找到一个超平面,使得不同类别的数据点之间的间隔(或距离)最大化。
间隔最大化:SVM 试图最大化超平面到最近的数据点(支持向量)的距离,这些点决定了超平面的位置和方向。
软间隔和正则化:在现实世界的数据中,数据可能不是完全线性可分的。SVM 通过引入软间隔的概念来处理这种情况,允许一些数据点被错误分类,同时通过正则化项来控制模型的复杂度,防止过拟合。
核技巧:SVM 可以使用核函数将数据映射到更高维的空间,以解决非线性问题。常见的核函数包括线性核、多项式核、径向基函数(RBF)核等。
实现步骤
选择合适的核函数:根据数据的特点选择合适的核函数。
训练模型:使用训练数据来确定超平面的参数。
模型评估:在测试数据上评估模型的性能。
参数调优:通过调整参数(如C、γ等)来优化模型。
效果
高维数据处理:SVM 通过核技巧有效地处理高维数据。
稳健性:SVM 对异常值和噪声具有一定的鲁棒性。
泛化能力:通过间隔最大化,SVM 具有较好的泛化能力。
多类分类:SVM 可以通过一对一或一对多的策略扩展到多类分类问题。
优缺点
优点:
在高维空间中表现良好。
对于非线性问题,通过核技巧可以有效地处理。
通过软间隔和正则化,提高了模型的泛化能力。
缺点:
对于大规模数据集,训练过程可能比较慢。
对于新的核函数,选择合适的参数可能比较困难。
对于数据线性不可分的情况,需要选择合适的核函数和参数。
通俗易懂的解释
想象你有一个篮子,里面装着不同颜色的球,你需要将它们分成两堆。

原理:你找到一块木板,试图将它放在篮子里,使得一种颜色的球在木板的一侧,另一种颜色的球在另一侧。你希望木板与球之间的距离尽可能大,这样即使球稍微动一下,也不会跑到另一侧去。
实现步骤:
你首先尝试用木板直接分开球,这就像SVM在寻找线性可分的超平面。
如果有些球颜色很接近,你可能会稍微移动木板,允许一些球被错误地分到另一侧,这就是软间隔的概念。
如果球的大小不一,你可以想象将它们放在一个斜坡上,让木板斜着放,这样不同大小的球也能被分开,这类似于SVM的核技巧。
效果:通过这种方式,你可以非常准确地将球分开,即使有些球颜色很接近,也不会影响整体的分类效果。
优缺点:
优点是这种方法很直观,容易操作,而且对于大多数情况都能很好地工作。
缺点是如果球的颜色非常接近或者大小差异很大,你可能需要调整木板的位置和角度,这可能会稍微复杂一些。

13.分类算法- K近邻算法

K近邻算法(K-Nearest Neighbors,简称KNN)是一种基于实例的学习方法,或者说是一种懒惰学习算法。它的核心思想是:在特征空间中,通过测量不同特征值之间的距离来预测一个样本的类别。KNN算法不需要训练阶段,它直接将训练数据作为模型,通过查找测试数据点的K个最近邻居来进行分类。

通俗易懂讲解
想象一下,你是一个侦探,需要确定一个未知案件的类型。你手头有过去发生的各种案件的记录,每个案件都有一些特征,比如作案时间、地点、作案手法等。现在,你遇到了一个新案件,你不知道它属于哪种类型。

K近邻算法就像是你用一种“邻居投票”的方式来解决这个问题。你首先看看这个新案件周围有哪些“邻居”案件,也就是那些和它有相似特征的案件。然后,你选择这些邻居中最近的K个案件,看看它们大多数属于哪种类型,你就认为新案件也属于那种类型。

具体来说,K近邻算法的步骤如下:

确定K值:首先,你需要决定考虑多少个邻居。这个数字K就是算法的名字来源,它决定了你将参考多少个最近的案例。
计算距离:然后,你需要计算新案件和所有已知案件之间的距离。这通常使用欧氏距离,但也可以是曼哈顿距离或其他距离度量方式。
找到K个最近邻居:根据计算出的距离,找出距离新案件最近的K个案件。
进行投票:这K个案件中,每个案件都有一个标签,表示它的类型。然后,你统计这K个案件中每个类型的出现次数。
确定新案件的类型:最后,新案件被赋予出现次数最多的类型。
K近邻算法的优点是简单直观,不需要训练阶段,适用于分类和回归问题。但它也有缺点,比如计算成本高(因为需要在每个预测时都计算距离),对噪声数据敏感,以及需要合理选择K值等。

14.分类算法-贝叶斯网络

贝叶斯网络(Bayesian Network),又称为贝叶斯信念网络或贝叶斯概率图模型,是一种概率图模型,用于表示一组变量及其条件依赖关系的图形模型。贝叶斯网络由一个有向无环图(DAG)组成,图中的节点表示随机变量,而边表示变量之间的依赖关系。每个节点的条件概率表(CPT)定义了给定其父节点值时该节点的概率分布。

贝叶斯网络的核心是贝叶斯定理,它提供了一种在已知某些相关事件的概率下,计算一个事件发生概率的方法。贝叶斯网络利用这种定理来推断变量间的联合概率分布,从而进行概率推理、预测和决策。

通俗易懂讲解
想象一下,你是一个天气预报员,需要预测明天的天气。你知道一些因素,比如气压、湿度和风速,会影响天气。但是,这些因素之间也有相互影响,比如湿度可能会影响气压。

贝叶斯网络就像是你用来做预测的一张“因果关系图”。在这个图中,每个因素(比如气压、湿度)都是一个节点,节点之间的箭头表示一个因素如何影响另一个因素。比如,有一个箭头从湿度指向气压,表示湿度的变化可能会影响气压。

使用贝叶斯网络进行预测的步骤如下:

建立网络结构:首先,你需要画出所有的因素(节点)和它们之间的关系(箭头)。
填写条件概率表:对于每个因素,你需要知道在它的“父母”(即影响它的因素)有不同值时,它自己的概率分布是什么样的。这就像是你有一个表格,告诉你如果气压高,湿度大,风速快,那么下雨的概率是多少。
输入已知信息:在预测时,你会告诉网络一些已知的信息,比如今天的气压和湿度。
进行概率推理:网络会使用这些已知信息和条件概率表来计算其他因素(比如明天的天气)的概率。这就像是根据你今天观察到的情况,来推断明天可能的天气。
得出结论:最后,网络会告诉你明天下雨的概率是多少,或者其他你感兴趣的因素的概率。
贝叶斯网络的优点是能够处理复杂的因果关系,并且可以处理不确定性。但是,它也有局限性,比如需要准确的先验知识来构建网络,而且在变量很多时计算可能会变得复杂。

15.聚类算法概述

定义属于无监督学习,不需要标记原始数据,根据数据的固有的结构特征进行聚集。从而形成簇群,并实现数据的分离。

◆聚类和分类的主要区别

聚类不关心数据属于哪种类别,而是把具有相类似特征的数据聚集起来形成某一类别的簇。

◆聚类过程

首先选择有效的特征来构成特征向量,然后根据欧氏距离或其他距离函数来计算其相似度,从而实现对类别的划分,通过对聚类结果进行评估,逐步迭代并生成新的聚类。机器学习算法分类---聚类算法

聚类的应用领域

◆可用于发现不同公司客户群体的特征,消费者行为分析,市场细分,交易数据分析,动植物种群分类,医疗领域的疾病诊断,环境质量检测等领域,也可以用于Internet领域和电子商务领域中客户分析以及行为特征分类分析等

◆在数据分析的过程中,可以首先使用聚类来探索数据并发现其中包含的类别特征,然后使用分类等算法对每个类别的特征进行分析

聚类方法分类

基于层次的聚类(HierarchicalMethod),基于划分的聚类(PartitioningMethod,PAM),基于密度的聚类,基于约束的聚类,基于网络的聚类等。

◆基于层次的聚类:将数据集划分为不同的层次,并使用合并或者分解的操作进行聚类,主要包括BIRCH(BalancedIterativeReducingandClusteringusingHierarchies)、CURE(ClusteringUsingRepresentatives)等。

◆基于划分的聚类:将数据集划分为k个簇,然后计算其中的样本距离以获得假设簇的中心点,之后使用簇的中心点重新迭代计算新的中心点,直到k个簇的中心点收敛为止。基于划分的聚类有k-均值(k-means)等

◆基于密度的聚类

根据样本的密度不断增长聚类,最终形成一组“密集连接”的点集。

➢核心思想:只要数据的密度大于阈值,就可以将数据合并到一个簇当中,可以对噪声进行过滤,聚类的结果可以是任何形状的,不一定是凸形。

➢主要方法:DBSCAN(Density-BasedSpatialClusteringofApplicationwithNoise)、OPTICS(OrderingPointsToIdentifytheClusteringStructure)等。
 


聚类算法是一种无监督学习方法,其目标是将数据集中的样本划分为若干个簇(clusters),使得同一个簇内的样本之间相似度高,而不同簇之间的样本相似度低。聚类算法不依赖于预先标记好的数据,而是通过分析数据本身的结构来发现数据的内在模式。聚类算法广泛应用于市场细分、社交网络分析、生物信息学等领域。

聚类算法通常包括以下步骤:

选择聚类标准:定义样本之间的相似度或距离度量方式。
选择聚类算法:根据数据特性和需求选择合适的聚类方法。
初始化和迭代:随机选择初始簇中心或使用特定的初始化方法,然后通过迭代优化簇中心和样本的分配。
评估聚类效果:使用内部评价指标(如轮廓系数)或外部评价指标(如果可用)来评估聚类结果的质量。
通俗易懂讲解
想象一下,你是一个图书馆管理员,需要将一堆杂乱无章的书籍分类整理到不同的书架上。这些书籍没有明确的分类标签,但你可以根据书的封面颜色、大小、主题等特征来进行分类。

聚类算法就像是你用来整理书籍的一套规则。具体步骤如下:

确定分类标准:你首先决定根据什么特征来分类书籍,比如封面颜色、大小或者内容主题。
选择分类方法:你可以选择不同的方法来分类书籍,比如先把相同颜色的书放在一起,然后再根据大小或主题细分。
开始分类:你随机拿一本书,根据你选择的标准,决定把它放在哪个书架上。然后,你继续拿其他书,重复这个过程。
调整分类:在分类过程中,你可能会注意到有些书放错了地方,或者有些书架上的书籍不够整齐。这时,你可以调整书籍的位置,使得每个书架上的书籍更加一致。
评估分类效果:最后,你可能会问自己,这些书架上的书是否按照你最初的标准整齐地分类了。如果有朋友来帮忙,他们也可以看看你的分类是否合理。
聚类算法的关键在于找到一种方法,让相似的书籍(数据点)放在一起,而不同的书籍(数据点)分开。这有助于我们更好地理解数据,发现数据的内在结构。但聚类算法也有挑战,比如如何确定最佳的簇数量,以及如何处理高维数据。

16.聚类算法-K-means算法

K-means算法是一种常用的聚类算法,属于迭代式的优化算法。其目标是将n个样本划分到k个簇中,使得每个样本属于与其最近的均值(即簇中心)对应的簇,从而使得簇内的方差最小化。K-means算法通过迭代以下两个主要步骤来实现这一目标:

簇中心初始化:随机选择k个样本作为初始簇中心,或者使用特定的初始化方法。
迭代优化:重复以下两个子步骤直到收敛:
·样本分配:将每个样本分配到最近的簇中心,形成k个簇。
·更新簇中心:重新计算每个簇的中心,通常是簇内所有样本点的均值。
K-means算法的关键在于如何选择合适的簇数量k,以及如何初始化簇中心,因为它们直接影响聚类结果的质量和算法的收敛速度。

通俗易懂讲解
想象一下,你是一个农场主,需要将一群羊分成几个小组,以便更好地管理。但是,羊群中没有明确的标签来告诉你哪些羊应该分在同一个小组。这时,你可以使用K-means算法来帮助分组。

K-means算法的工作过程如下:

选择小组数量:首先,你决定要将羊分成几个小组,这个数字就是k。
随机选择组长:在羊群中随机选择k只羊作为每个小组的组长。
分配羊到小组:然后,你根据每只羊与各个组长的距离,将每只羊分配到最近的组长所在的小组。
更新组长位置:当所有羊都被分配到小组后,你重新计算每个小组的组长位置。新的组长位置是该小组内所有羊位置的平均点。
重复分配和更新:你不断重复上述分配羊到小组和更新组长位置的过程,直到组长的位置不再发生显著变化,或者达到一定的迭代次数。
完成分组:最后,当组长位置稳定下来,你就完成了羊群的分组。
K-means算法的优点是简单易懂,计算效率高,适用于大规模数据集。但它也有一些局限性,比如对初始簇中心敏感,可能导致局部最优解;而且k值的选择对结果有很大影响,但确定最佳k值没有统一的方法。此外,K-means假设簇是凸形的、相似大小的,并且簇的形状是球形的,这在现实世界的数据中并不总是成立。

17.聚类算法- DBSCAN算法

DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一种基于密度的聚类算法,它能够将具有足够高密度的区域划分为簇,并将那些低密度区域的点视为噪声点。DBSCAN不需要预先指定簇的数量,并且可以发现任意形状的簇,同时对噪声点具有很好的鲁棒性。

核心概念
核心点(Core Point):如果一个点在ε(Epsilon)距离内拥有至少MinPts(最小点数)个邻居点,则该点被认为是核心点。
边界点(Border Point):如果一个点不是核心点,但是位于核心点的ε距离内,则被认为是边界点。
噪声点(Noise Point):如果一个点既不是核心点也不是边界点,则被认为是噪声点。
算法步骤
选择一个点:随机选择一个点作为起始点。
搜索ε距离内的邻居:找出该点ε(Epsilon)距离内的所有点。
判断核心点:如果找到的邻居点数量大于等于MinPts,则该点是核心点。
形成簇:从核心点开始,将所有直接和间接的邻居点(通过核心点连接的点)加入到同一个簇中。
处理边界点和噪声点:将边界点归入最近的簇,将噪声点标记出来。
重复:重复上述步骤,直到所有点都被访问过。
通俗易懂讲解
想象一下,你在一个满是星星的夜空中,想要找出星星密集的区域,同时忽略那些零星散布的星星。DBSCAN算法就像是你手中的望远镜,你用它来观察天空中的星星:

选择一颗星星:你随机选择了一颗星星作为起点。
观察周围的星星:你用望远镜观察这颗星星周围一定范围内(ε距离)的星星。
判断是否是星团中心:如果在这个范围内,星星的数量足够多(至少MinPts颗),那么这颗星星就是星团的中心。
扩展星团:你继续观察,将所有与中心星星相连的星星(直接或间接相连)都归入同一个星团。
处理边缘星星:有些星星虽然靠近星团,但并不属于任何星团的中心,这些星星就是边缘星星,你可以将它们归入最近的星团。
标记孤立星星:那些既不属于星团中心也不靠近任何星团的星星,就是孤立的星星,可以被视为噪声。
重复观察:你继续用望远镜观察天空,直到所有的星星都被检查过。
通过这个过程,你就能够将夜空中的星星分为几个星团,并且识别出那些孤立的星星。DBSCAN算法在处理数据时也是类似的,它能够识别出数据中的密集区域(簇)和孤立的数据点(噪声)。

18.关联分析概述

◆关联分析(AssociativeAnalysis)是通过对数据集当中同时发生的事件的概率进行分析,从而挖掘它们之间是否存在一定的关联关系

◆关联分析的典型应用——购物篮分析,通过分析购物篮中不同商品之间的关联来分析消费者的消费行为,根据消费者的消费习惯制定个性化的营销策略,以支持产品促销,产品定价,产品地理位置的摆放等因素,除此之外,还可以用来划分不同的消费者群体。

◆关联分析主要包括的算法有:Apriori算法、FP-growth算法以及Eclat算法。


基本概念
项集(Item Set):项集是一组没有特定顺序的数据项的集合。
事务数据库(Transaction Database):事务数据库是一个包含多个事务的数据集,每个事务也是一个项集。
支持度(Support):支持度是衡量项集在事务数据库中出现的频率的指标。例如,如果项集{A, B}在100个事务中出现了15次,那么它的支持度是15%。
置信度(Confidence):置信度是衡量在项集A出现的情况下,项集B出现的条件概率。用公式表示为Conf(B|A) = P(A ∪ B) / P(A)。
提升度(Lift):提升度是衡量项集A和项集B同时出现的概率与它们各自独立出现概率的比值。提升度大于1表示两个项集有正相关。

19.关联分析算法-Apriori算法
 

Apriori算法是一种经典的关联规则学习算法,用于在给定的数据集中找出频繁项集和关联规则。它基于先验概率的概念,即如果一个项集是频繁的,那么它的所有子集也必然是频繁的。以下是Apriori算法的详细介绍:

算法原理
Apriori算法的核心原理是利用频繁项集的子集也必须是频繁的这一性质,通过迭代的方式生成候选项集,并计算它们的支持度。

输入和输出
输入:事务数据库,最小支持度阈值(minSupport)。
输出:频繁项集,以及满足最小置信度阈值的关联规则。
算法步骤
生成初始候选项集:从单个项开始,生成所有可能的项集(即1-项集),并计算它们的支持度。
过滤候选项集:保留支持度大于等于minSupport的项集,这些是频繁项集。
生成新的候选项集:使用上一轮的频繁项集,根据Apriori属性生成新的候选项集(长度增加1)。
迭代过程:重复步骤2和3,直到无法生成新的候选项集或所有候选项集的支持度都小于minSupport。
生成关联规则:使用频繁项集生成关联规则,并通过最小置信度阈值(minConfidence)进行过滤。
关键概念
支持度(Support):项集在所有事务中出现的频率。
置信度(Confidence):在项集A出现的情况下,项集B出现的条件概率。
提升度(Lift):项集A和B同时出现的概率与它们各自独立出现概率的比值。
Apriori算法的优缺点
优点:
原理简单,易于理解。
能够发现所有频繁项集。
可以生成有意义的关联规则。
缺点:
在大数据集上效率较低,因为需要多次扫描数据库。
候选项集的生成和测试可能需要大量的计算资源。
对于具有大量项的数据集,可能生成大量的候选项集。

例子场景
假设我们有一家小型超市,超市的交易记录如下:

事务ID    购买的商品集合
1    {牛奶, 面包, 鸡蛋}
2    {面包, 黄油, 牛奶}
3    {面包, 牛奶, 鸡蛋, 饼干}
4    {黄油, 饼干}
5    {牛奶, 鸡蛋}
我们想要找出这个超市中哪些商品经常一起被购买,即频繁项集。我们假设最小支持度阈值是50%(即至少在一半的事务中出现)。

Apriori算法步骤
步骤1: 生成初始候选项集
我们首先生成所有可能的单个商品的项集(1-项集):

{牛奶}
{面包}
{鸡蛋}
{黄油}
{饼干}
步骤2: 计算支持度并过滤
我们计算每个1-项集的支持度:

牛奶:4/5 = 80%
面包:3/5 = 60%
鸡蛋:3/5 = 60%
黄油:2/5 = 40%
饼干:2/5 = 40%
根据最小支持度50%,我们保留牛奶、面包和鸡蛋这三个项集。

步骤3: 生成新的候选项集
使用这些频繁项集,我们生成2-项集:

{牛奶, 面包}
{牛奶, 鸡蛋}
{面包, 鸡蛋}
步骤4: 计算支持度并过滤
我们计算每个2-项集的支持度:

{牛奶, 面包}:3/5 = 60%
{牛奶, 鸡蛋}:3/5 = 60%
{面包, 鸡蛋}:2/5 = 40%

根据50%的最小支持度阈值,我们保留{牛奶, 面包}和{牛奶, 鸡蛋}这两个2-项集,因为它们的支持度都达到了60%,而{面包, 鸡蛋}的支持度只有40%,所以被排除。

步骤5: 检查是否需要进一步迭代
由于{牛奶, 面包}和{牛奶, 鸡蛋}的支持度都达到了50%,我们可以考虑生成3-项集。然而,由于事务ID 4和5中没有同时包含面包和鸡蛋,我们无法生成包含这三个商品的3-项集。因此,我们不需要进一步迭代。

步骤6: 生成关联规则
现在我们有了一些频繁项集,我们可以开始生成关联规则。关联规则由两个部分组成:前件(antecedent)和后件(consequent)。例如,我们可以从{牛奶, 面包}生成以下关联规则:

如果顾客购买了牛奶,那么他们有60%的概率也会购买面包。这可以表示为:牛奶 => 面包(置信度60%)
同样,我们可以从{牛奶, 鸡蛋}生成关联规则:

如果顾客购买了牛奶,那么他们有60%的概率也会购买鸡蛋。这可以表示为:牛奶 => 鸡蛋(置信度60%)
步骤7: 评估关联规则的强度
除了置信度之外,我们还可以计算提升度来评估关联规则的强度。提升度是衡量关联规则的预测能力的一个指标,计算公式为:

提升度小于1,这表明牛奶和面包的共现概率并不比它们各自独立出现的概率高。

总结
在这个例子中,我们使用Apriori算法找到了两个频繁2-项集:{牛奶, 面包}和{牛奶, 鸡蛋}。然后,我们基于这些频繁项集生成了关联规则,并计算了它们的置信度和提升度。通过这些规则,超市经理可以了解哪些商品经常一起被购买,从而做出更明智的商品摆放和促销决策。

20.回归分析概述

回归分析是一种统计学方法,用于研究一个或多个自变量(解释变量)与因变量(响应变量)之间的关系。其目的是建立一个模型,以便能够预测或估计因变量的值,或者理解自变量对因变量的影响。以下是回归分析的概述:

基本概念
自变量(X):影响因变量的变量,可以是定量的或定性的。
因变量(Y):被预测或被估计的变量,通常是定量的。
回归线:在二维空间中,表示自变量和因变量之间关系的直线。
回归分析的类型
线性回归:自变量和因变量之间的关系是线性的,即Y = β0 + β1X + ε,其中β0是截距,β1是斜率,ε是误差项。
多项式回归:自变量和因变量之间的关系是非线性的,可以通过增加自变量的高次项来建模。
逻辑回归:用于因变量是分类变量的情况,特别是二分类问题。
多元回归:涉及两个或更多自变量的情况。
回归分析的步骤
问题定义:明确研究目标和问题。
数据收集:收集相关数据,包括自变量和因变量。
数据探索:检查数据的分布、异常值、缺失值等。
选择模型:根据数据特点和研究目的选择合适的回归模型。
模型拟合:使用统计方法估计模型参数。
模型评估:评估模型的拟合优度和预测能力,常用的指标有R²(决定系数)和调整R²。
模型诊断:检查模型是否满足线性回归的基本假设,如线性、独立性、同方差性和正态性。
结果解释:解释回归系数的意义,评估自变量对因变量的影响。
预测或决策:使用模型进行预测或支持决策。
回归分析的关键指标
R²(决定系数):衡量模型解释的变异性比例,R²值越高,模型的解释能力越强。
调整R²:对R²进行调整,以考虑模型中自变量的数量。
F统计量:用于检验模型整体的显著性。
t统计量:用于检验单个回归系数的显著性

21.回归算法-线性回归

在使用线性回归进行数据分析时,要求自变量是连续的,换句话说,线性回归是使用直线(也称之为回归线)来建立因变量与一个或者多个自变量之间的联系。

•主要特征:

①自变量和因变量之间的关系是线性的。

②多重共线性,自相关和异方差对多元线性回归的影响均较大。

③线性回归对异常值非常地敏感,异常值的存在会影响预测的结果。

④当同时处理的自变量较多时,需要使用逐步回归的方式来逐步确定显著性变量,而无需人工干预

核心思想:

逐个引入自变量至模型中,并执行F检验,t检验等来对变量进行筛选,当新的变量被引入且模型的结果不能得到优化时,对该变量的操作即是消除,直至模型的结果相对稳定为止。

逐步回归的目的:

选择重要的自变量,使用最少的变量来实现具有最大化预测能力的模型。

在选择变量的同时,逐步回归也是降维技术的一种,其主要方法包括前进法和后退法

◆前进法:首先选择最显著的变量,之后逐渐增加次显著变量;

◆后退法:首先选择所有的变量,并且逐渐剔除不显著的变量,即无关紧要的变量。
 

22.回归分析-逻辑回归

逻辑回归是一种统计方法,用于处理因变量是分类变量的情况,尤其是二分类问题。尽管称为"回归",逻辑回归实际上是一种分类算法。它通过使用逻辑函数(通常是Sigmoid函数)将线性回归模型的输出映射到0和1之间,从而预测概率。

逻辑回归模型通常表示为:

逻辑回归的关键目标是:

估计模型参数(系数)。
预测新观测属于特定类别的概率。
评估分类的准确性。
模型参数通常通过最大似然估计(MLE)来估计,这涉及到最大化观测数据的似然函数。

通俗易懂介绍
想象一下,你是一家银行的信贷经理,你需要决定是否批准客户的贷款申请。逻辑回归就像是你用来评估申请的决策工具。

步骤1:定义问题
你首先确定你想要解决的问题:基于客户的不同特征(如收入、信用评分、工作稳定性等),预测他们是否会违约。

步骤2:收集数据
你收集了一系列历史贷款申请数据,包括每个申请者的特征和最终是否违约的结果。

步骤3:探索数据
在分析之前,你检查数据以确保没有错误,比如某个客户的收入被错误地记录为异常高或异常低。

步骤4:选择模型
你决定使用逻辑回归模型,因为你需要预测违约的概率,这是一个二分类问题。

步骤5:建立模型
你使用收集的数据来建立一个模型,这个模型可能是:“违约概率 = 1 / (1 + e^-(截距 + 收入系数 * 收入 + 信用评分系数 * 信用评分 + ...))”。

步骤6:评估模型
你计算模型的准确率、召回率、精确度和其他指标,以评估模型的预测能力。

步骤7:检查模型假设
你确保数据满足逻辑回归的基本假设,比如没有完全分离的数据,自变量之间没有多重共线性等。

步骤8:解释结果
你根据模型的系数来解释每个特征对违约概率的影响。如果收入系数是负的,那就意味着收入越高,违约概率越低。

步骤9:应用模型
现在,你可以使用这个模型来评估新的贷款申请,预测申请人的违约概率,并据此做出批准或拒绝的决策。

23.深度学习

◆深度学习方法:使用多个隐藏层和大量数据来学习特征,以提高分类或预测的准确性,与传统的神经网络相比,它不仅具有更多的层次,而且还采用了逐层的训练机制来对整个网络进行训练,以防止梯度扩散

◆深度学习:受限玻尔兹曼机(RBM),卷积神经网络(CNN),深度神经网络(DNN),对抗性神经网络(GAN),深度信念网络(DBN),层叠自动编码器(SAE),循环神经网络(RNN),以及各种变体的网络结构

◆这些深度神经网络可以对训练集数据进行特征提取以及模式识别,然后应用

◆受限玻尔兹曼机(RBM)主要解决概率分布问题,该算法是玻尔兹曼机的一种变体,是基于物理学中的能量函数进行建模,“受限”指的是层与层之间存在着连接,层内的单元之间并没有连接

◆RBM使用随机神经网络来对概率图模型(ProbabilisticGraphicalModel)进行解释,所谓“随机”是指网络中的神经元是随机神经元

◆输出的状态仅有两种:即未激活状态与激活状态,具体处于哪一个状态是由概率统计而定的。

◆卷积神经网络(ConvolutionalNeuralNetwork)中,卷积指的是源数据和滤波矩阵之间的内积运算,以实现特征权重的融合,并且可以通过设置不同的滤波矩阵来对不同的特征进行提取。

◆优点:将大量复杂的特征进行抽象和提取,并且极大程度地减少模型的计算量

◆应用:图像识别,文本分类等领域

◆深度信念网络(DBN)由杰弗里·欣顿(GeoffreyHinton)提出,作为早期深度生成式模型的代表,初衷是在样本的数据与标签之间建立联合分布。

◆DBN是由多个RBM层组成的,RBM层中的神经元分为两个类别:分别是可见神经元以及隐性神经元。可见神经元是接收输入的神经元,而提取特征的神经元称之为隐藏神经元

◆通过对神经元之间的权重进行训练,训练生成的模型既可以用于特征的识别,也可以使整个神经网络根据最大概率生成训练数据

◆长短期记忆(LongShort-termMemory,LSTM)神经网络,是一种循环神经网络,它具有长期和短期记忆,具有更好的控制记忆的能力,避免了梯度衰减,以及经过层层传递的值,最终出现退化的现象。

◆在LSTM的结构中,采用一个称为“门(gate)”的结构或者记忆单元来进行内存的控制,该门实现在正确的时间传输或重置其值

◆优点:LSTM除了具有其他循环神经网络的优点之外,还具备更好的记忆能力

◆应用:自然语言处理,语言翻译以及智能问答等

◆深度学习方法在图像,视频识别,模式检测,音频以及分类等多个领域均已经非常成熟。

◆在将深度学习的相关方法应用于实际的数据分析时,请注意训练集:验证集:测试集之间的样本分配通常为6:2:2比例分布。

◆使用深度学习的相关方法进行数据分析时,对数据量也有一定要求,如果数据量很少,只有几千条数据甚至几百条数据,那么过拟合的问题就很容易发生,其训练的效果可能还不如采用支持向量机等分类算法进行数据分析。
 

24.机器学习的一般流程

(1)定义分析目标
明确目标任务是第一个需求,也是选择合适的机器学习算法的关键所在。通过阐明业务需求以及要解决的实际问题,才能根据现有的数据进行模型的设计以及算法的选择。

在监督学习中,分类算法用于定性问题,而回归方法用于定量分析。

在无监督学习中,如果存在样本分割,则可以应用聚类算法。如果需要找出各种数据项之间的内部联系,则可以应用关联分析。

(2)收集数据
1.数据应具有代表性,并尽可能地覆盖区域,不然的话,可能出现过拟合和欠拟合的情况。

2.样本数据应平衡。在分类问题的范畴中,如果存在不同类别之间的样本比例较大的情况或者样本数据不平衡的现象,均会影响最终模型的性能。

3.评估数据的量级,包括特征的数量以及样本的数量。根据这些指标估计数据和分析对内存的消耗,并判断在训练过程中内存是否过大,如果内存过大则需要对算法进行优化、改进,或者通过对某些降维技术的使用实现内存消耗合理化,必要的话甚至还会采用一些分布式机器学习的技术。

(3)整理预处理
1.数据探索

首先通过对数据进行一定的探索,了解数据的基本结构,数据的统计信息,数据噪声和数据分布等相关信息。

为了更好地对数据的状况进行查看以及数据模式的获取,可以采用数据质量评估以及数据可视化等相关方法来评估数据的质量。

2.数据处理

经过步骤1,可能会发现很多数据质量的问题,例如缺失值,不规则的数据,数据的分布不平衡,数据异常和数据冗余等问题。这些问题的存在将严重降低数据的质量。

数据预处理的操作也是非常重要,在生产环境中的机器学习中,数据通常是原始的,未经过加工以及处理的,而数据预处理的工作通常占据着整个机器学习过程中的绝大部分时间。

常见的数据预处理的方法:缺失值处理,离散化,归一化,去除共线性等方法是机器学习算法。整理预处理

(4)数据建模
采用特征选择的方法,可以实现从大量的数据中提取适当的特征,并将选择好的特征应用于模型的训练中,以获得更高精度的模型。

筛选出显著特征需要对业务有非常充分的了解并分析数据。特征选择是否合适通常会对模型的精度有非常直接的影响。选择好的特征,即使采用较为简单的算法,也可以获得较为稳定且良好的模型。

特征有效性分析的技术:相关系数、平均互信息、后验概率、卡方检验、条件熵、逻辑回归权重等方法。

在训练模型之前,通常将数据集分为训练集与测试集,有的时候,会将训练集继续细分为训练集和验证集,以评估模型的泛化能力。

模型本身不存在好坏之分。在进行模型的选择时,通常,没有哪一种算法在任何情况下都能够表现良好,在实际进行算法的选择时,通常,采用几种不同的算法同时进行模型的训练,之后再比较它们之间的性能,并选择其中表现最佳的算法。

不同的模型采用不同的性能指标。

(5)模型训练
在模型训练的过程中,需要调整模型的超参数。

在训练的过程中,对机器学习算法的原理以及其推导的过程的要求越高,对机器学习算法的了解越深,就越容易找到问题出现的原因,从而进行合理的模型调整。

(6)模型评估
利用测试集数据对模型的精度进行评估与测验,以便评估训练模型对新数据的泛化能力。

假如评估的效果不是很理想,那么就需要分析模型效果不理想的原因并对训练模型进行一定的优化与改进,例如手动调整参数等改进方法。

评估不理想,需要首先诊断模型以确定模型调整的正确思路与方向。过度拟合和欠拟合问题的判断是模型诊断中的重要步骤。

典型方法:绘制学习曲线和交叉验证。

如何解决:

出现过度拟合问题时,其模型的基本调整策略是在增加数据量的同时能够降低模型的复杂度,也可以采用正则化的方法来提高训练模型的泛化能力。

对于模型欠拟合的问题,其模型的基本调整策略是在增加特征数量和质量的同时也增加模型的复杂度。

误差分析是通过对产生误差的样本进行观察并且分析误差的原因。

误差分析的过程:由数据质量的验证,算法选择的验证,特征选择的验证,参数设置的验证等几部分。对数据质量的验证非常重要,通常对参数进行反复地调整,在调整了很长时间之后,才发现数据预处理效果不佳,数据的质量存在一定的问题。

调整模型后,需要对其进行重新训练以及模型评估。

建立机器学习模型的过程也是不断尝试的过程,直至最后模型达到最佳且最稳定的状态。

在工程实施方面,主要通过预处理、特征清理以及模型集成等方式来提高算法的精确度以及泛化能力。

通常,直接对参数进行调整的工作不是太多。因为当数据的量级达到一定的程度时,其训练的速度非常地缓慢,并且不能保证效果。

(7)模型应用
模型的应用主要和工程的实施有很大的关系。

工程以结果为导向的,模型在线执行的效果与模型的质量有着非常直接的关系,不仅简单地包括其准确性,误差等方面的信息,还包括其资源消耗的程度(空间复杂度)、运行速度(时间复杂度)以及稳定性是否可以接受等方面的问题。
 

 


 

END

我的焦虑是荒山上的一束火花,期待一滴春雨落下,我还它灿烂满山。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

peachcobbler

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

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

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

打赏作者

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

抵扣说明:

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

余额充值