【机器学习之路】开山篇 | 机器学习介绍及其类别和概念阐述
🤵♂️ 个人主页: @计算机魔术师
👨💻 作者简介:CSDN内容合伙人,全栈领域优质创作者。
@toc
前言
本篇文章是该专栏的首篇文章,本专栏对书籍《机器学习实战》、《机器学习》(瓜书)进行内容核心总结和扩展,旨在打造稳扎稳打的基础。
本专栏涵盖一下主题:
- 机器学习系统主要类别及其基本概念
- 机器学习项目中的步骤
- 将数据与模型拟合学习
- 优化成本函数
- 数据预处理(处理、清洁、数据准备…)
- 特征工程(选择和工程化特征)
- 选择模型并用交叉验证调整超参数
- 欠拟合和过拟合的挑战(偏差/方差的权衡)
- 常见的学习算法:线性与多项式回归、逻辑回归等
- 降维度(“维度的诅咒”)
- 无监督学习技术(聚类、异常检测…)
首先本篇文章对机器学习进行一个大概介绍,从其发展历程到其使用进行一个大致的阐述,并对主要类别和基本概念进行总结
一、机器学习概览
机器学习其实在很早就已经存在,不过第一个影响数亿人的机器学习应用才变成主流,它就是垃圾邮件过滤器。后来也出现了数以百计的机器学习应用在人们的生活中。
机器学习有着一个比较工程化的定义:
一个计算机程序利用经验E来学习任务T,性能是P,如果针对任务T的性能随着经验E不断增长,则称为机器学习
而其中特别的,使用机器学习方法挖掘大量数据来帮助发现不太明显的规律,就叫做数据挖掘。
机器学习这片大陆主要地区为下:
- 监督学习 | 非监督学习 | 半监督学习 | 强化学习 (是否在人类监督下训练)
- 在线学习 | 批量学习 | 迭代学习 | 增量学习(是否可以动态的增量学习)
- 基于实例学习 | 基于模型学习 (是简单的根据新的数据点和已知数据点进行匹配,还是进行模式监测建立模型)
1.1 有监督学习和无监督学习
根据训练期间所接受的监督数量和类别分为以下四个主要类别:
监督学习 | 非监督学习 | 半监督学习 | 强化学习
1.1.1 监督学习
在有监督学习中,提供给算法包含对应所需解决方案的训练集称为标签。例如邮件垃圾过滤器。
另一个是通过给定对应的特征(房子位置,大小)来预测一个目标数值(房价),这种任务任务称为回归,这需要大量的数据,包括他们的标签(即房价),其中回归算法也可以用与分类任务,二者的界限有时有点模糊,比如逻辑回归被用于分类,因为它可以输出某一个给定类别的概率。
这里是一些比较重要的有监督学习
- K - 近邻算法
- 线性回归
- 逻辑回归
- 支持向量机(SVM)
- 决策树和随机森林
- 神经网络(也可以是无监督或半监督)
1.1.2 无监督学习
顾名思义,其数据集都是未经标记的,系统需要自己学习。
这里是一些比较重要的无监督学习
- 聚类算法
-
- K-均值算法
-
- DBSCAN
-
- 分层聚类分析(HCA)
- 异常监测和新颖性监测
-
- 单类SVM
-
- 孤立森林
- 可视化和降维
-
- 主成分分析(PCA)
-
- 核主成分分析
-
- 局部线性嵌入(LLE)
-
- t-分布随机近邻嵌入
- 关联规则学习
-
- Apriori
-
- Eclat
1.1.3 半监督学习
由于通常给数据做标记是非常耗时和昂贵的,会有很多未标记少量以标记的数据,而能够处理部分已标记的数据,这被称为半监督学习。大多数半监督都是无监督和有监督算法的结合。
1.1.4 强化学习
强化学习可以观察环境,做出选择,执行动作,获得对应奖励或惩罚,它必须要自行学习什么是最好的策略,从而随着时间推移获得最大的回报。其中ALphaGo项目便是一个好示例,打败围棋冠军。、
1.2 批量学习和在线学习
1.2.1 在线学习
在线学习意思是可以循环渐进的给系统提供训练数据(可以是单个实例,也可以小批量),模型根据这个数据反馈可以快速进行调整,并不断地更新模型参数,直到收敛为止。在线学习适合于样本不停变化的场景,使其能够适应新数据并提供实时的预测或决策。在线学习常用于需要处理流数据或实时数据的场景,例如金融交易、广告推荐、智能监控等。如果计算资源有限,在线学习学习了新的数据实例,便可以将其丢掉(除非需要回滚状态)
1.2.2 增量学习
增量学习是指在训练数据集发生变化时,可以通过在原有模型基础上进行微调或增加新的训练数据,来更新和改进现有模型。这种方法可以帮助模型适应新的数据和场景,同时减少重新训练整个模型的时间和资源开销。
增量学习更侧重于离线的批量更新,适用于批量数据的更新和训练;而在线学习更侧重于实时更新,适用于实时数据的处理和训练。
1.2.3 核外学习
核外算法可以处理计算机主内存无法应对的大量数据。 它将数据分割成小批量,然后使用在线学习技术从这些小批量中学习
如果面对着超级大的数据集,超过了一台计算机的主存的数据,在线学习同样适用,算法每次只加载部分数据,并针对此数据训练,不断重复直到完成所有数据的训练,特别的是:核外学习是离线完成的,不在实时系统上,所以避免产生误解,视为核外学习。 核外学习算法通常是基于迭代的,其中每个迭代处理一个或多个数据块。在每个迭代中,算法使用梯度下降等方法更新模型参数,并使用新的参数在下一个迭代中处理新的数据块。
常见的核外学习算法包括
- 随机梯度下降(Stochastic Gradient Descent,SGD)
- 均值移动(Moving Averages,MA)
- 均值随机梯度下降(Stochastic Gradient Descent with Averaging,SGDA)
- 自适应随机梯度下降(Adaptive Gradient Descent,AdaGrad)
1.2.4 批量学习
在批量学习中,系统无法进行增量学习——即必须使用所有可用数据进行训练。需要大量计算资源和时间,所以一般都是离线进行的,如果希望批量学习系统可以学习新数据(比如新型垃圾邮件),就需要在完整的数据(旧和新的一起)训练出新版本,在停用旧系统,上线新系统。不过幸运的是,整个训练、评估、启动系统过程都可以实现自动化,缺点是需要很长时间,如果是面对预测股票价格,那么需要一个更具响应力的解决方案, 显然就是上文所说的在线学习。
1.3 基于实例的学习与基于模型的学习
1.3.1 基于实例的学习
我们知道,平日我们最常见的学习方法便是死记硬背,如果以这种方式创建一个垃圾邮箱过滤器,那么他只会标记完全一样的垃圾邮件,或者根据相似度度量二者相似性(比如单词相同数), 最常见的一个基于实例的学习便是 K–近邻回归(如:根据老师三个邮件的单词次数平均值)
1.3.2 基于模型的学习
从一组数据中训练,构建可以泛化的模型,比如为呈线性相关的数据集选择线性模型,而要拟合自然需要对应的参数,而参数就是通过训练所得到,如最小二乘法,梯度下降算法。
简而言之:
- 研究数据
- 数据预处理
- 数据可视化分析
- 选择模型
- 训练模型
- 预测新实例
以上就是一个典型的机器学习项目流程
以上你已经知道什么是真正的机器学习,为何而用,常见类别有哪些,典型的项目工作流程,下一文我们将会聊聊学习过程会遇到哪些阻碍做出准确预测的问题。
🤞到这里,如果还有什么疑问🤞
🎩欢迎私信博主问题哦,博主会尽自己能力为你解答疑惑的!🎩
🥳如果对你有帮助,你的赞是对博主最大的支持!!🥳
- 点赞
- 收藏
- 关注作者
评论(0)