1 机器学习与人工智能、深度学习

在这里插入图片描述
机器学习是从数据中自动分析获得模型,并利用模型对未知数据进行预测
在这里插入图片描述
深度学习是一类算法集合,是机器学习的一个分支,深度学习的发展源头–神经网络

人工智能和机器学习,深度学习的关系:

  • 机器学习是人工智能的一个实现途径
  • 深度学习是机器学习的一个方法发展而来

人工智能主要分支

  • 计算机视觉
    • 计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。物体检测和人脸识别是其比较成功的研究领域。
  • 语音识别
    • 语音识别是指识别语音(说出的语言)并将其转换成对应文本的技术。相反的任务(文本转语音/TTS)也是这一领域内一个类似的研究主题。
  • 文本挖掘/分类
    • 这里的文本挖掘主要是指文本分类,该技术可用于理解、组织和分类结构化或非结构化文本文档。其涵盖的主要任务有句法分析、情绪分析和垃圾信息检测。
  • 机器翻译
    • 机器翻译(MT)是利用机器的力量自动将一种自然语言(源语言)的文本翻译成另一种语言(目标语言)。
  • 机器人
    • 机器人学(Robotics)研究的是机器人的设计、制造、运作和应用,以及控制它们的计算机系统、传感反馈和信息处理。

2 机器学习库

Scikit-learn工具

  • Python语言的机器学习工具
  • Scikit-learn包括许多知名的机器学习算法的实现
  • Scikit-learn文档完善,容易上手,丰富的API

Scikit-learn包含的内容
在这里插入图片描述

安装 scikit-learn

pip install scikit-learn

安装好之后可以通过以下命令查看是否安装成功

import sklearn

注:安装scikit-learn需要Numpy, Scipy等库

3 机器学习的工作流程

在这里插入图片描述

3.1 获取数据

数据简介

一行数据我们称为一个样本
一列数据我们成为一个特征
有些数据有目标值(标签值),有些数据没有目标值(如上表中,电影类型就是这个数据集的目标值)

数据类型构成

数据类型一:特征值+目标值(目标值是连续的和离散的)
数据类型二:只有特征值,没有目标值

数据分割:

机器学习一般的数据集会划分为两个部分:

  • 训练数据:用于训练,构建模型
  • 测试数据:在模型检验时使用,用于评估模型是否有效

划分比例:

  • 训练集:70% 80% 75%
  • 测试集:30% 20% 25%

3.2 数据基本处理

即对数据进行缺失值、去除异常值等处理

3.3 特征工程

特征工程是使用专业背景知识和技巧处理数据,使得特征能在机器学习算法上发挥更好的作用的过程。(会直接影响机器学习的效果)

特征工程包含内容:

  • 特征提取

    • 将任意数据(如文本或图像)转换为可用于机器学习的数字特征
      在这里插入图片描述
  • 特征预处理

    • 通过一些转换函数将特征数据转换成更加适合算法模型的特征数据过程
      在这里插入图片描述
  • 特征降维

    • 指在某些限定条件下,降低随机变量(特征)个数,得到一组“不相关”主变量的过程
      在这里插入图片描述

3.4 机器学习(模型训练)

选择合适的算法对模型进行训练

3.5 模型评估

对训练好的模型进行评估

  • 结果达到要求,上线服务
  • 没有达到要求,重新上面步骤

4 机器学习算法的分类

根据数据集组成不同,可以把机器学习算法分为:

  • 监督学习:输入数据是由输入特征值和目标值所组成

    • 函数的输出可以是一个连续的值(回归)
    • 或是输出是有限个离散值(分类)
  • 无监督学习:输入数据是由输入特征值组成

    • 样本数据类别未知,需要根据样本间的相似性对样本集进行分类,试图使类内差距最小化,类间差距最大化(聚类)
    • 将原高维空间中的数据点映射到低维度的空间中(降维)
      在这里插入图片描述
  • 半监督学习:训练集同时包含有标记样本数据和未标记样本数据。

  • 强化学习:实质是 make decisions 问题,即自动进行决策,并且可以做连续决策

    • 马尔科夫决策
    • 动态规划

强化学习举例:
小孩想要走路,但在这之前,他需要先站起来,站起来之后还要保持平衡,接下来还要先迈出一条腿,是左腿还是右腿,迈出一步后还要迈出下一步。
小孩就是 agent,他试图通过采取行动(即行走)来操纵环境(行走的表面),并且从一个状态转变到另一个状态(即他走的每一步),当他完成任务的子任务(即走了几步)时,孩子得到奖励(给巧克力吃),并且当他不能走路时,就不会给巧克力。

在这里插入图片描述

拓展:独立同分布

在这里插入图片描述

在这里插入图片描述

5 机器学习模型评估方法

5.1 分类模型评估

在分类任务下,预测结果(Predicted Condition)与正确标记(True Condition)之间存在四种不同的组合,构成混淆矩阵(适用于多分类)
在这里插入图片描述
准确率

  • 预测正确的数占样本总数的比例
  • (TP+TN) / (TP+FP+FN+TN)

精确率

  • 正确预测为正占全部预测为正的比例(查得准不准)
  • TP/(TP+FP)

召回率

  • 正确预测为正占全部正样本的比例(查得全不全)
  • TP/(TP+FN)

F1-score

  • 主要用于评估模型的稳健性
  • 其值越接近于1,模型的稳健性越强
    在这里插入图片描述

ROC曲线

ROC曲线的横轴就是FPRate,纵轴就是TPRate,当二者相等时,表示的意义则是:对于不论真实类别是1还是0的样本,分类器预测为1的概率是相等的,此时AUC为0.5
在这里插入图片描述
AUC指标

  • 主要用于评估样本不均衡的情况
  • 只能用来评价二分类问题
  • AUC的概率意义是随机取一对正负样本,正样本得分大于负样本的概率
  • AUC(Area Under Curve)被定义为ROC曲线下的面积,显然这个面积的数值不会大于1。又由于ROC曲线一般都处于y=x这条直线的上方,所以AUC的取值范围在0.5和1之间。AUC的最小值为0.5,最大值为1,取值越高越好
  • AUC=1,完美分类器,采用这个预测模型时,不管设定什么阈值都能得出完美预测。绝大多数预测的场合,不存在完美分类器。
  • 0.5<AUC<1,优于随机猜测。这个分类器(模型)妥善设定阈值的话,能有预测价值。

TPR = TP / (TP + FN)

  • 所有真实类别为1的样本中,预测类别为1的比例

FPR = FP / (FP + TN)

  • 所有真实类别为0的样本中,预测类别为1的比例
'''
from sklearn.metrics import roc_auc_score
sklearn.metrics.roc_auc_score(y_true, y_score)
计算ROC曲线面积,即AUC值
y_true:每个样本的真实类别,必须为0(反例),1(正例)标记
y_score:预测得分,可以是正类的估计概率、置信值或者分类器方法的返回值
'''
# 0.5~1之间,越接近于1约好
y_test = np.where(y_test > 2.5, 1, 0)
print("AUC指标:", roc_auc_score(y_test, y_predict)

5.2 回归模型评估

均方误差(Mean Squared Error,MSE)
在这里插入图片描述
均方根误差(Root Mean Squared Error,RMSE)

  • 仅能比较误差是相同单位的模型
    在这里插入图片描述
    相对平方误差(Relative Squared Error,RSE)
  • 与RMSE不同,RSE可以比较误差是不同单位的模型

在这里插入图片描述
平均绝对误差(Mean Absolute Error,MAE)

  • MAE与原始数据单位相同, 它仅能比较误差是相同单位的模型。量级近似与RMSE,但是误差值相对小一些。

在这里插入图片描述
相对绝对误差(Relative Absolute Error,RAE)

  • 与RSE不同,RAE可以比较误差是不同单位的模型

在这里插入图片描述
决定系数 (Coefficient of Determination)
在这里插入图片描述
在这里插入图片描述
R²描述了回归模型所解释的因变量方差在总方差中的比例。R2很大,即自变量和因变量之间存在线性关系,如果回归模型是“完美的”,SSE为零,则R2为1。R2小,则自变量和因变量之间存在线性关系的证据不令人信服。如果回归模型完全失败,SSE等于SST,没有方差可被回归解释,则R2为零。

5.3 拟合问题

模型评估用于评价训练好的的模型的表现效果,其表现效果大致可以分为两类:过拟合、欠拟合。
(1)过拟合

所建的机器学习模型或者是深度学习模型在训练样本中表现得过于优越,导致在测试数据集中表现不佳。

(2)欠拟合

模型学习的太过粗糙,连训练集中的样本数据特征关系都没有学出来。

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐