目录

  • 1 模块一  Python与机器学习概述
    • 1.1 Python与机器学习简介
    • 1.2 发展历程
    • 1.3 基本语法
    • 1.4 帮助
    • 1.5 应用
    • 1.6 示例源代码(食品识别小小专家系统)
    • 1.7 示例代码   蜡笔小新
    • 1.8 小结
    • 1.9 Python基础教程(教&学资料)
      • 1.9.1 安装Python
      • 1.9.2 第一个python程序
      • 1.9.3 Python基础
      • 1.9.4 函数
      • 1.9.5 高级特性
      • 1.9.6 函数式编程
      • 1.9.7 模块
      • 1.9.8 面向对象编程
      • 1.9.9 面向对象高级编程
      • 1.9.10 错误、调试和测试
      • 1.9.11 IO编程
      • 1.9.12 进程和线程
      • 1.9.13 正则表达式
      • 1.9.14 常用内建模块
      • 1.9.15 常用第三方模块
      • 1.9.16 图形界面
      • 1.9.17 网络编程
      • 1.9.18 电子邮件
      • 1.9.19 访问数据库
      • 1.9.20 Web开发
      • 1.9.21 异步IO
      • 1.9.22 使用MicroPython
      • 1.9.23 实战训练(day1~~day10)
        • 1.9.23.1 Day 1 - 搭建开发环境
        • 1.9.23.2 Day 2 - 编写Web App骨架
        • 1.9.23.3 Day 3 - 编写ORM
        • 1.9.23.4 Day 4 - 编写Model
        • 1.9.23.5 Day 5 - 编写Web框架
        • 1.9.23.6 Day 6 - 编写配置文件
        • 1.9.23.7 Day 7 - 编写MVC
        • 1.9.23.8 Day 8 - 构建前端
        • 1.9.23.9 Day 9 - 编写API
        • 1.9.23.10 Day 10 - 用户注册和登录
      • 1.9.24 Day 11 - 编写日志创建页
      • 1.9.25 Day 12 - 编写日志列表页
      • 1.9.26 Day 13 - 提升开发效率
      • 1.9.27 Day 14 - 完成Web App
      • 1.9.28 Day 15 - 部署Web App
      • 1.9.29 Day 16 - 编写移动App
    • 1.10 FAQ
    • 1.11 阶段总结
  • 2 PYthon程序示例
    • 2.1 程序示例(一)初识程序
    • 2.2 程序示例(二)查看今天是今年的第几天
    • 2.3 程序示例(三)if elif else语句
    • 2.4 程序示例(四)元组,列表, 堆栈,队列
    • 2.5 程序示例(五)学玩游戏《学色彩  神魔三龟玩变色》
    • 2.6 程序示例(六)函数
    • 2.7 程序示例(七)字符串
    • 2.8 程序示例(八)文件
    • 2.9 程序示例(九)排序
    • 2.10 程序示例-机器学习中英单词翻译小专家
    • 2.11 程序示例      画花朵  &  画佩奇
    • 2.12 程序示例   华夏时钟
    • 2.13 示例:  显示图片,响声
    • 2.14 播放声音视频文件mp3、wmv、wav、m4a等)
    • 2.15 Python WEB开发技术实战
  • 3 模块2 NumPy数值计算
    • 3.1 ndarray创建与索引
    • 3.2 ndarray的基础操作
    • 3.3 ufunc
    • 3.4 小结
    • 3.5 习题与实训
  • 4 模块3   pandas基础
    • 4.1 pandas常用类
    • 4.2 DataFrame基础操作
    • 4.3 其他数据类型操作
    • 4.4 小结
    • 4.5 习题与实训
    • 4.6 练习题
  • 5 模块4 pandas进阶
    • 5.1 数据读取与写出
    • 5.2 DataFrame进阶
    • 5.3 数据准备
    • 5.4 小结
    • 5.5 习题与实训
    • 5.6 练习习题及解答(参考)
  • 6 模块5 Matplotlib基础绘图
    • 6.1 Matplotlib绘图基础
    • 6.2 分析特征关系常用图形
    • 6.3 分析特征内部数据状态常用图形
    • 6.4 小结
    • 6.5 习题与实训
  • 7 模块6 机器学习库 scikit-learn
    • 7.1 数据准备
    • 7.2 降维
    • 7.3 分类
    • 7.4 回归
    • 7.5 聚类
    • 7.6 模型选择
    • 7.7 小结
    • 7.8 习题与实训
  • 8 模块7 餐饮企业综合分析
    • 8.1 (案例)餐饮企业分析需求
    • 8.2 数据准备
    • 8.3 使用K-means算法进行客户价值分析
    • 8.4 使用决策树算法实现餐饮客户流失预测
    • 8.5 小结
    • 8.6 习题与实训
  • 9 模块8  通信运营商客户流失分析与预测
    • 9.1 通信运营商客户流失分析需求
    • 9.2 数据准备
    • 9.3 特征工程
    • 9.4 使用多层感知器算法实现通信运营商 客户流失预测
    • 9.5 小结
    • 9.6 习题与实训
  • 10 学习参考资源
    • 10.1 机器学习的通俗讲解
    • 10.2 十大机器学习算法及其应用
    • 10.3 常用机器学习算法优缺点及其应用领域
    • 10.4 轻松学会 Python turtle 绘图
    • 10.5 Python 习题库
      • 10.5.1 习题1
    • 10.6 上机操作实训库
    • 10.7 面试准备题
    • 10.8 Python 程序扩展名 及发布程序时的选择
    • 10.9 计算机Python考试大纲
    • 10.10 Python  基础知识点梳理
    • 10.11 Python常用模块大全
    • 10.12 机器学习基本术语
    • 10.13 几个机器学习的成功案例
    • 10.14 60个机器学习算法应用场景实例
  • 11 章节测验(必测)
    • 11.1 测验一
    • 11.2 测验二
    • 11.3 测验三
    • 11.4 测验四
    • 11.5 测验五
    • 11.6 测验六
    • 11.7 测验七
    • 11.8 测验八
    • 11.9 测验九
    • 11.10 测验十
    • 11.11 编程专项测验
    • 11.12 填空题专项测验
    • 11.13 判断题专项测试
    • 11.14 简答题专项测试
    • 11.15 《机器学习技术》总复习
    • 11.16 书本--习题参考解答
  • 12 综合实训项目及展示
    • 12.1 项目(一)作品展示(1)
    • 12.2 项目(一)作品展示(2)
    • 12.3 团队项目实训(必作!)
机器学习基本术语

机器学习基本术语

(1)举例简述什么是机器学习(Machine Learning)?

梳理参考:

机器学习(Machine Learning)是计算机程序随着经验积累自动提高性能或系统自我改进的过程,即通过经验提高性能的某类程序;以一个更形式化的定义来说,对于某类任务T和性能度量P,如果一个计算机程序在T上以P衡量的性能,随着经验E而自我完善,就称这个计算机程序从经验 E中学习。

机器学习通常需要一定的算法,依据特定的指令序列,将输入变换得到输出,然而,对于现实中的很多任务,我们并没有确定的算法,我们希望计算机自动地为学习任务提取相应的算法;

例如为每天收取的邮件进行分类,区分是垃圾邮件还是正常邮件。尽管我们知道输入/输出分别应该是邮件文档以及是否为垃圾邮件,然而并不知道应该按照怎样确定的规则将这种输入变换成输出。

在计算机系统中,经验通常以数据的形式存在。为了能够自动地从经验中提取出学习算法,需要获得过去大量的邮件实例作为数据。从实例数据中学习出垃圾邮件的模型,以此作为判断的依据。

机器学习所研究的主要内容,是如何在计算机上从数据中产生模型的算法,即学习算法。

有了学习算法,我们将经验以数据的形式提供给计算机,计算机就能基于这些数据产生相应的模型。继而在面对新的情况时,学习到的模型能够提供相应的判断,比如计算机能够正确分类一封新邮件是否是垃圾邮件。

机器学习是研究学习算法的学问,机器学习的过程是从大量数据中自动地寻找有用模型的过程。



(2)几个术语:

数据集/样本集: 记录这组数据的集合,也就是整个表格的数据。

实例/样本: 记录一个事件/对象的描述,如表格中的任意一行。

(样本) 属性/特征: 反映事件或对象在某方面的表现或性质的事项,如表格中的“色泽”“根蒂”“敲声”等。

(样本) 属性值/特征值: 属性/特征所取的值,如表格中的“青绿”“乌黑”“清脆”“浊响”等。

属性空间/样本空间/输入空间: 属性张成的空间,如把“色泽”“根蒂”“敲声”作为3个坐标轴,则它们张成一个用于描述西瓜的三维空间,每个西瓜都在这个空间中有其坐标位置。

特征向量: 在前面所述的属性空间/样本空间/输入空间中,每个点都对应一个坐标向量,这个向量称为特征向量。

维数: 对于表中某一行数据,利用“色泽”“根蒂”“敲声”3个属性进行取值记录,可认为该样本的维数为3。

学习/训练: 从数据模型中学习的过程。

训练数据: 训练过程中使用的数据。

训练样本: 训练过程中的每一个样本。

标签/标记: 用于表示样本的结果信息,如表中的“成熟/未成熟”。

样例: 指既包含样本属性值,又包含标签的样本。注意与样本的区别,样本包括训练样本和测试样本,样本不一定具有标签。

标记空间/输出空间: 所有标记结果的集合。

预测: 根据已有的众多样例,判断某一样本的输出结果。

分类: 当结果预测值为离散值时,如表中“成熟”“未成熟”,此类任务称为分类。尤其是只涉及两个类别时,称为“二分类”。通常,其中一个称为“正类”,另一个称为“反类”。涉及多个类别时,称为“多分类”。

回归: 当结果预测值为连续值时,如预测西瓜的成熟度,此类任务称为回归。

测试: 通过学习得到模型后,使用样本进行检测的过程。

测试样本: 用于进行检测的样本。

新样本: 没有用于模型训练的样本都可认为是对该模型的新样本。

泛化: 指训练的模型不仅适用于训练样本,同时适用于新样本。

聚类: 将训练集中的西瓜分成若干组,每一个组称为“簇”。例如,通过学习,其自动形成的簇可能对应一些潜在概念的划分,如“浅色瓜”“深色瓜”等。这样的学习过程有助于了解数据内在的规律。值得注意的是,在聚类学习中“浅色瓜”“深色瓜”这些概念事先是不知道的,是学习过程中得到的,并且使用的训练样本不拥有标记信息。

监督学习: 学习任务为分类和回归问题,且样本具有标记信息。

无/非监督学习: 学习任务为聚类问题,且样本不具有标记信息。


思考题:

1、为什么要进行数据预处理?

 答:主要是因为:

(1) 收集的数据是杂乱的,数据内容常出现不一致和不完整问题,且常存在错误数据或者异常数据。

(2) 收集的数据由于数据量大,数据的品质不统一,需要提取高品质数据,以便利用高品质数据得到高品质的结果。

2、怎样进行数据初步选取?

答:(1) 选择能够赋予属性名和属性值明确含义的属性数据。

(2) 避免选取重复数据。

(3) 合理选择与学习内容关联性高的属性数据。

3、数据清理的主要任务是什么?

答:(1) 缺失数据处理

 (2) 噪声数据处理

4.数据集成的主要任务是什么?

答:(1) 处理好多个数据集匹配。当一个数据库的属性与另一个数据库的属性匹配时,必须注意数据的结构,以便于二者匹配。

(2) 解决数据冗余。两个数据集有两个命名不同但实际数据相同的属性,那么其中一个属性就是冗余的。

(3) 解决数据冲突。由于表示、比例、编码等的不同,现实世界中的同一实体,在不同数据源中的属性值可能不同,从而产生数据歧义。

5.数据变换要做好哪些工作?

答:要做好 (1) 数据标准化:

1) 离差标准化,对原始数据的线性变换,使结果值映射到[0,1]区间。

(2) Zscore标准化方法。该方法将原始数据的均值(mean)和标准差(standard deviation)进行数据标准化。经过处理的数据符合标准正态分布,即均值为0,标准差为1。Zscore标准化方法适用于样本属性的最大值和最小值未知的情况,或有超出取值范围的离群数据的情况。

(3) 小数定标标准化。该方法是通过移动数据的小数点位置来进行标准化,小数点移动多少位取决于属性取值的最大值。

(2) 数据白化处理

白化处理分为PCA(Principal Component Analysis,主成分分析)白化和ZCA(Zeromean Component Analysis,零均值成分分析)白化。等。


5、数据科学与人工智能的核心是机器学习模型与算法,Python中的机器学习包Scikit-learn提供了从数据预处理到模型应用、评估等各方面的模型与算法,比如缺失值处理、数据的规范化、属性归约(主成分提取)、线性回归、逻辑回归、神经网络、支持向量机、K-均值聚类等。

  试对以上模型或方法的应用主题进行归类(主题包括:数据预处理、数据降维、回归、分类、聚类、关联分析)。

梳理参考:

(1) 数据预处理:缺失值处理,数据的均值-方差、极规范化方法

(2) 数据降维:主成分分析方法

(3) 回归:线性回归、神经网络非线性回归

(4) 分类:支持向量机、逻辑回归、神经网络分类

(5) 聚类:K-均值聚类算法

(6)关联分析:  关联分析又称关联挖掘,就是在交易数据、关系数据或其他信息载体中,查找存在于项目集合或对象集合之间的频繁模式、关联、相关性或因果结构。或者说,关联分析是发现交易数据库中不同商品(项)之间的联系。关联分析是一种简单、实用的分析技术,就是发现存在于大量数据集中的关联性或相关性,从而描述了一个事物中某些属性同时出现的规律和模式。有:Apriori算法、FP-growth算法。

相关系数:相关系数是用以反映变量之间相关关系密切程度的统计指标。

相关系数的值介于–1与+1之间,即–1≤r≤+1。其性质如下:

  • 当r>0时,表示两变量正相关,r<0时,两变量为负相关

  • 当|r|=1时,表示两变量为完全线性相关,即为函数关系。

  • 当r=0时,表示两变量间无线性相关关系。

  • 当0<|r|<1时,表示两变量存在一定程度的线性相关。且|r|越接近1,两变量间线性关系越密切;|r|越接近于0,表示两变量的线性相关越弱。

  • 一般可按三级划分:|r|<0.4为低度线性相关;0.4≤|r|<0.7为显著性相关;0.7≤|r|<1为高度线性相关。



6、关于机器学习技术,简述三种数据集(即:训练集,验证集,测试集)的作用与区别。

梳理参考:

(1)训练集用来训练模型,即确定模型的权重和偏置这些参数,通常我们称这些参数为学习参数。

(2)验证集用于模型的选择,更具体地来说,验证集并不参与学习参数的确定,也就是验证集并没有参与梯度下降的过程。验证集只是为了选择超参数,比如网络层数、网络节点数、迭代次数、学习率这些都叫超参数。比如在k-NN算法中,k值就是一个超参数。所以可以使用验证集来求出误差率最小的k。

(3)测试集只使用一次,即在训练完成后评价最终的模型时使用。它既不参与学习参数过程,也不参数超参数选择过程,而仅仅使用于模型的评价。

通常训练集数据和测试集数据的划分比例是6:4、7:3或8:2,而对于庞大的数据可以使用9:1的划分比例。


7.机器学习领域中的降维指在某些限定条件下,降低随机变量个数,得到一组相关性不强的主变量的过程。关于降维有下面的叙述::

(1)通过有效降维将能在一定程度上减少冗余信息,提高模型的识别精度及运行效率。

(2)降维方法可细分为特征选择特征提取两种方法。

(3)特征选择假定数据中包含大量冗余或无关变量(又称特征、属性、指标),旨在从原有变量中找出主要变量。

(4)特征提取是将高维数据转化为低维数据的过程。在此过程中可能舍弃原有数据、创造新的变量。