本文主要介绍机器学习的基本概念与知识,文字比较简洁内容并不长,主要用于记录学习内容,方便之后复习

主要任务

  • 分类(classification): 将实例数据划分到合适的类别中。
    • 应用实例: 判断网站是否被黑客入侵(二分类 ),手写数字的自动识别(多分类)
  • 回归(regression): 主要用于预测数值型数据。
    • 应用实例: 股票价格波动的预测,房屋价格的预测等。

监督学习(supervised learning)

  • 特点:训练样本同时具有特征与目标变量的机器学习算法。
    • 特征通常是训练样本集的列,它们是独立测量得到的。
    • 目标变量: 目标变量是机器学习预测算法的测试结果。
  • 监督学习需要注意的问题:
    • 偏置方差权衡
    • 功能的复杂性和数量的训练数据
    • 输入空间的维数
    • 噪声中的输出值

非监督学习(unsupervised learning)

  • 特点:训练样本没有目标变量,即是指在没有类别信息情况下,通过对所研究对象的大量样本的数据分析实现对样本分类的一种数据处理方法。
  • 非监督学习包括的类型:
    • 聚类: 在无监督学习中,将数据集分成由类似的对象组成多个类的过程称为聚类。
    • 密度估计: 通过样本分布的紧密程度,来估计与分组的相似性。
    • 此外,无监督学习还可以减少数据特征的维度,以便我们可以使用二维或三维图形更加直观地展示数据信息。

强化学习

这个算法可以训练程序做出某一决定。程序在某一情况下尝试所有的可能行动,记录不同行动的结果并试着找出最好的一次尝试来做决定。 属于这一类算法的有马尔可夫决策过程。
训练过程

算法汇总

机器学习的使用

选择算法需要考虑的两个问题

  1. 算法场景
    • 预测明天是否下雨,因为可以用历史的天气情况做预测,所以选择监督学习算法
    • 给一群陌生的人进行分组,但是我们并没有这些人的类别信息,所以选择无监督学习算法、通过他们身高、体重等特征进行处理。
  2. 需要收集或分析的数据是什么

举例

机器学习的开发流程

  1. 收集数据: 收集样本数据
  2. 准备数据: 注意数据的格式
  3. 分析数据: 为了确保数据集中没有垃圾数据;
    • 如果是算法可以处理的数据格式或可信任的数据源,则可以跳过该步骤;
    • 另外该步骤需要人工干预,会降低自动化系统的价值。
  4. 训练算法: [机器学习算法核心]如果使用无监督学习算法,由于不存在目标变量值,则可以跳过该步骤
  5. 测试算法: [机器学习算法核心]评估算法效果
  6. 使用算法: 将机器学习算法转为应用程序

机器学习基础概念补充

一个总结知识点很棒的链接 https://zhuanlan.zhihu.com/p/25197792

机器学习基本术语

  • 模型(model): 计算机层面的认知
  • 学习算法(learning algorithm),从数据中产生模型的方法
  • 数据集(data set): 一组记录的合集
  • 示例(instance): 对于某个对象的描述
  • 样本(sample): 也叫示例
  • 属性(attribute): 对象的某方面表现或特征
  • 特征(feature): 同属性
  • 属性值(attribute value): 属性上的取值
  • 属性空间(attribute space): 属性张成的空间
  • 样本空间/输入空间(samplespace): 同属性空间
  • 特征向量(feature vector): 在属性空间里每个点对应一个- 坐标向量,把一个示例称作特征向量
  • 维数(dimensionality): 描述样本参数的个数(也就是空间- 是几维的)
  • 学习(learning)/训练(training): 从数据中学得模型
  • 训练数据(training data): 训练过程中用到的数据
  • 训练样本(training sample):训练用到的每个样本
  • 训练集(training set): 训练样本组成的集合
  • 假设(hypothesis): 学习模型对应了关于数据的某种潜在规则
  • 真相(ground-truth):真正存在的潜在规律
  • 学习器(learner): 模型的另一种叫法,把学习算法在给定数据和参数空间的实例化
  • 预测(prediction): 判断一个东西的属性
  • 标记(label): 关于示例的结果信息,比如我是一个“好人”。
  • 样例(example): 拥有标记的示例
  • 标记空间/输出空间(label space): 所有标记的集合
  • 分类(classification): 预测是离散值,比如把人分为好人和坏人之类的学习任务
  • 回归(regression): 预测值是连续值,比如你的好人程度达到了 0.9,0.6 之类的
  • 二分类(binary classification): 只涉及两个类别的分类任务
  • 正类(positive class): 二分类里的一个
  • 反类(negative class): 二分类里的另外一个
  • 多分类(multi-class classification): 涉及多个类别的分类
  • 测试(testing): 学习到模型之后对样本进行预测的过程
  • 测试样本(testing sample): 被预测的样本
  • 聚类(clustering): 把训练集中的对象分为若干组
  • 簇(cluster): 每一个组叫簇
  • 监督学习(supervised learning): 典范—分类和回归
  • 无监督学习(unsupervised learning): 典范—聚类
  • 未见示例(unseen instance): “新样本“,没训练过的样本
  • 泛化(generalization)能力: 学得的模型适用于新样本的能力
  • 分布(distribution): 样本空间的全体样本服从的一种规律
  • 独立同分布(independent and identically distributed,简称 i,i,d.):获得的每个样本都是独立地从这个分布上采样获得的。

数据集的划分

  • 训练集(Training set) —— 学习样本数据集,通过匹配一些参数来建立一个模型,主要用来训练模型。类比考研前做的解题大全。
  • 验证集(validation set) —— 对学习出来的模型,调整模型的参数,如在神经网络中选择隐藏单元数。验证集还用来确定网络结构或者控制模型复杂程度的参数。类比 考研之前做的模拟考试。
  • 测试集(Test set) —— 测试训练好的模型的分辨能力。类比 考研。这次真的是一考定终身。

模型拟合程度

  • 欠拟合(Underfitting): 模型没有很好地捕捉到数据特征,不能够很好地拟合数据,对训练样本的一般性质尚未学好。类比,光看书不做题觉得自己什么都会了,上了考场才知道自己啥都不会。
  • 过拟合(Overfitting): 模型把训练样本学习“太好了”,可能把一些训练样本自身的特性当做了所有潜在样本都有的一般性质,导致泛化能力下降。类比,做课后题全都做对了,超纲题也都认为是考试必考题目,上了考场还是啥都不会。

通俗来说,欠拟合和过拟合都可以用一句话来说,欠拟合就是: “你太天真了!”,过拟合就是: “你想太多了!”。

常见的模型指标

  • 正确率 —— 提取出的正确信息条数 / 提取出的信息条数
  • 召回率 —— 提取出的正确信息条数 / 样本中的信息条数
  • F 值 —— 正确率 召回率 2 / (正确率 + 召回率)(F 值即为正确率和召回率的调和平均值)

举个例子如下:
某池塘有 1400 条鲤鱼,300 只虾,300 只乌龟。现在以捕鲤鱼为目的。撒了一张网,逮住了 700 条鲤鱼,200 只 虾, 100 只乌龟。那么这些指标分别如下: 正确率 = 700 / (700 + 200 + 100) = 70% 召回率 = 700 / 1400 = 50% F 值 = 70% 50% 2 / (70% + 50%) = 58.3%

模型

  • 分类问题 —— 说白了就是将一些未知类别的数据分到现在已知的类别中去。比如,根据你的一些信息,判断你是高富帅,还是穷屌丝。评判分类效果好坏的三个指标就是上面介绍的三个指标: 正确率,召回率,F 值。
  • 回归问题 —— 对数值型连续随机变量进行预测和建模的监督学习算法。回归往往会通过计算 误差(Error)来确定模型的精确性。
  • 聚类问题 —— 聚类是一种无监督学习任务,该算法基于数据的内部结构寻找观察样本的自然族群(即集群)。聚类问题的标准一般基于距离: 簇内距离(Intra-cluster Distance) 和 簇间距离(Inter-cluster Distance) 。簇内距离是越小越好,也就是簇内的元素越相似越好;而簇间距离越大越好,也就是说簇间(不同簇)元素越不相同越好。一般的,衡量聚类问题会给出一个结合簇内距离和簇间距离的公式。

下面这个图可以比较直观地展示出来:

特征工程的一些细节

  • 特征选择 —— 也叫特征子集选择(FSS,Feature Subset Selection)。是指从已有的 M 个特征(Feature)中选择 N 个特征使得系统的特定指标最优化,是从原始特征中选择出一些最有效特征以降低数据集维度的过程,是提高算法性能的一个重要手段,也是模式识别中关键的数据预处理步骤。

    模式识别(pattern recognition): 模式识别是最古老的(作为一个术语而言,可以说是很过时的)。

    • 我们把环境与客体统称为“模式”,识别是对模式的一种认知,是如何让一个计算机程序去做一些看起来很“智能”的事情。
    • 通过融于智慧和直觉后,通过构建程序,识别一些事物,而不是人,例如: 识别数字。
  • 特征提取 —— 特征提取是计算机视觉和图像处理中的一个概念。它指的是使用计算机提取图像信息,决定每个图像的点是否属于一个图像特征。特征提取的结果是把图像上的点分为不同的子集,这些子集往往属于孤立的点,连续的曲线或者连续的区域。

下面给出特征工程的图:

本文内容参考自AIlearning,想了解更多细节推荐阅读原文,项目地址为Github