目录

  • 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 团队项目实训(必作!)
分析特征内部数据状态常用图形

一、直方图(Histogram)

直方图(Histogram)又称频数直方图,由一系列宽度相等、长度不等的长方形来展示特征的频数情况。长方形的宽度表示组距(数据范围的间隔),长度表示在给定间隔内的频数(或频率)与组距的比值,以长方形的面积来表示频数(或频率)。由于分组数据具有连续性,直方图的长方形通常是连续排列的。直方图可以比较直观地展现特征内部数据,便于分析其分布情况。

#例 垂直柱状图 df.plot.bar

#垂直柱状图 df.plot.bar
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
df_2 = pd.DataFrame(np.random.rand(10, 3), columns=['a', 'b', 'c'])
df_2.plot.bar()
plt.show()

#例    叠加柱状图 stacked=True

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
df_2.plot.bar(stacked=True)
plt.show()

#例: 水平叠加柱状图 df.plot.barh

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
df_2.plot.barh(stacked=True)
plt.show()

#示例  柱状图

import matplotlib.pyplot as plt

import numpy as np

n = 12

X = np.arange(n)

Y1 = (1 - X/float(n)) * np.random.uniform(0.5,1.0,n)

Y2 = (1 - X/float(n)) * np.random.uniform(0.5,1.0,n)

#facecolor:表面的颜色;edgecolor:边框的颜色

plt.bar(X,+Y1,facecolor = '#9999ff',edgecolor = 'white')

plt.bar(X,-Y2,facecolor = '#ff9999',edgecolor = 'white')

#描绘text在图表上

# plt.text(0 + 0.4, 0 + 0.05,"huhu")

for x,y in zip(X,Y1):

          #ha : horizontal alignment

         #va : vertical alignment

    plt.text(x + 0.01,y+0.05,'%.2f'%y,ha = 'center',va='bottom')

for x,y in zip(X,Y2):

    # ha : horizontal alignment

    # va : vertical alignment

    plt.text(x+0.01,-y-0.05,'%.2f'%(-y),ha='center',va='top')

 

plt.xlim(-.5,n)

plt.yticks([])

plt.ylim(-1.25,1.25)

plt.yticks([])

plt.show()

 柱状图

二、条形图(Bar Chart)

条形图(Bar Chart)也是由一系列宽度相等、高度不等的长方形来展示特征的频数情况。但条形图主要展示分类数据,一个长方形代表特征的一个类别,长度代表该类别的频数,宽度没有数学意义。相较于面积,肉眼对于高度要敏感许多,故能很好显示数据间的差距。条形图不同类别之间是有空隙的。


三、饼图(Pie Graph)

饼图(Pie Graph)用于表示不同类别的占比情况,通过弧度大小来对比各种类别。饼图通过将一个圆饼按照类别的占比划分成多个区块,整个圆饼代表数据的总量,每个区块(圆弧)表示该分类占总体的比例大小。饼图可以比较清楚地反映出部分与部分、部分与整体之间的比例关系,易于每个类别相对于总数的大小。但因为对于面积大小的不敏感,某些情况下效果不是很好。

四、箱线图

箱线图的上边缘为最大值,下边缘为最小值,但范围不超过盒型各端加1.5倍IQR(四分位距,即上四分位数与下四分位数的极差)的距离。超出上下边缘的值即视为异常值。

如下灰色框里的就是箱形图(英文:Box plot):又称为盒须图、盒式图、盒状图或箱线图,是一种用作显示一组数据分散情况资料的统计图。因型状如箱子而得名。

箱形图最大的优点就是不受异常值的影响,可以以一种相对稳定的方式描述数据的离散分布情况。

五数概括法:即用下面的五个数来概括数据(最小值;第1四分位数(Q1);中位数(Q2);第3四分位数(Q3);最大值),箱形图与之类似。

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

data = [1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900, 2000, 2100]

df = pd.DataFrame(data)

df.plot.box(title="hua tu")

plt.grid(linestyle="--", alpha=0.3)

plt.show()

五数概括法:描述数据

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

 data = [1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900, 2000, 2100]

df = pd.DataFrame(data)

print(df.describe())

data = [1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900, 2000, 2100]

df = pd.DataFrame(data)

print(df.describe())

df.plot.box(title="hua tu")

plt.grid(linestyle="--", alpha=0.3)

plt.show()

'''输出结果:

count    10.000000    # 条数

mean   1650.000000    # 均值

std     302.765035    # 标准差

min    1200.000000    # 最小值

25%    1425.000000    # 下四分位

50%    1650.000000    # 中位数

75%    1875.000000    # 上四分位

max    2100.000000    # 最大值

'''


价值

1 直观明了地识别数据批中的异常值 箱线图判断异常值的标准以四分位数和四分位距为基础,四分位数具有一定的耐抗性,多达25%的数据可以变得任意远而不会很大地扰动四分位数,所以异常值不会影响箱形图的数据形状,箱线图识别异常值的结果比较客观。由此可见,箱线图在识别异常值方面有一定的优越性。

2 利用箱线图判断数据批的偏态和尾重

对于标准正态分布的样本,只有极少值为异常值。异常值越多说明尾部越重,自由度越小(即自由变动的量的个数);

而偏态表示偏离程度,异常值集中在较小值一侧,则分布呈左偏态;异常值集中在较大值一侧,则分布呈右偏态。

3 利用箱线图比较几批数据的形状

同一数轴上,几批数据的箱线图并行排列,几批数据的中位数、尾长、异常值、分布区间等形状信息便昭然若揭。如上图,可直观得看出第三季度各分公司的销售额大体都在下降。


局限性:不能精确地衡量数据分布的偏态和尾重程度;对于批量比较大的数据,反映的信息更加模糊以及用中位数代表总体评价水平有一定的局限性