Day39.数据分析简介

零基础入门数据挖掘-二手车交易价格预测(Day1数据分析) 零基础入门之数据分析开题语赛题数据字段表评价标准探索性数据分析探索性数据分析的计划基础操作(jupyter notebook环境下)读csv数据输出数据的大小信息浏览数据查看简要信息查看列名数据统计信息浏览查看价格相关性分析结语 开题语 参加比赛的第一件事不是下数据,跑模型,而是要先静下心来读题,磨刀不误砍柴工。 赛题数据 赛题以预测二手车的交易价格为任务,该数据来自某交易平台的二手车交易记... 阅读详情

数据分析简介



前言

今天开始新的征程,关于数据分析部分的内容,主要是对数据分析有一个较为全面的认识。这里先跳过爬虫里面的Django和Spider部分,因为对这个不太熟悉,学起来会太慢,放在后面在学习。


一. 数据分析简介

1.1 数据分析概述

当今世界对信息技术的依赖程度在不断加深,每天都会有大量的数据产生,我们经常会感到数据越来越多,但是要从中发现有价值的信息却越来越难。这里所说的信息,可以理解为对数据集处理之后的结果,是从数据集中提炼出的可用于其他场合的结论性的东西,而从原始数据中抽取出有价值的信息的这个过程我们就称之为数据分析,它是数据科学工作的一部分。

1.2 数据分析师的职责和技能栈

我们通常将从事数据分析、数据科学和数据相关产品的岗位都统称为数据分析岗位,但是根据工作性质的不同,又可以分为数据分析方向、数据挖掘方向、数据产品方向和数据工程方向。我们通常所说的数据分析师主要是指业务数据分析师,很多数据分析师的职业生涯都是从这个岗位开始的,而且这个岗位也是招聘数量最大的岗位。业务数据分析师在公司通常不属于研发部门而属于运营部门,所以这个岗位也称为数据运营或商业分析,通常招聘信息对这个岗位的描述是:

  1. 负责各部门相关的报表。
  2. 建立和优化指标体系。
  3. 监控数据波动和异常,找出问题。
  4. 优化和驱动业务,推动数字化运营。
  5. 找出潜在的市场和产品的上升空间。

根据上面的描述,作为业务数据分析师,我们的工作不是给领导一个简单浅显的结论,而是结合公司的业务,完成揪出异常、找到原因、探索趋势的工作。所以作为数据分析师,不管是用Python语言、Excel、SPSS或其他的商业智能工具,工具只是达成目标的手段,数据思维是核心技能,而从实际业务问题出发到最终发现数据中的商业价值是终极目标。数据分析师在很多公司只是一个基础岗位,精于业务的数据分析师可以向数据分析经理或数据运营总监等管理岗位发展;对于熟悉机器学习算法的数据分析师来说,可以向数据挖掘工程师或算法专家方向发展,而这些岗位除了需要相应的数学和统计学知识,在编程能力方面也比数据分析师有更高的要求,可能还需要有大数据存储和处理的相关经验;作为数据产品经理,除了传统产品经理的技能栈之外,也需要较强的技术能力,例如要了解常用的推荐算法、机器学习模型,能够为算法的改进提供依据,能够制定相关埋点的规范和口径,虽然不需要精通各种算法,但是要站在产品的角度去考虑数据模型、指标、算法等的落地;数据工程师是一个偏技术的岗位,基本上的成长道路都是从SQL开始,逐步向Hadoop生态圈迁移,然后每天跟Flume和Kafka亲密接触的一个过程。

以下是我总结的数据分析师的技能栈,仅供参考。

  1. 计算机科学(数据分析工具、编程语言、数据库、……)
  2. 数学和统计学(数据思维、统计思维)
  3. 人工智能(机器学习算法)
  4. 业务理解能力(沟通、表达、经验)
  5. 总结和表述能力(商业PPT、文字总结)

1.3 数据分析的流程

我们提到数分析这个词很多时候可能指的都是狭义的数据分析,这类数据分析主要目标就是生成可视化报表并通过这些报表来洞察业务中的问题。广义的数据分析还包含了数据挖掘的部分,不仅要通过数据实现对业务的监控和分析,还要利用机器学习算法,找出隐藏在数据背后的知识,并利用这些知识为将来的决策提供支撑。简单的说,一个完整的数据分析应该包括基本的数据分析和深入的数据挖掘两个部分。

基本的数据分析工作一般包含以下几个方面的内容,当然因为行业和工作内容的不同会略有差异。

  1. 确定目标(输入):理解业务,确定指标口径
  2. 获取数据:数据库、电子表格、三方接口、网络爬虫、开放数据集、……
  3. 清洗数据:缺失值处理、异常值处理、格式化处理、数据变换、归一化、离散化、……
  4. 探索数据:运算、统计、分组、聚合、可视化(趋势、变化、分布等)、……
  5. 数据报告(输出):数据发布,工作成果总结汇报
  6. 分析洞察(后续):数据监控、发现趋势、洞察异常、……

深入的数据挖掘工作应该包含一下几个方面的内容,当然因为行业和工作内容的不同会略有差异。

  1. 确定目标(输入):理解业务,明确挖掘目标
  2. 数据准备:数据采集、数据描述、数据探索、质量判定、……
  3. 数据加工:提取数据、清洗数据、数据变换、归一化、离散化、特殊编码、降维、特征选择、……
  4. 数据建模:模型比较、模型选择、算法应用、……
  5. 模型评估:交叉检验、参数调优、结果评价、……
  6. 模型部署(输出):模型落地,业务改进,运营监控、报告撰写

二. 数据分析相关库

2.1 数据分析相关库

使用Python从事数据科学相关的工作是一个非常棒的选择,因为Python整个生态圈中,有大量的成熟的用于数据科学的软件包(工具库)。而且不同于其他的用于数据科学的编程语言(如:Julia、R),Python除了可以用于数据科学,能做的事情还很多,可以说Python语言几乎是无所不能的。

2.2 三大神器

  1. NumPy:支持常见的数组和矩阵操作,通过ndarray类实现了对多维数组的封装,提供了操作这些数组的方法和函数集。由于NumPy内置了并行运算功能,当使用多核CPU时,Numpy会自动做并行计算。
  2. Pandas:pandas的核心是其特有的数据结构DataFrame和Series,这使得pandas可以处理包含不同类型的数据的负责表格和时间序列,这一点是NumPy的ndarray做不到的。使用pandas,可以轻松顺利的加载各种形式的数据,然后对数据进行切片、切块、处理缺失值、聚合、重塑和可视化等操作。
  3. Matplotlib:matplotlib是一个包含各种绘图模块的库,能够根据我们提供的数据创建高质量的图形。此外,matplotlib还提供了pylab模块,这个模块包含了很多像MATLAB一样的绘图组件。

2.3 其他相关库

  1. SciPy:完善了NumPy的功能,封装了大量科学计算的算法,包括线性代数、稀疏矩阵、信号和图像处理、最优化问题、快速傅里叶变换等。
  2. Seaborn:Seaborn是基于matplotlib的图形可视化工具,直接使用matplotlib虽然可以定制出漂亮的统计图表,但是总体来说还不够简单方便,Seaborn相当于是对matplotlib做了封装,让用户能够以更简洁有效的方式做出各种有吸引力的统计图表。
  3. Scikit-learn:Scikit-learn最初是SciPy的一部分,它是Python数据科学运算的核心,提供了大量机器学习可能用到的工具,包括:数据预处理、监督学习(分类、回归)、无监督学习(聚类)、模式选择、交叉检验等。
  4. Statsmodels:包含了经典统计学和经济计量学算法的库。

三. 数据分析相关软件

3.1 安装和使用Anaconda

如果希望快速开始使用Python处理数据科学相关的工作,建议大家直接安装Anaconda,它是工具包最为齐全的Python科学计算发行版本。对于新手来说,先安装官方的Python解释器,再逐个安装工作中会使用到的库文件会比较麻烦,尤其是在Windows环境下,经常会因为构建工具或DLL文件的缺失导致安装失败,而一般新手也很难根据错误提示信息采取正确的解决措施,容易产生严重的挫败感。

对于个人用户来说,可以从Anaconda的官方网站下载它的“个人版(Individual Edition)”安装程序,安装完成后,你的计算机上不仅拥有了Python环境和Spyder(类似于PyCharm的集成开发工具),还拥有了与数据科学工作相关的近200个工具包,包括我们上面提到的那些库。除此之外,Anaconda还提供了一个名为conda的包管理工具,通过这个工具不仅可以管理Python的工具包,还可以用于创建运行Python程序的虚拟环境。

可以通过Anaconda官网提供的下载链接选择适合自己操作系统的安装程序,建议大家选择图形化的安装程序,下载完成后双击安装程序开始安装。

完成安装后,macOS用户可以在“应用程序”或“Launchpad”中找到名为“Anaconda-Navigator”的应用程序,运行该程序可以看到如下所示的界面,我们可以在这里选择需要执行的操作。

对于Windows用户,建议按照安装向导的提示和推荐的选项来安装Anaconda(除了安装路径,基本也没有什么需要选择的),安装完成后可以在“开始菜单”中找到“Anaconda3”。

3.1.1 conda命令

如果希望使用conda工具来管理依赖项或者创建项目的虚拟环境,可以在终端或命令行提示符中使用conda命令。Windows用户可以在“开始菜单”中找到“Anaconda3”,然后点击“Anaconda Prompt”来启动支持conda的命令行提示符。macOS用户建议直接使用“Anaconda-Navigator”中的“Environments”,通过可视化的方式对虚拟环境和依赖项进行管理。

  1. 版本和帮助信息。

    • 查看版本:conda -V或conda --version
    • 获取帮助:conda -h或conda --help
    • 相关信息:conda list
  2. 虚拟环境相关。

    • 显示所有虚拟环境:conda env list
    • 创建虚拟环境:conda create --name venv
    • 指定Python版本创建虚拟环境:conda create --name venv python=3.8
    • 指定Python版本创建虚拟环境并安装指定依赖项:conda create --name venv python=3.8 numpy pandas
    • 通过克隆现有虚拟环境的方式创建虚拟环境:conda create --name venv2 --clone venv
    • 分享虚拟环境并重定向到指定的文件中:conda env export > environment.yml
    • 通过分享的虚拟环境文件创建虚拟环境:conda env create -f environment.yml
    • 激活虚拟环境:conda activate venv
    • 退出虚拟环境:conda deactivate
    • 删除虚拟环境:conda remove --name venv --all

    说明:上面的命令中,venv和venv2是虚拟环境文件夹的名字,可以将其替换为自己喜欢的名字,但是强烈建议使用英文且不要出现空格或其他特殊字符。

  3. 包(三方库或工具)管理。

    • 查看已经安装的包:conda list
    • 搜索指定的包:conda search matplotlib
    • 安装指定的包:conda install matplotlib
    • 更新指定的包:conda update matplotlib
    • 移除指定的包:conda remove matplotlib

    说明:在搜索、安装和更新软件包时,默认会连接到官方网站进行操作,如果觉得速度不给力,可以将默认的官方网站替换为国内的镜像网站,推荐使用清华大学的开源镜像网站。将默认源更换为国内镜像的命令是:conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/。如果需要换回默认源,可以使用命令conda config --remove-key channels。

3.2 使用Notebook

3.2.1 安装和启动Notebook

如果已经安装了Anaconda,macOS用户可以按照上面所说的方式在“Anaconda-Navigator”中直接启动“Jupyter Notebook”(以下统一简称为Notebook)。Windows用户可以在“开始菜单”中找到Anaconda文件夹,接下来选择运行文件夹中的“Jupyter Notebook”就可以开始数据科学的探索之旅。

对于安装了Python环境但是没有安装Anaconda的用户,可以用Python的包管理工具pip来安装jupyter,然后在终端(Windows系统称之为命令行提示符)中运行jupyter notebook命令来启动Notebook,如下所示。

安装Notebook:

pip install jupyter

安装三大神器:

pip install numpy pandas matplotlib

运行Notebook:

jupyter notebook

Notebook是基于网页的用于交互计算的应用程序,可以用于代码开发、文档撰写、代码运行和结果展示。简单的说,你可以在网页中直接编写代码和运行代码,代码的运行结果也会直接在代码块下方进行展示。如在编写代码的过程中需要编写说明文档,可在同一个页面中使用Markdonw格式进行编写,而且可以直接看到渲染后的效果。此外,Notebook的设计初衷是提供一个能够支持多种编程语言的工作环境,目前它能够支持超过40种编程语言,包括Python、R、Julia、Scala等。

首先,我们可以创建一个用于书写Python代码的Notebook,如下图所示。

jupyter-create-notebook

接下来,我们就可以编写代码、撰写文档和运行程序啦,如下图所示。

use-jupyter-notebook

3.2.2 Notebook使用技巧

如果使用Python做工程化的项目开发,PyCharm肯定是最好的选择,它提供了一个集成开发环境应该具有的所有功能,尤其是智能提示、代码补全、自动纠错这类功能会让开发人员感到非常舒服。如果使用Python做数据科学相关的工作,Notebook并不比PyCharm逊色,在数据和图表展示方面Notebook更加优秀。这个工具的使用非常简单,大家可以看看Notebook菜单栏,相信理解起来不会有太多困难,在知乎上有一篇名为《最详尽使用指南:超快上手Jupyter Notebook》的文章,也可以帮助大家快速认识Notebook。

下面我为大家介绍一些Notebook的使用技巧,希望能够帮助大家提升工作效率。

  1. 自动补全。在使用Notebook编写代码时,按Tab键会获得代码提示。

  2. 获得帮助。在使用Notebook时,如果希望了解一个对象(如变量、类、函数等)的相关信息或使用方式,可以在对象后面使用?并运行代码, 窗口下方会显示出对应的信息,帮助我们了解该对象,如下所示。

notebook-get-help

  1. 搜索命名。如果只记得一个类或一个函数名字的一部分,可以使用通配符*并配合?进行搜索,如下所示。

notebook-search-namespace

  1. 调用命令。可以在Notebook中使用!后面跟系统命令的方式来执行系统命令。

  2. 魔法指令。Notebook中有很多非常有趣且有用的魔法指令,例如可以使用%timeit测试语句的执行时间,可以使用%pwd查看当前工作目录等。如果想查看所有的魔法指令,可以使用%lsmagic,如果了解魔法指令的用法,可以使用%magic来查看,如下图所示。

notebook-magic-command

常用的魔法指令有:

| 魔法指令                                    | 功能说明                                   |
| ------------------------------------------- | ------------------------------------------ |
| `%pwd`                                      | 查看当前工作目录                           |
| `%ls`                                       | 列出当前或指定文件夹下的内容               |
| `%cat`                                      | 查看指定文件的内容                         |
| `%hist`                                     | 查看输入历史                               |
| `%matplotlib inline`                        | 设置在页面中嵌入matplotlib输出的统计图表   |
| `%config Inlinebackend.figure_format='svg'` | 设置统计图表使用SVG格式(矢量图)          |
| `%run`                                      | 运行指定的程序                             |
| `%load`                                     | 加载指定的文件到单元格中                   |
| `%quickref`                                 | 显示IPython的快速参考                      |
| `%timeit`                                   | 多次运行代码并统计代码执行时间             |
| `%prun`                                     | 用`cProfile.run`运行代码并显示分析器的输出 |
| `%who` / `%whos`                            | 显示命名空间中的变量                       |
| `%xdel`                                     | 删除一个对象并清理所有对它的引用           |
  1. 快捷键。Notebook中的很多操作可以通过快捷键来实现,使用快捷键可以提升我们的工作效率。Notebook的快捷键又可以分为命令模式下的快捷键和编辑模式下的快捷键,所谓编辑模式就是处于输入代码或撰写文档状态的模式,在编辑模式下按Esc可以回到命令模式,在命令模式下按Enter可以进入编辑模式。

    命令模式下的快捷键:

    快捷键功能说明
    Alt + Enter(Option + Enter)运行当前单元格并在下面插入新的单元格
    Shift + Enter运行当前单元格并选中下方的单元格
    Ctrl + Enter(Command + Enter)运行当前单元格
    j / k、Shift + j / Shift + k选中下方/上方单元格、连续选中下方/上方单元格
    a / b在下方/上方插入新的单元格
    c / x复制单元格 / 剪切单元格
    v / Shift + v在下方/上方粘贴单元格
    dd / z删除单元格 / 恢复删除的单元格
    l / Shift + l显示或隐藏当前/所有单元格行号
    ii / 00中断/重启Notebook内核
    Space / Shift + Space向下/向上滚动页面

    编辑模式下的快捷键:

    快捷键功能说明
    Shift + Tab获得提示信息
    Ctrl + ](Command + ])/ Ctrl + [(Command + [)增加/减少缩进
    Alt + Enter(Option + Enter)运行当前单元格并在下面插入新的单元格
    Shift + Enter运行当前单元格并选中下方的单元格
    Ctrl + Enter(Command + Enter)运行当前单元格
    Ctrl + Left / Right(Command + Left / Right)光标移到行首/行尾
    Ctrl + Up / Down(Command + Up / Down)光标移动代码开头/结尾处
    Up / Down光标上移/下移一行或移到上/下一个单元格

    温馨提示:如果记不住这些快捷键也没有关系,在命令模式下按h键可以打开Notebook的帮助系统,马上就可以看到快捷键的设置,而且可以根据实际的需要重新编辑快捷键,如下图所示。

    notebook-shortcut

3.3 补充知识

温馨提示:GitHub默认不支持对Markdown文档中数学公式的渲染,为了不影响浏览文档,你可以为浏览器安装支持GitHub渲染LaTex数学公式的插件,如Chrome浏览器的MathJax Plugin for GitHub插件、Firefox浏览器的LatexMathifyGitHub插件等。

3.3.1 描述型统计

  1. 集中趋势

    • 众数(mode):数据集合中出现频次最多的数据。数据的趋势越集中,众数的代表性就越好。众数不受极值的影响,但是无法保证唯一性。

    • 均值(mean):均值代表某个数据集的整体水平,它的缺点是容易受极值的影响,可以使用加权平均值来消除极值的影响,但是可能事先并不清楚数据的权重,所以对于正数可以用几何平均值来替代算术平均值,二者的计算公式如下所示。

      算术平均值: x ˉ = ∑ i = 1 n x i n = x 1 + x 2 + ⋯ + x n n \bar{x}=\frac{\sum_{i=1}^{n}x_{i}}{n}=\frac{x_{1}+x_{2}+\cdots +x_{n}}{n} xˉ=n∑i=1n​xi​​=nx1​+x2​+⋯+xn​​

      几何平均值: ( ∏ i = 1 n x i ) 1 n = x 1 x 2 ⋯ x n n \left(\prod_{i=1}^{n}x_{i}\right)^{\frac{1}{n}}={\sqrt[{n}]{x_{1}x_{2} \cdots x_{n}}} (∏i=1n​xi​)n1​=nx1​x2​⋯xn​ ​

    • 分位数:将一个随机变量的概率分布范围分为几个具有相同概率的连续区间,比如最常见的中位数(二分位数,median),就是将数据集划分为数量相等的上下两个部分。除此之外,常见的分位数还有四分位数(quartile)、百分位数(percentile)等。

      • 中位数:当数据量 n n n是奇数时, Q = x n + 1 2 {Q}=x_{\frac{n+1}{2}} Q=x2n+1​​,当数据量 n n n是偶数时, Q = ( x n 2 + x n 2 + 1 ) / 2 Q=(x_{\frac{n}{2}} + x_{{\frac{n}{2}}+1}) / 2 Q=(x2n​​+x2n​+1​)/2。

      • 四分位数:

        第一四分位数( Q 1 Q_1 Q1​),又称较小四分位数或下四分位数,等于该样本中所有数值由小到大排列后第25%的数字。

        第二四分位数( Q 2 Q_2 Q2​),即中位数,等于该样本中所有数值由小到大排列后第50%的数字。

        第三四分位数( Q 3 Q_3 Q3​),又称较大四分位数或上四分位数,等于该样本中所有数值由小到大排列后第75%的数字。

        四分位距离( I Q R IQR IQR,Inter-Quartile Range),即 Q 3 − Q 1 Q_3-Q_1 Q3​−Q1​的值。

        在实际工作中,我们经常通过四分位数再配合箱线图来发现异常值。例如,小于 Q 1 − 1.5 × I Q R Q_1 - 1.5 \times IQR Q1​−1.5×IQR的值或大于 Q 3 + 1.5 × I Q R Q3 + 1.5 \times IQR Q3+1.5×IQR的值可以视为普通异常值,而小于 Q 1 − 3 × I Q R Q_1 - 3 \times IQR Q1​−3×IQR的值或大于 Q 3 + 3 × I Q R Q3 + 3 \times IQR Q3+3×IQR的值通常视为极度异常值。这种检测异常值的方法跟“3 σ \sigma σ”的道理是一致的,如下图所示。
        3sigma

  2. 离散趋势

    • 极值:就是最大值(maximum)、最小值(minimum),代表着数据集合中的上限和下限。
    • 极差(range):又称“全距”,是一组数据中的最大观测值和最小观测值之差,记作 R R R。一般情况下,极差越大,离散程度越大,数据受极值的影响越严重。
    • 方差(variance):将每个值与均值的偏差进行平方,最后除以总数据量的值。简单来说就是表示数据与期望值的偏离程度。方差越大,就意味着每个值与平均值的差值平方和越大、越不稳定、波动越剧烈,因此代表着数据整体比较分散,呈现出离散的趋势;而方差越小,代表着每个值与平均值的差值平方和越小、越稳定、波动越平滑,因此代表着数据整体很集中。
    • 标准差(standard deviation):将方差进行平方根,与方差一样都是表示数据与期望值的偏离程度。
    • 分位差:分位数的差值,如上面提到的四分位距离。
  3. 分布

    • 峰态:峰态就是概率分布曲线的峰值高低,是尖峰、平顶峰,还是正态峰。
    • 偏度:偏度就是峰值与平均值的偏离程度,是左偏还是右偏。

3.3.2 推理性统计

  1. 基本概念

    • 随机试验:在相同条件下对某种随机现象进行观测的试验。随机试验满足三个特点:
      • 可以在相同条件下重复的进行。
      • 每次试验的结果不止一个,事先可以明确指出全部可能的结果。
      • 重复试验的结果以随机的方式出现(事先不确定会出现哪个结果)。
    • 随机变量:如果 X X X指定给概率空间 S S S中每一个事件 e e e有一个实数 X ( e ) X(e) X(e),同时针对每一个实数 r r r都有一个事件集合 A r A_r Ar​与其相对应,其中 A r = { e : X ( e ) ≤ r } A_r=\{e: X(e) \le r\} Ar​={e:X(e)≤r},那么 X X X被称作随机变量。从这个定义看出, X X X的本质是一个实值函数,以给定事件为自变量的实值函数,因为函数在给定自变量时会产生因变量,所以将 X X X称为随机变量。
    • 概率质量函数/概率密度函数:概率质量函数是描述离散型随机变量为特定取值的概率的函数,通常缩写为PMF。概率密度函数是描述连续型随机变量在某个确定的取值点可能性的函数,通常缩写为PDF。二者的区别在于,概率密度函数本身不是概率,只有对概率密度函数在某区间内进行积分后才是概率。
  2. 概率分布

    • 离散型分布:如果随机发生的事件之间是毫无联系的,每一次随机事件发生都是独立的、不连续的、不受其他事件影响的,那么这些事件的概率分布就属于离散型分布。

      • 二项分布(binomial distribution): n n n个独立的是/非试验中成功的次数的离散概率分布,其中每次试验的成功概率为 p p p。一般地,如果随机变量 X X X服从参数为 n n n和 p p p的二项分布,记为 X ∼ B ( n , p ) X\sim B(n,p) X∼B(n,p)。 n n n次试验中正好得到 k k k次成功的概率由概率质量函数给出, f ( k , n , p ) = Pr ⁡ ( X = k ) = ( n k ) p k ( 1 − p ) n − k \displaystyle f(k,n,p)=\Pr(X=k)={n \choose k}p^{k}(1-p)^{n-k} f(k,n,p)=Pr(X=k)=(kn​)pk(1−p)n−k,对于 k = 0 , 1 , 2 , . . . , n k= 0, 1, 2, ..., n k=0,1,2,...,n,其中 ( n k ) = n ! k ! ( n − k ) ! {n \choose k}={\frac {n!}{k!(n-k)!}} (kn​)=k!(n−k)!n!​。
      • 泊松分布(poisson distribution):适合于描述单位时间内随机事件发生的次数的概率分布。如某一服务设施在一定时间内受到的服务请求的次数、汽车站台的候客人数、机器出现的故障数、自然灾害发生的次数、DNA序列的变异数、放射性原子核的衰变数等等。泊松分布的概率质量函数为: P ( X = k ) = e − λ λ k k ! P(X=k)=\frac{e^{-\lambda}\lambda^k}{k!} P(X=k)=k!e−λλk​,泊松分布的参数 λ \lambda λ是单位时间(或单位面积)内随机事件的平均发生率。
    • 连续型分布:

      • 均匀分布(uniform distribution):如果连续型随机变量 X X X具有概率密度函数KaTeX parse error: Undefined control sequence: \mbox at position 76: …\\ {0} \quad &{\̲m̲b̲o̲x̲{other}}\end{ca…,则称 X X X服从 [ a , b ] [a,b] [a,b]上的均匀分布,记作 X ∼ U [ a , b ] X\sim U[a,b] X∼U[a,b]。
      • 指数分布(exponential distribution):如果连续型随机变量 X X X具有概率密度函数 f ( x ) = { λ e − λ x x ≥ 0 0 x < 0 f(x)=\begin{cases} \lambda e^{- \lambda x} \quad &{x \ge 0} \\ {0} \quad &{x \lt 0} \end{cases} f(x)={λe−λx0​x≥0x<0​,则称 X X X服从参数为 λ \lambda λ的指数分布,记为 X ∼ exp ⁡ ( λ ) X \sim \exp(\lambda) X∼exp(λ)。指数分布可以用来表示独立随机事件发生的时间间隔,比如旅客进入机场的时间间隔、客服中心接入电话的时间间隔、知乎上出现新问题的时间间隔等等。指数分布的一个重要特征是无记忆性(无后效性),这表示如果一个随机变量呈指数分布,它的条件概率遵循: P ( T > s + t   ∣   T > t ) = P ( T > s ) , ∀ s , t ≥ 0 P(T \gt s+t\ |\ T \gt t)=P(T \gt s), \forall s,t \ge 0 P(T>s+t ∣ T>t)=P(T>s),∀s,t≥0。
      • 正态分布(normal distribution):又名高斯分布(Gaussian distribution),是一个非常常见的连续概率分布,经常用自然科学和社会科学中来代表一个不明的随机变量。若随机变量 X X X服从一个位置参数为 μ \mu μ、尺度参数为 σ \sigma σ的正态分布,记为 X ∼ N ( μ , σ 2 ) X \sim N(\mu,\sigma^2) X∼N(μ,σ2),其概率密度函数为: f ( x ) = 1 σ 2 π e − ( x − μ ) 2 2 σ 2 \displaystyle f(x)={\frac {1}{\sigma {\sqrt {2\pi }}}}e^{-{\frac {\left(x-\mu \right)^{2}}{2\sigma ^{2}}}} f(x)=σ2π ​1​e−2σ2(x−μ)2​。
      • 伽马分布(gamma distribution):假设 X 1 , X 2 , . . . X n X_1, X_2, ... X_n X1​,X2​,...Xn​为连续发生事件的等候时间,且这 n n n次等候时间为独立的,那么这 n n n次等候时间之和 Y Y Y( Y = X 1 + X 2 + . . . + X n Y=X_1+X_2+...+X_n Y=X1​+X2​+...+Xn​)服从伽玛分布,即 Y ∼ Γ ( α , β ) Y \sim \Gamma(\alpha,\beta) Y∼Γ(α,β),其中 α = n , β = λ \alpha=n, \beta=\lambda α=n,β=λ,这里的 λ \lambda λ是连续发生事件的平均发生频率。
      • 卡方分布(chi-square distribution):若 k k k个随机变量 Z 1 , Z 2 , . . . , Z k Z_1,Z_2,...,Z_k Z1​,Z2​,...,Zk​是相互独立且符合标准正态分布(数学期望为0,方差为1)的随机变量,则随机变量 Z Z Z的平方和 X = ∑ i = 1 k Z i 2 X=\sum_{i=1}^{k}Z_i^2 X=∑i=1k​Zi2​被称为服从自由度为 k k k的卡方分布,记为 X ∼ χ 2 ( k ) X \sim \chi^2(k) X∼χ2(k)。
  3. 大数定律:样本数量越多,则其算术平均值就有越高的概率接近期望值。

    • 弱大数定律(辛钦定理):样本均值依概率收敛于期望值,即对于任意正数 ϵ \epsilon ϵ,有: lim ⁡ n → ∞ P ( ∣ X n ˉ − μ ∣ > ϵ ) = 0 \lim_{n \to \infty}P(|\bar{X_n}-\mu|>\epsilon)=0 limn→∞​P(∣Xn​ˉ​−μ∣>ϵ)=0。
    • 强大数定律:样本均值以概率1收敛于期望值,即: P ( lim ⁡ n → ∞ X n ˉ = μ ) = 1 P(\lim_{n \to \infty}\bar{X_n}=\mu)=1 P(limn→∞​Xn​ˉ​=μ)=1。
  4. 中心极限定理:如果统计对象是大量独立的随机变量,那么这些变量的平均值分布就会趋向于正态分布,不管原来它们的概率分布是什么类型,即: X 1 , X 2 , . . . , X n X_1, X_2, ..., X_n X1​,X2​,...,Xn​是一组独立同分布的随机变量,且有 E ( x i ) = μ , D ( X i ) = σ 2 E(x_i)=\mu, D(X_i)=\sigma ^2 E(xi​)=μ,D(Xi​)=σ2,当 n n n足够大时,均值 X ˉ = ∑ i n X i n \bar{X}=\frac{\sum_i^nX_i}{n} Xˉ=n∑in​Xi​​的分布接近于 N ( μ , σ 2 / n ) N(\mu,\sigma ^2/n) N(μ,σ2/n)正态分布,如果对 X ˉ \bar{X} Xˉ进行标准化处理,可以得到 X ′ = X ˉ − μ σ / n X'=\frac{\bar{X} - \mu}{\sigma / \sqrt n} X′=σ/n ​Xˉ−μ​标准正态分布。

  5. 假设检验

    假设检验就是通过抽取样本数据,并且通过小概率反证法去验证整体情况的方法。假设检验的核心思想是小概率反证法(首先假设想推翻的命题是成立的,然后试图找出矛盾,找出不合理的地方来证明命题为假命题),即在原假设(零假设,null hypothesis)的前提下,估算某事件发生的可能性,如果该事件是小概率事件,在一次研究中本来是不可能发生的,现在却发生了,这时候就可以推翻原假设,接受备择假设(alternative hypothesis)。如果该事件不是小概率事件,我们就找不到理由来推翻之前的假设,实际中可引申为接受所做的无效假设。

    假设检验会存在两种错误情况,一种称为“拒真”,一种称为“取伪”。如果原假设是对的,但你拒绝了原假设,这种错误就叫作“拒真”,这个错误的概率也叫作显著性水平 α \alpha α,或称为容忍度;如果原假设是错的,但你承认了原假设,这种错误就叫作“取伪”,这个错误的概率我们记为 β \beta β。

  6. 条件概率和贝叶斯定理

    条件概率是指事件A在事件B发生的条件下发生的概率,通常记为 P ( A ∣ B ) P(A|B) P(A∣B)。设A与B为样本空间 Ω \Omega Ω中的两个事件,其中 P ( B ) > 0 P(B) \gt 0 P(B)>0。那么在事件B发生的条件下,事件A发生的条件概率为: P ( A ∣ B ) = P ( A ∩ B ) P ( B ) P(A|B)=\frac{P(A \cap B)}{P(B)} P(A∣B)=P(B)P(A∩B)​,其中 P ( A ∩ B ) P(A \cap B) P(A∩B)是联合概率,即A和B两个事件共同发生的概率。

    事件A在事件B已发生的条件下发生的概率,与事件B在事件A已发生的条件下发生的概率是不一样的。然而,这两者是有确定的关系的,贝叶斯定理就是对这种关系的陈述,即: P ( A ∣ B ) = P ( A ) P ( B ∣ A ) P ( B ) P(A|B)=\frac{P(A)P(B|A)}{P(B)} P(A∣B)=P(B)P(A)P(B∣A)​,其中:

    • P ( A ∣ B ) P(A|B) P(A∣B)是已知B发生后,A的条件概率,也称为A的后验概率。
    • P ( A ) P(A) P(A)是A的先验概率(也称为边缘概率),是不考虑B时A发生的概率。
    • P ( B ∣ A ) P(B|A) P(B∣A)是已知A发生后,B的条件概率,称为B的似然性。
    • P ( B ) P(B) P(B)是B的先验概率。

    按照上面的描述,贝叶斯定理可以表述为:后验概率 = (似然性 * 先验概率) / 标准化常量​,简单的说就是后验概率与先验概率和相似度的乘积成正比。

描述性统计通常用于研究表象,将现象用数据的方式描述出来;推理性统计通常用于推测本质,也就是你看到的表象的东西有多大概率符合你对隐藏在表象后的本质的猜测。


总结

今天主要是认识了数据分析的相关工作流程以及一些常用的神器。最后的补充知识,算是又把统计学的内容又从新认识了一遍,加油。

溜了溜,脑壳疼。Loading(39/100)。。。

《Python数据分析:活用pandas库》学习笔记Day1:Panda DataFrame基础知识 pandas主要是用来进行数据处理/数据分析的第三方库,其中不仅包含了数据处理、甚至还有统计分析等相关计算,其内部封装了numpy的相关组件。 pandas的主要数据类型有:series(一维结构)、dataframe(二维结构)、pannel(三维结构) 阅读详情

相关推荐

用AT7456E给监控摄像头加OSD?5步搞定时间水印和Logo叠加

本文详细解析了如何使用AT7456E视频字符叠加芯片为监控系统添加专业级OSD功能,涵盖硬件设计、字符库编程和系统集成等关键步骤。通过5步操作实现时间水印和Logo叠加,提升监控系统的可用性和专业性,特别适合安防和工业视觉应用。

sea99的博客 1012

商务数据分析python简介_Python商务数据分析

第01课matplotlib的介绍课时1课程介绍00 :10 :27开始学习课时2环境搭建00 :06 :54开始学习课时3juprter的优点00 :06 :06开始学习课时4jupyter的使用00 :16 :39开始学习第02课折线图(plot)课时1matplotlib的介绍00 :07 :37开始学习课时2matplotlib的扩展介绍00 :07 :33开始学习课时3plot折线图00...

weixin_34544513的博客 591

基于单片机红外线遥控Proteus仿真电路发射接收

*单片机设计介绍,基于单片机红外线遥控Proteus仿真电路发射接收。

2201_75940997的博客 3942

day39

【代码】day39。

m0_61080320的博客 262

GitLab教程(四):分支(branch)和合并(merge)

命令进行合并时,Git具备一定的智能自动化处理能力:如果一个分支仅修改了文件A,而另一个分支独立地修改了文件B,Git能够无缝整合这些更改,自动完成合并过程——即最终的代码既包含了对A文件的修改也包含了对B文件的修改。同样地,若两个分支虽然都修改了同一个文件,但涉及的是文件中互不重叠的部分,比如一个改动发生在第一行,另一个则在第二行,Git同样能巧妙地自动合并这些非冲突性修改。获取了远程分支的最新变化,或者当你想要合并本地的一个分支到当前分支时,就会用到这个命令。,默认会尝试合并远程分支到当前分支。

TracyCoder的博客 7885

FPGA笔试题知识点汇总(21~40)

FPGA笔试题知识点汇总(21~40)

weixin_52487896的博客 5875

day-047-实战项目-探索性数据分析

ExploratoryDataAnalysis(探索性数据分析)= 在看数据的过程中提出假设、验证假设、发现规律。groupby()agg()+ 可视化。以下数据沿用 Day 46 清洗后的 DataFramedf。如果从新环境开始,请先运行 Day 46 的数据生成和清洗代码。print("📋 探索性数据分析——关键发现")# 用代码自动生成总结# 1. 区域差异top_d = district_price["均价"].idxmax()

chouchuang的博客 218

FCL碰撞检测库在Windows下的编译与配置(MinGW+CMake)

本文详细介绍了在Windows系统下使用MinGW和CMake编译配置FCL碰撞检测库的完整流程。内容涵盖MinGW-w64、CMake的安装与环境配置,关键依赖库Eigen和libccd的安装,以及FCL源码的编译、安装与实战测试。重点解析了CMake配置命令中的关键参数与常见错误解决方案,旨在帮助开发者高效完成FCL在Windows平台的部署,适用于机器人、游戏物理引擎等需要精确碰撞检测的开发场景。

sunny的博客 483

数据分析-excel

无

feverfew1的博客 371

风光互补制氢系统动态仿真建模与性能分析

摘要 本文针对离网型风光互补制氢系统,建立了包含光伏阵列、风力发电机、PEM电解槽、储能电池和储氢罐的完整动态数学模型。基于MATLAB/Simulink平台开发了模块化仿真框架,设计了考虑电解槽最小运行功率约束的能量管理策略。通过典型日仿真分析表明,风光互补可有效平抑单一能源的功率波动,系统整体能量效率达58.7%,电解槽负荷跟随特性良好。提出的动态仿真方法为风光制氢系统的优化设计和运行控制提供了有效工具。 关键词:风光互补制氢;PEM电解槽;动态仿真;MATLAB/Simulink;能量管理

huanghm88的专栏 76

阅文集团大数据面试题及参考答案

在 Flink 中,watermark 是一种用于处理乱序事件时间的机制。实现接口:通常需要实现 AssignerWithPeriodicWatermarks 或 AssignerWithPunctuatedWatermarks 接口。前者会周期性地生成 watermark,后者则是基于某些特定事件来生成 watermark ,比如接收到某个特定值的消息时。定义位置:可以在数据源处或者在流处理的中间操作中定义 watermark。在数据源定义时,能更精准地根据数据的产生特性设置 watermark;

大模型大数据攻城狮的专栏 1088

python数据分析 pdf-【python数据分析+pdf】百度云下载 - 云盘精灵

|- 数据 - 文件夹|- 培训视频 - 文件夹|- 培训课件 - 文件夹|- 爬虫图片 - 文件夹|- 《Spark大数据编程基础(Scala版)》PPT - 文件夹|- Python数据分析应用视频 - 文件夹|- Python数据分析应用课件&数据&代码 - 文件夹|- 小合影20191028_2_小【ctokey论坛 www.ctokey.com】.jpg - 1.60 MB|- 人民邮电...

weixin_37988176的博客 1702

UG\NX二次开发 替换部件引用集UF_ASSEM_replace_refset

替换部件引用集UF_ASSEM_replace_refset,需要替换成“完整部件(Entire Part)”需要第三个参数传入空指针或者空字符串。

王牌飞行员_里海的博客 255

python数据分析教程百度云资源-【python数据分析+pdf】百度云下载 - 云盘精灵

|- 数据 - 文件夹|- 培训视频 - 文件夹|- 培训课件 - 文件夹|- 爬虫图片 - 文件夹|- 《Spark大数据编程基础(Scala版)》PPT - 文件夹|- Python数据分析应用视频 - 文件夹|- Python数据分析应用课件&数据&代码 - 文件夹|- 小合影20191028_2_小【ctokey论坛 www.ctokey.com】.jpg - 1.60 MB|- 人民邮电...

weixin_39903846的博客 3391

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

智慧交通day00-项目简介

汽车的日益普及在给人们带来极大便利的同时,也导致了拥堵的交通路况,以及更为频发的交通事故。智能交通技术已成为推动现代技术交通技术发展的重要力量,智能交通不仅能够提供实时的交通路况信息,帮助交通管理者规划管理策略,而且还能优化出行者的出行策略。还可以减轻交通道路的堵塞情况,降低交通事故的发生概率,提高道路运行的安全系数。 本项目分两个模块: 一个是基于视频的车辆跟踪及流量统计,是一个可跟踪路面实时车辆通行状况,并逐帧记录不同行车道车流量数目的深度学习项目,在视频中可看出每个车辆的连续帧路径,该项目可拓

小李的研究生学习日记 9204

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

网易数据分析实战营12.21-12.23

为什么要学数据分析? 数据分析是什么? 数据分析流程 业务理解 数据收集 数据处理 数据分析 图表制作 报表绘制 数据分析重在对业务的理解,这种理解其实是思维逻辑能力的体现,而数据分析工具是为了将对业务的理解以更加高效的方式呈现、传递出来,而建立思维逻辑和对业务进行数据分析的框架体系更重要。而进行数据分析过程中的可视化其实是在传递影响力。 数据分析不需要太多的数理统计、理科专业知识以及高阶变成能力,更重要的是基于对业务的理解和分析,进而完成对数据的分析和对工具的操作。 Day1:5步搞定A/B t.

momokofly的博客 2699

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

numpy数据分析

python数据分析常用库 numpy基础 ndarry数组 1.ndarry数组支持矢量化运算 2.内存中ndarry对象包含两部分:元数据与实际数据 3.numpy提供多种创建数组方法 import numpy as np ary = np.array([[1, 2, 3], [4, 5, 6]]) print(ary, type(ary)) ary2 = np.arange(0, 10, 2) # 步长为2 print(ary2) ary3 = np.ones(10) # 构

weixin_55643605的博客 1536

数据分析-概念篇

本文介绍了Python数据分析的基本流程与常用工具。主要内容包括:1)数据分析任务链(数据收集、清洗、转换、处理、可视化及报告撰写);2)七大核心Python库(NumPy、Pandas、Matplotlib等);3)Anaconda环境管理操作(创建/移除环境、版本切换等);4)Jupyter Notebook使用技巧(三种启动方式、快捷键操作)。文章为数据分析初学者提供了工具选择和环境配置的实用指南,涵盖从数据处理到可视化的全流程技术栈。

weixin_67868534的博客 401

数据分析基础知识学习之Excel

最近在学习数据分析,看了b站上戴戴戴师兄的课,在这里记录一下笔记 ~分析-显示-字段列表筛选器切片器差别是:筛选器只作用于数据透视表,而切片器可以作用于整个表,也可直接复制到其他工作表。数据透视图(可按需选择各种类型的图标自动生成)

weixin_61926490的博客 772

Excel数据分析常用的50个函数

EOMONTH(开始日期,月份数)

CDA数据分析师 4452

Multimodal Machine Learning day39

评价体系。

weixin_44887311的博客 120

Day01-Numpy-文档

Day01-Numpy 人工智能课程 介绍人工智能课程设计,课件,资料 数据分析,机器学习,深度学习, 发展方向——计算机专业,数学专业,统计学专业 数据分析师——商务分析,与业务紧密相关,excel,sql,图标报告, 数据挖掘工程师——python,pandas,numpy,matplotlib,数据预处理,数据清洗,数据归一化, 机器学习算法工程师——sklearn,scipy,statsmodels,建模 深度学习算法工程师——TensorFlow,pytorch,caffe,计算机视觉,推荐算法,

weixin_45231460的博客 510

python数据分析之NumPy详解

一、NumPy介绍 NumPy(Numerical Python)是Python的一个开源数值计算库。可用来存储和处理大型矩阵,比python自身

2401_83283514的博客 1460

day39 模型可视化与推理

@浙大疏锦行

Mqh180762的博客 217

【Python数据分析】用户通话行为分析

主要工作: 1.对从网上营业厅拿到的用户数据.xls文件,通过Python的xlrd进行解析,计算用户的主叫被叫次数,通话时间,通话时段。 2.使用matplotlib画图包,将分析的结果直观的绘制出来。 具体步骤: 1.分析须要的内容 excel文件中包含很多信息,我们分析的时候须要用到的包括,通话起始时间、通话时长、呼叫类型,号码。 使用xlrd模块,读取exc...

1059

数据分析课堂笔记Day6(20221118)

等等

zhangting_123abc的博客 535
上一篇: Day38.NoSQL数据库入门
下一篇: Day40.Numpy的应用
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值