初识机器学习

概念

Posted by 新宇 on January 24, 2020

数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已

一、机器学习概述

1. 应用场景

2. 发展三要素

  • 数据
  • 算法
  • 计算力:CPU GPU TPU

1. CPU GPU对比

CPU适合IO密集型程序,GPU适合计算密集型(易于并行计算)

3. 人工智能、机器学习和深度学习

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

4. 人工智能发展历程

1. 图灵测试

测试者与被测试者(一个人和一台机器)隔开的情况下,通过一些装置(如键盘)向被测试者随意提问。 多次测试(一般为5min之内),如果有超过30%的测试者不能确定被测试者是人还是机器,那么这台机器就通过了测试,并被认为具有人类智 能。

2. 达特茅斯会议

5. 人工智能主要分支

  • CV:计算机视觉,人脸识别、图像分类、目标检测、追踪、分割;
  • NLP:自然语言处理,文本挖掘/分类,机器翻译、语音识别
  • 机器人

6. 机器学习工作流程

  • 1.获取数据
  • 2.数据基本处理
  • 3.特征工程
  • 4.机器学习(模型训练)
  • 5.模型评估:结果达到要求,上线服务/没有达到要求,重新上面步骤

7. 基本概念

  • 数据简介:
    • 在数据集中一般:
      • 一行数据我们称为一个样本
      • 一列数据我们成为一个特征 有些数据有目标值(标签值),有些数据没有目标值(如上表中,电影类型就是这个数据集的目标值)
  • 数据类型构成:
    • 数据类型一: 特征值+目标值(目标值是连续的和离散的)
    • 数据类型二: 只有特征值,没有目标值
  • 数据分割:
    • 一般的数据集会划分为两个部分:
      • 训练数据:用于训练,构建模型
      • 测试数据:在模型检验时使用,用于评估模型是否有效
    • 划分比例: 训练集:70% 80% 75% 测试集:30% 20% 25%

8. 特征工程

  • 特征提取: 将任意数据(如文本或图像)转换为可用于机器学习的数字特征
  • 特征预处理: 通过一些转换函数将特征数据转换成更加适合算法模型的特征数据过程,例如:归一化、离散化、因子化、缺失值处理、去除共线性 等
  • 特征降维: 指在某些限定条件下,降低随机变量(特征)个数,得到一组“不相关”主变量的过程

二、机器学习算法分类

1. 监督学习

输入数据是由输入特征值和目标值所组成。

  • 函数的输出可以是一个连续的值(称为回归);
  • 或是输出是有限个离散值(称作分类)。

2.无监督学习

输入数据是由输入特征值组成,没有目标值

  • 输入数据没有被标记,也没有确定的结果。样本数据类别未知;
  • 需要根据样本间的相似性对样本集进行类别划分。

3. 半监督学习

训练集同时包含有标记样本数据和未标记样本数据。

4. 强化学习

实质是make decisions 问题,即自动进行决策,并且可以做连续决策。

5. 对比

三、模型评估

1. 分类模型评估

2. 回归模型评估

3. 拟合

1. 欠拟合

欠拟合(under-fitting):模型学习的太过粗糙,连训练集中的样本数据特征关系都没有学出来。

2. 过拟合

所建的机器学习模型或者是深度学习模型在训练样本中表现得过于优越(异常数据、噪声也学习进去了),导致在测试数据集中表现不佳。

四、Azure机器学习模型搭建实验

1. Azure介绍

Azure Machine Learning(简称“AML”)是微软在其公有云Azure上推出的基于Web使用的一项机器学习服务

2. 地址

Azure

3. 使用教程

参考:Microsoft Azure-机器学习全流程平台搭建

五、深度学习简介

卷积网络之父:Yann LeCun

1. 概念

  • 深度学习是机器学习研究领域的一个方向,学习样本数据的内在规律和表示层次,让机器具有和人近似的分析、学习和识别的能力;
  • 深度学习(Deep Learning)(也称为深度结构学习【Deep StructuredLearning】、层次学习【Hierarchical Learning】或者是深度机器学习【Deep Machine Learning】)是一类算法集合,是机器学习的一个分支。
  • 深度学习方法近年来,在会话识别、图像识别和对象侦测等领域表现出了惊人的准确性。

2. 深度学习案例演示

案例演示

六、机器学习环境安装

1、纯python解释器中虚拟环境的安装与使用

  • 安装一些依赖包:

    pip install virtualenv
      
    # 在Windows下安装如下包:
    pip install virtualenvwrapper-win
    # 在Linux下安装如下包:
    pip install virtualenvwrapper
    
  • 创建虚拟环境:

    mkvirtualenv 虚拟环境的名称
    # 退出当前虚拟环境
    
    deactivate
    # 激活虚拟环境
    # 1、进入到虚拟环境目录中(家目录下的Envs目录:① windows下:C:\Users\你的Windows用户名\Envs;② Linux下:/home/你的Linux用户名/Envs)
    # 2、激活虚拟环境
    
    activate 虚拟环境名
    # 或者(根据安装完成后的提示进行选择):
    
    workon 虚拟环境名
    
  • 进入创建的虚拟环境,安装依赖包:

    # 1、进入虚拟环境:
    
    activate 虚拟环境名
    # 或者(根据安装完成后的提示进行选择):
    
    workon 虚拟环境名
    # 2、安装依赖包:
    
    pip install -r requirements.txt
    

2、在anaconda中安装并使用虚拟环境(推荐)

  • 下载并安装anaconda的教程:

    https://blog.csdn.net/ychgyyn/article/details/82119201

  • 直接创建虚拟环境:

    conda create -n 虚拟环境名称 python=3.6.8
    
  • 激活和退出虚拟环境:

    # 激活虚拟环境
    
    conda activate 虚拟环境名称
    # 或者(根据安装完成后的提示进行选择):activate 虚拟环境名称
    # 退出虚拟环境
    
    conda deactivate
    #或者(根据安装完成后的提示进行选择): deactivate
    
  • 进入创建的虚拟环境,安装依赖包:

    # 1、激活虚拟环境:
    
    conda activate 虚拟环境名称
    # 2、安装依赖包:
      
    pip install -r requirements.txt
    

3、注意:linux或者Mac系统的电脑,安装依赖包使用requirements.txt文件,windows系统的电脑,安装依赖包使用win_requirements.txt文件。

4、requirements.txt

  matplotlib==2.2.2
  numpy==1.14.2
  pandas==0.20.3
  tables==3.4.2
  jupyter==1.0.0