前言
这门课我不算很感兴趣。纯当记录吧。
这个老师怎么这么爱互动。。。。压力up
第一二节课基本全是高中信息技术加概率论学过的东西:什么是数据,什么是信息之类云云。不过既然笔记不只是写给自己看的,所以就记了些关键词让AI扩充,把概念展开讲讲,算是顺便帮没学过的同学补个课。
数据挖掘(Data Mining)
data mining,数据挖掘。名字听着高大上,实际干的事就一句话:从一大堆数据里把有价值的模式和规律挖出来。最经典的案例就是”超市发现买啤酒的人经常顺手买尿布”,于是把俩货架摆到一起,销量双丰收。
它通常被放在 KDD(Knowledge Discovery in Databases,数据库知识发现)流程的核心环节里:
原始数据 → 数据预处理 → 数据挖掘 → 解释与评估 → 知识
注意挖掘本身只占中间一环,前面的清洗铺垫和后面的解释评估同样是工作量的大头。这也决定了这门课的展开顺序:先认识数据,再学怎么洗数据,最后才是统计与分析。
数据长什么样:数据的类型
结构化 vs 非结构化
按组织形式,数据可以分成三类:
- 结构化数据(structured):有固定的字段和格式,能直接塞进二维表。比如 Excel 表格、成绩单、数据库里的学生表。
- 半结构化数据(semi-structured):没有严格的表结构,但自带描述信息的标记。典型代表是 JSON 和 XML——写嵌入式的对 JSON 应该不陌生,蓝牙广播包的解析配置就是它。
- 非结构化数据(unstructured):完全没有预设格式,文本、图片、音频、视频都是。现实世界里最占存储的恰恰是这类。
变量类型:categorical vs numerical
数据表里的每一列叫一个变量(variable)。按取值的性质,变量分成两大门派:
| 大类 | 子类 | 举例 | 能做的运算 |
|---|---|---|---|
| 分类变量(categorical) | 定类(nominal):只有类别之分,没有顺序 | 血型、性别、专业 | 计数、求占比、众数 |
| 定序(ordinal):类别之间有高低之分 | 满意度(差/一般/好)、年级 | 上面全部 + 排序 | |
| 定量变量(quantitative / numerical) | 离散(discrete):取值可数 | 人数、报错次数 | 上面全部 + 加减、平均 |
| 连续(continuous):取值不可数,任意精度 | 身高、温度、电压 | 全部数学运算 |
分这个类绝对不是闲的,变量类型决定了后面能用什么工具:分类变量谈不了”平均血型”,只能数个数看占比;定量变量才有资格算均值、方差、画直方图。拿到数据先看一眼类型,能避开一大半低级错误。
顺带一提存储类型(data type):同一个变量在不同软件里还有存储层面的区分,比如 numpy 里的 int64(64 位整数)、float64(64 位浮点数)、string、bool 之类。float 和 int 的恩怨情仇、精度和溢出,写过 C 的都懂,不赘述了。第二节课在 elona 上讲的差不多就是这些,依然是很简单的东西。
(分类变量定量变量这块老师整了个大活())
数据预处理(Data Preparation)
必须先建立一个认知:现实中的数据是脏的。预处理就是洗数据,常见工作四类:
- 处理错误(handling errors):录入错误(年龄填成 200)、明显异常的值、单位写错。
- 处理残缺(handling missing):数据缺了怎么办。简单粗暴是整行删掉,但数据本来就少的时候很亏;更常用的做法是填补(imputation)——数值型变量用均值或中位数填,分类型变量用众数填。
- 去重(deduplication):同一条记录被录了两遍,删掉一份。
- 格式化(formatting):统一单位(米 vs 厘米)、统一日期格式、统一大小写。不然后面统计的时候”hangzhou”“Hangzhou”“HZ”会被当成三个城市。
一句话总结:garbage in, garbage out。上游数据是脏的,后面的模型再漂亮也是白搭。
统计学的两大门派
统计学可以分为描述性的(总结),另外一种是推理性的(预测):
- 描述统计(descriptive statistics):把手头这堆数据总结成几个数、几张图。全班期末平均分 75——说的就只是这 75 个人,对外面的事不置可否。
- 推断统计(inferential statistics):用手头的样本去推测更大总体的性质。尝一勺汤,判断整锅的咸淡。涉及抽样、参数估计、假设检验,是概率论真正的地盘,这门课后面应该会讲到。
集中趋势:mean、median、mode
描述一组定量数据”中心在哪”,有三个最常用的数:
| 指标 | 中文 | 怎么算 | 特点 |
|---|---|---|---|
| mean | 平均数 | 所有值加起来除以个数 | 用到了每个数据的信息,但对极端值毫无抵抗力 |
| median | 中位数 | 排序后正中间的那个数 | 对极端值免疫 |
| mode | 众数 | 出现次数最多的值 | The mode is the value that a quantity takes most often。唯一一个在分类变量上也能用的 |
经典陷阱是”平均工资”:5 个员工月薪 5k,老板月薪 100w,平均下来”人均月薪 17w”,一片祥和;但中位数依然是 5k。数据分布偏态(有少数极端大值)的时候,中位数比均值诚实得多——所以看房价、看收入,正经报告都会把 median 拎出来单独说。
分位数:percentile 与 quartile
想更细致地描述数据的分布位置,就要用到分位数。套路是固定的:先 sort(排序),再谈位置。
- 百分位数(percentile):P 分位数指的是”至少有 P% 的数据不超过它”。比如第 90 百分位数,就是 90% 的数据都排在它下面。
- 四分位数(quartile):把排序后的数据切成四份的三个分位点。Q1 是 25% 位置(First quartile),Q2 就是中位数,Q3 是 75% 位置(Third quartile)。
(这怎么都是概率论的玩意,复习来了) - 四分位距(IQR, interquartile range):IQR = Q3 − Q1,即中间那 50% 数据的跨度。比起极差(max − min),它不受两端极端值影响,是更稳健的”数据有多散”的度量。
后面出现的 OUTliers、median、maximum、minimum 这些关键词,拼起来其实是箱线图(boxplot)的五数概括(five-number summary):
minimum, Q1, median, Q3, maximum
箱线图就是把这五个数画在一张图上,一眼看出数据中心在哪、有多散、分布对不对称。它的隐藏功能是识别离群点(outlier):
- 正常范围:
[Q1 − 1.5×IQR, Q3 + 1.5×IQR] - 超出这个范围的点就是离群点,在箱线图上画成单独的点点。
离群点不一定是错误(也可能真是天才/异常样本),但一定会拉偏均值,所以它和预处理那一节是连着的:发现离群点 → 判断是删是留。
相关性分析(Correlation Analysis)
correlation ≠ causation
有关系不代表是原因。例如冰淇淋卖得好的时候,溺水的人也多——显然不是冰淇淋把人淹死的,背后的混杂变量(confounder)是气温:天热了,既有人买冰淇淋,也有人去游泳,两个数据于是同涨同跌。
所以两个变量相关,可能是:A 导致 B、B 导致 A、C 同时导致 A 和 B、或者纯属巧合。相关性分析只负责告诉你”它们一起动”,因果得靠受控实验或者更深的领域知识去论证。
Pearson 相关系数 r
量化”一起动的程度”最常用的工具是皮尔逊相关系数(Pearson correlation coefficient)r:
| r 值 | 含义 |
|---|---|
| r = 1 | 完全正线性相关(一条直线往右上) |
| 0 < r < 1 | 正相关:一个涨另一个也倾向于涨,越接近 1 越强 |
| r = 0 | 无线性相关 |
| −1 < r < 0 | 负相关:一个涨另一个倾向于跌 |
| r = −1 | 完全负线性相关(一条直线往右下) |
三个容易踩的坑:
- r = 0 不代表没关系,只代表没有线性关系。y = x²(x 关于 0 对称取值)和 x 的 r 就是 0,但关系铁得很。r 只看”像不像一条直线”。
- 对离群点极其敏感:一个离谱的数据点能把 r 从 0.2 拉到 0.9,所以看 r 之前先画散点图。
- r 算出来了也回不到因果——参见上一节,冰淇淋警告。
数据分析流程
课上给的标准流程,一步都不能省:
- 任务理解(task understanding):到底要回答什么问题。这一步不清晰,后面全白干。
- 数据收集(data collection):从数据库、问卷、传感器(没错,你手里那块开发板也是数据源)里把数据弄到手。
- 数据预处理:就是前面说的洗数据。
- 分析与建模:统计、可视化、上模型。
- 结果解释与汇报:把结论翻译成人话,讲给不懂统计的人听。
课上只展开了前两步,后面的先记个框架(之后再补了,不重要)。
假设检验(Hypothesis Testing)
还是概率论与统计的内容。
假设检验是推断统计的核心操作,一句话概括:先立一个默认假设当靶子,再看数据打不打得倒它。
H0 与 H1
- 原假设(null hypothesis,H0):默认成立、等着被挑战的假设,内容一般是”没效果、没差异、一切正常”——”今年平均分和往年没区别”“新广告对点击率没有提升”。
- 备择假设(alternative hypothesis,H1):我们想用数据去证明的东西——”有差异、有效果”。它和 H0 互补:H0 说等于,H1 就说不等于。
书写上有个铁规矩:等号永远写在 H0 这边。
H0: μ = 175 (默认:圣光机学生平均身高就是 175,没变化)
H1: μ ≠ 175 (备选:平均身高不是 175,有变化)
判决逻辑:法庭类比
整套假设检验的流程就是法庭审案,底座是无罪推定:
- 被告默认无罪(H0 默认成立)。想定罪(拒绝 H0、接受 H1),控方得拿出确凿证据(数据)。
- 证据不够:无罪释放。注意措辞——结论是”无法拒绝 H0“,不是”H0 是对的”。就像”证据不足释放”不等于”证明了清白”,可能只是这波证据不行。
- 证据确凿:数据在”H0 成立”的前提下出现的概率小到离谱——如果一切正常,这种数据几乎不可能出现,那有问题的大概率就是”一切正常”这个前提本身。于是拒绝 H0,站队 H1。
至于”概率小到多少才算离谱”(p 值与显著性水平 α),以及两种冤案——第一类错误(错杀好人:H0 明明为真却被拒绝)和第二类错误(放走坏人:H0 明明为假却没被拒绝)——这里带着做过一些题:
HADI:
小结
前两节课的关键词串成一条线:认识数据(类型)→ 清洗数据(预处理)→ 描述数据(统计量与箱线图)→ 关联数据(相关系数)。原本”90% 是高中和概率论复习”的判断,到假设检验这里宣告失效——推断统计动真格了,后面有新东西了再更新。