点一下关注吧!!!非常感谢!!持续更新!!!
目前已经更新到了:
- Hadoop(已更完)
- HDFS(已更完)
- MapReduce(已更完)
- Hive(已更完)
- Flume(已更完)
- Sqoop(已更完)
- Zookeeper(已更完)
- HBase(已更完)
- Redis (已更完)
- Kafka(已更完)
- Spark(已更完)
- Flink(已更完)
- ClickHouse(已更完)
- Kudu(已更完)
- Druid(已更完)
- Kylin(已更完)
- Elasticsearch(已更完)
- DataX(已更完)
- Tez(已更完)
- 数据挖掘(正在更新…)
章节内容
上节我们完成了如下的内容:
- Tez 基本介绍
- Tez 配置使用
简单案例
在一个酒吧里,吧台上摆着十杯几乎一样的红酒,老板说想不想玩个游戏,赢了免费喝酒,输了需要付三倍的酒钱。眼前的十杯红酒,每杯都略有不同,前五杯属于【赤霞珠】,后五杯属于【黑皮诺】,现在重新倒一杯酒,你需要正确的说出属于哪一类?
我的问题 :
算法体系
机器学习(Machine Learning, ML)是人工智能(AI)的一个分支,旨在通过数据和算法使计算机系统能够像人类一样学习和做出决策,而无需明确编程指令。机器学习的核心是从数据中提取模式,并使用这些模式对新数据进行预测或分类。
机器学习 h的方法是基于数据产生的模型算法,也称学习算法。包括有:
- 有监督学习 (supervised learning)
- 无监督学习(unsupervised learning)
- 半监督学习(semi-supervised learning)
- 强化学习(reinforcement learning)
机器学习是一种基于数据的学习方法,它依赖于大规模数据的分析,通过算法构建模型,使机器能够从数据中学习经验,进行预测、分类、聚类等操作,而无需人工明确设定规则。
有监督学习(Supervised Learning)
指对数据的若干特征与若干标签(类型)之间的关联性进行建模,只要模型被确定,就可以用用到新的未知数据上。
这类学习过程可以进一步为:【分类】classification 任务 和 【回归】regression 任务。
- 分类任务中,标签都是离散值
- 回归任务中,标签都是连续值
监督学习是指算法在训练过程中依赖标注好的数据集。数据集中的每一个样本都有一个对应的正确输出,算法通过这些“输入-输出”对,学习如何从输入数据预测输出。
- 应用:分类问题(如垃圾邮件识别)、回归问题(如房价预测)。
- 常见算法:线性回归、决策树、随机森林、支持向量机(SVM)、神经网络等。
无监督学习(Unsupervised Learning)
指对不带任何标签的数据特征进行建模,通常被看成一种“让数据自己介绍自己”的过程。
这类模型包括【聚类】clustering 任务 和 【降维】dimensionality reduction 任务。
无监督学习是指算法在没有标注数据的情况下进行训练,算法通过分析输入数据本身的特征或结构来进行学习。其目标是发现数据中的隐藏模式或群组。
- 应用:聚类分析(如用户分群)、降维(如主成分分析)。
- 常见算法:K均值聚类、层次聚类、主成分分析(PCA)、自编码器等。
半监督学习
另外,还有一种半监督 semi-supervised leaning 方法,介于有监督学习和无监督学习之间,通过可以在数据不完整的时候使用。
强化学习 (Reinforcement Learning)
强化学习不同于监督学习,它将学习看作是试探评价过程,以试错的方式学习,并与环境进行交互已获得惩罚指导行为,以其作为评价。
此时系统靠自身的状态和动作进行学习,从而改进行动方案以适应环境。
强化学习是通过与环境互动来学习策略的过程。算法通过不断尝试并接收环境的反馈(奖励或惩罚),来优化自己的行为决策。
- 应用:机器人控制、自动驾驶、游戏AI。
- 常见算法:Q学习、深度Q网络(DQN)、策略梯度方法等。
输入输出空间与特征空间
在上面的场景中,每一杯酒作为一个样本,十杯就组成一个样本集。酒精浓度、颜色深度等信息称做【特征】。这十杯酒分布式在一个【多维特征空间】中。
进入当前程序的“学习系统”的所有样本称做【输入】,并组成【输入空间】。
在学习过程中,所产生的随机变量的取值,称做【输出】,并组成【输出空间】。
在有监督的学习过程中,当输出变量均为连续变量时,预测问题成为回归问题,当输出量为有限个离散变量时,预测问题称为分类问题。
过拟合和欠拟合
当假设空间中含有不同复杂的模型时,就要面临模型选择的问题。
我们希望获得的新样本上能表现得很好的学习器,为了达到这个目的,我们应该从训练样本中尽可能学习到适用于所有潜在样本的“普遍规律”。
我们认为假设空间存在这种“真”模型,那么所选择的模型应该逼近真模型。
拟合度可以简单理解为模型对与数据集背后客观规律的掌握程度,模型对于给定数据集如果拟合度较差,则对规律的捕捉不完全,用作分类和预测时可能准确率不高。
换句话说,当模型把训练样本学的太好了,很可能已经训练样本本身的一些特点当作所有潜在样本的普遍性质,这时候所选的模型的复杂度往往会比真的模型要高,这样就会导致泛化性能下降,这种现象叫做过拟合(overfitting)。可以说,模型选择皆在避免过拟合并提高模型的预测能力。
与过拟合相对的是欠拟合(under fitting),指在学习能力低下,导致对训练样本的一般性质尚未学好。
- 虚线:针对训练数据集计算出来的分数,即针对训练数据集拟合的准确性。
- 实线:针对交叉数据集计算出来的分数,即针对交叉验证数据集预测的准确性。
上图中【左图】的内容,一阶多项式,欠拟合:
- 训练数据集的准确性(虚线)和交叉验证数据集的准确性(实现)靠的很近,总体水平比较高。
- 随着训练数据集的增加,交叉验证数据集的准确性(实现)逐渐增大,逐渐和训练数据集的准确性(虚线)靠近,但总体水平比较低,收敛在 0.88 左右。
- 训练数据集的准确性也比较低,收敛在 0.90 左右
- 当发生高偏差时,增加训练样本数量不会对算法准确性有较大的改善
上图中【中图】的内容,三阶多项式,较好拟合了数据集:
- 训练数据集的准确性(虚线)和交叉验证数据集的准确性(实线)靠的很近,总体水平较高。
上图中【右图】的内容,十阶多项式,过拟合:
- 随着训练数据集的增加,交叉验证数据集的准确性(实现)也在增加,逐渐和训练数据集的准确性(虚线)靠近,但两者之间的间隙比较大。
- 训练数据集的准确性很高,收敛在 0.95 左右
- 交叉验证数据集的准确性较低,最终收敛在 0.91 左右。
从上图我们看出,对于复杂的数据,低阶多项式往往是欠拟合的状态,而高阶多项式则过分捕捉噪声数据的分布规律,而噪声数据之所以称为噪声,是因为其分布毫无规律可言,或者其分布毫无价值,因此就算高阶多项式在当前训练集上拟合度很高,但其捕捉到无用规律无法推广到新的数据集上,因此该模型在测试数据集上执行过程将会有很大误差,即模型训练误差很小,但泛化的误差会很大。
机器学习的工作流程
机器学习通常包含以下几个步骤:
数据收集与预处理
数据是机器学习的基础。通常从各种来源收集数据,然后进行清洗、归一化、处理缺失值等预处理操作,以确保数据的质量。
特征工程
特征工程是指从原始数据中提取有用的特征。这一步骤对模型的性能至关重要。常见的特征处理方法包括特征选择、特征缩放、编码等。
模型选择
根据问题的类型(分类、回归、聚类等)选择适合的算法模型。不同的算法适用于不同类型的数据和任务。
模型训练
将预处理后的数据输入到选定的机器学习算法中,使用数据集中的训练数据让模型学习如何做出预测。
模型评估
训练完成后,使用测试集评估模型的性能。常用的评估指标包括准确率、精确率、召回率、F1分数、均方误差等。
模型调优
通过调整模型的参数或引入更多数据等手段,进一步优化模型的表现。
模型部署与应用
一旦模型通过了评估,它就可以被部署在实际应用中,比如推荐系统、自动驾驶、语音识别等。
常见的机器学习算法
- 线性回归(Linear Regression):用于解决回归问题的基础算法,寻找输入变量和输出变量之间的线性关系。
- 逻辑回归(Logistic Regression):用于二分类问题的算法,输出一个概率值,表示输入数据属于某一类别的可能性。
- 决策树(Decision Tree):一种基于树形结构的分类或回归算法,通过递归划分数据空间来构建模型。
- 随机森林(Random Forest):决策树的集成方法,通过训练多个决策树并综合其预测结果,提高模型的准确性和鲁棒性。
- 支持向量机(SVM):用于分类和回归问题,能够找到最优的决策边界来最大化不同类别的分隔。
- K均值聚类(K-Means Clustering):一种无监督学习算法,用于将数据点分成k个簇,使得同一簇内的数据点尽可能接近。
- 神经网络(Neural Networks):模仿人脑神经元的工作方式,由多层神经元组成,用于处理复杂的非线性问题。
机器学习面临的挑战
- 数据质量:模型的性能很大程度上依赖于数据的质量和数量,缺失值、噪声、偏差等问题都会影响学习效果。
- 模型过拟合:模型在训练数据上表现优异,但在新数据上效果不佳,称为过拟合。这通常发生在数据量少且模型复杂的情况下。
- 可解释性:复杂的机器学习模型(如深度学习)往往难以解释其内部的决策逻辑,使得模型的透明度和信任度成为一个问题。