数据分析学习笔记

已发布 2017-12-28 12:02:47

最近在udacity上报了数据分析的进阶课程,在此开一篇文章记录下学习过程。

笔记内容可能来自课程内内容,也可能来自于互联网上其他资源。对于重要的内容我会再文末留下链接用于回溯和参考。

了解数据分析

课程介绍

  • 入门课程
    • Python入门
    • 了解常见流程
    • 用Python做数据分析
    • 统计学基础知识
  • 进阶课程
    • 数据清洗
    • 探索性数据分析
    • 可视化
  • 进阶求值
    • +8周求职内容
    • 简历
    • 领英、Github档案简历
    • 行为导向模拟面试
    • 技术模拟面试

讲师组成

  • 博士毕业生
  • 计算机科学家
  • 数据科学家
  • 公司创始人
  • 工程师
  • 数据分析课程的项目总监

其中

Sebastian Thrun 优达学城创始人

斯坦福大学终身教授,Google 无人车之父,作为一名计算机科学家,创办和投身于 Udacity 后,他致力于为全世界各个年龄段的知识爱好者提供最前沿的硅谷高等教育方式。

进阶课程要求

  • SQL技能:熟练使用 SELECT, FROM, GROUP BY, WHERE, HAVING, ORDER, MIN, MAX, COUNT
  • SQL技能:熟悉 LEFT JOIN, OUTER JOIN, INNER JOIN 的区别
  • SQL技能:熟悉子查询(Sub Query)
  • Python技能:熟练使用 Python:循环,条件判断,字符串,整形数,浮点数,字典,列表,函数定义与调用
  • Python(或R)技能:熟练读取、写入 CSV
  • Python(或R)技能:熟练筛选数据表,查看基本表格属性,分组与聚合
  • Python(或R)技能:熟练作图(条形图,直方图,散点图等):Matplotlib in Python 或者 Ggplot2 in R
  • Python(或R)技能:熟练重命名表头,函数映射(apply)

数据分析的常见流程

  1. 提出问题
  2. 数据收集与清洗(大部分的时间消耗在这里?)
    • 了解数据来源
    • 根据使用目的来清洗数据
    • 需要掌握高效的清洗技能
  3. 数据探索
    • 数据的体积很大,几百MB上GB
  4. 得出结论或作出预测
    • 选出最佳的发现来回答问题(选择性盲目?)
    • 有时建立机器学习模型来对未来的数据做出预测
  5. 结果交流(报告)

收集数据

评估数据

据说 80% 的数据分析时间用于清洗和准备数据。

数据集是杂乱还是具有条理,这取决于行、列和表如何与观察值、变量和类型匹配。具有条理的数据具有以下特征:

  • 每个变量构成一列。
  • 每个观察结果构成一行。
  • 每种类型的观察单位构成一个表格。

在用pandas库评估数据的时候,可以使用 data frame 的df.head(), df.tail(), df.info()series.value_counts()方法。

df.info() result:

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 19001 entries, 0 to 19000
Data columns (total ?? columns):
jobpost             19001 non-null object
date                19001 non-null object
Title               18973 non-null object
Company             18994 non-null object
AnnouncementCode    1208 non-null object
Term                7676 non-null object
Eligibility         4930 non-null object
Audience            640 non-null object
StartDate           9675 non-null object
Duration            10798 non-null object
Location            18969 non-null object
dtypes: bool(1), int64(2), object(21)
memory usage: 3.4+ MB

清洗数据

评估、清洗迭代

整理与EDA、ETL

EDA 探索性数据分析

ETL (extract-transform-load)

分析与可视化

数据整理总结

工具

项目

思维

  • Learning by doing 是最高效的学习方法
    • 需要有能力自己寻找解决方案,并且实现它
    • 不断练习、巩固
  • 顶尖科技企业最看中的应聘者能力是项目能力解决问题的能力
    • 实战项目能够帮助你真正掌握技能,更可以展示你解决问题的能力

数学知识

  • 概率常识
  • 贝叶斯定理
  • 描述统计学(descriptive statistics)
  • 推断统计学(inferential statistics)
    • 假设(hypothesis)检验

具体内容:

  • 正态分布(normal distribution)
    • 总体(population)均值(mean)、标准差(standard deviation)
    • 抽样(sample)均值、标准差
      • 抽样的定义:在统计学中,抽样(Sampling)是一种推论统计方法,它是指从目标总体(Population,或称为母体)中抽取一部分个体作为样本(Sample),通过观察样本的某一或某些属性,依据所获得的数据对总体的数量特征得出具有一定可靠性的估计判断,从而达到对总体的认识。
      • 抽样获得的是一组样本数据。
    • 抽样均值的分布:从总体里选出所有的固定大小的一组样本,计算平均值,所有的均值构成这个分布
    • z-score:这是一种衡量单个样本和总体均值偏离的数字
      • Z-Score: Definition, Formula and Calculation
      • 1.单样本的 z-score
        • 单样本对应总体 z
        • 单样本对应抽样 zi
      • 2.抽样均值的 z-score:衡量抽样对应总体的误差
        • 残差:残差在数理统计中是指实际观察值与估计值(拟合值)之间的差。如果回归模型正确的话, 我们可以将残差看作误差的观测值。
          • 残差是对观察值和估计值的度量,误差是对观察值和实际值的度量。
        • 抽样平均值的标准差:
        • 抽样平均值的标准误:
          • 因为一般不知道总体的标准差(σ),会用抽样的标准差(s)来估计(how?)总体的标准差
      • z-score 值一般从最小-3到最大3;0 表示样本刚好等于平均值;超出这个范围的概率为 1%
      • z-table: 通过查表,计算单样本位于某个样本值之下的概率。所给参数为这个参考样本的 z-score
    • 集中趋势测量、变异测量
  • 假设检验
    • 假设:零假设H0、备选假设H1
    • 假设检验的种类包括:t检验,Z检验,卡方检验,F检验等等
    • 检验统计量
      • 显著性水平
      • 置信度
      • 置信区间(confidence interval)
        • 如何理解
        • 如何理解2
        • 置信区间是频率学派的理论
          • 核心:用样本去估计总体
          • 置信区间只与当前所使用的样本有关,与总体无关;总体参数是不变的
          • 多个样本的置信区间有置信度的可能覆盖到这个总体参数
        • 贝叶斯(Bayes)学派有一个信仰区间
          • 信仰区间只有一个
          • 这个区间有一定的大概率包含真值
      • 拒绝域
    • 第一类错误(Type I error、阳性判断错误)、第二类错误(Type II error、阴性判断错误)
    • P(Probability,Pr)值
      • P值是进行检验决策的另一个依据。
      • 统计学根据显著性检验方法所得到的P 值,一般以P < 0.05 为有统计学差异, P<0.01 为有显著统计学差异,P<0.001为有极其显著的统计学差异。
      • P值代表零假设成立的可能性
      • 如果P值小于显著性水平(0.05, 0.01)则说明零假设不可能发生,可以拒绝零假设
      • P值与α值的关系? - 知乎
    • t检验 udacity问答
      • 分类(检验的类型 - Minitab)
        • 单样本
        • 双样本
          • 独立样本
          • 相依样本
      • 选择配对t检验还是双样本t检验
        • 如果分数之前和之后的示例工作表中每一行表示相同的主题,则是有意义的计算分数的区别,在这个时候选择配对t检验是适当的。 然而,如果分数在每一行都是为不同的主题,它没有意义来计算差别。 在这种情况下,您需要使用另外一个检验,如双样本t检验。
        • 对单样本t检验、双样本t检验以及配对t检验的理解
    • 自由度(degree of freedom, df)样本中能自由变化的变量的个数,称为改统计量的自由度
  • 抽象概念
    • 操作定义:将一些事物如变量、术语与客体等以某种操作的方式表示出来。操作定义与概念型定义相区别,强调确立事物特征时所采纳的流程、过程或测试与检验方式。
  • 试验性研究、观察性研究

面试

接触到的相关软件和商业产品

软件

  • SQL
  • Python
    • numpy
    • pandas
    • Jupyter
  • R
  • Tableau

产品

comments powered by Disqus