机器学习概念
什么是机器学习?当前并没有一个统一的定义,常见的观点有:
- 机器学习是一门人工智能的科学,该领域的主要研究对象是人工智 能,特别是如何在经验学习中改善具体算法的性能;
- 机器学习是对能通过经验自动改进的计算机算法的研究;
- 机器学习是用数据或以往的经验,以此优化计算机程序的性能标准;
这里重点把握几个关键词:经验(以往的数据)、算法(模型)、性能。
机器学习是数据通过算法构建出模型并对模型性能进行评估,如果达到要 求就拿这个模型来测试其他的数据,如果达不到要求就调整算法重新建立模 型,再次进行评估,如此循环迭代,直到最终获得满意的经验来处理其他的数 据。
此外,大家简单理解下人工智能、机器学习和深度学习这三者的关系。人 工智能的范畴最广,机器学习只是里面的一部分,深度学习又是机器学习中的 一部分。
机器学习分类
监督学习:从给定的训练数据集中学习一个模型,当新的数据到来时, 可以根据这个模型预测结果。每组训练数据都有明确的标注,在建立模 型时,将预测结果与实际结果进行比较,不断调整模型,直到模型的预 测结果达到预期的准确率。
无监督学习:学习模型是为了推断出数据的一些内在结构,训练数据没 有被特别标注,常见的应用场景包括关联规则的学习、聚类等;
半监督学习:介于监督学习与无监督学习之间的一种机器学习方式,主 要考虑如何利用少量的标注样本和大量的未标注样本进行训练和分类的 问题,首先试图对未标注数据进行建模,在此基础上再对标注的数据进 行预测;
强化学习:通过观察来学习动作的完成,每个动作都会对环境有所影 响,根据观察到的周围环境的反馈来做出判断。以一种“试错”的方式 进行学习,最终找到最优策略,常见的应用场景包括动态系统以及机器 人控制等。
机器学习应用场景
机器学习已广泛应用于数据挖掘、计算机视觉、自然语言处理、统计学 习、生物特征识别、搜索引擎、医学诊断、检测信用卡欺诈、证券市场分析、 DNA 序列测序、语音识别、模式识别 、战略游戏 和 机器人等领域。
- 在企业数据应用的场景下,最常用的是监督式学习和无监督式学习的模 型;
- 在图像识别等领域,由于存在大量的非标注的数据和少量的标注数据, 目前半监督式学习是一个研究的热点;
- 强化学习更多地应用在机器人控制及其他需要进行系统控制的领域。
机器学习常见算法
回归算法 、决策树算法 、贝叶斯算法 、 随机森林 、神经网络 、 支持向量机 、 聚类算法 、 降维算法
算法实现的细节以及算法的数学推导过 程,如果大家对这一部分比较感兴趣,这里给大家推荐两本参考书。
机器学习的大致流程
(1)数据收集和预处理:(原始的数据往往不能满足要求,需要做一些处理,例如归一化、缺失值处理等)
(2)特征抽取:(抽取哪些关键特征,如何表示这些特征)
(3)模型选择和训练:(如何选择模型,如何学习模型中的参数)
(4)评估和预测(采用什么标准来评估模型,不同的标准模型效果会有较
常见的机器学习库
Python 中机器学习相关的第三方库很多,这里我们重点介绍使用较为广泛 的Scikit-learn。
Scikit-learn 涵盖了几乎所有主流机器学习算法,并且提供了一致的调用 接口,基于 Numpy 和 SciPy 等Python数值计算库,提供了高效的算法实现。
Python标准库默认不包含 scikit-learn,需要自己下载安装:
- 命令行安装 pip install scikit-learn
- 通过Anaconda软件安装
Scikit-learn 基本功能主要分为六部分:分类、回归、聚类、数据降维、模 型选择和数据预处理。Scikit-learn官网:https://scikit-learn.org/stable/。
Scikit-learn 中主要子库及其内容:
- datasets:包含一些加载数据的工具以及获取比较流行的数据集的方法,例如鸢尾 花、手写字体识别等数据集;
- preprocessing: 包括缩放、中心化、标准化、二值化等方法,例如独热编码等;
- feature_selection: 包含特征选择的一些方法,例如选择最相关的k个特征等;
- model_selection: 包含模型选择的一些方法,例如划分数据集等;
- linear_model: 包含各种线性模型的实现,如线性回归、逻辑回归等;
- neural_network:包含各种神经网络模型的实现,例如多层感知机等;
- metrics: 包含一些值函数、性能指标、距离计算方法的实现,如均方差、召回 率、准确率等