机器学习的技术基础

AI + 计算社会科学微专业

第二课
郑思尧
上海交通大学 国际与公共事务学院

Part 1机器学习在「学」什么

一个场景

你经常在美团/饿了么点外卖。
平台上一家新店,两个月收到了5,000 条评价。

老板想了解顾客到底满不满意
哪些方面被吐槽最多。

一条条读,5,000 条 × 30 秒 = 42 小时,而且只是读完还没开始分析。

更头疼的是,很多评价不是一目了然的 阴阳怪气、先夸后贬、字面好评实际吐槽……
你自己读都得想一想,找实习生来帮忙更难保证一致性。

真实评价的多样性

同一家店的几条评价,类型各不相同

热情好评
「好吃到哭!!宫保鸡丁超大份,米饭粒粒分明,小哥还提前5分钟送到。以后就吃这家了,五星好评!」
愤怒差评
「等了一个小时外卖才到,饭都凉了,而且少了一份小菜。打电话给商家没人接。再也不点了。」
温吞评价
「一般般吧,味道说不上好也说不上差。配送速度还可以。没啥特别想说的。」
阴阳怪气
「嗯,花38块钱等了50分钟吃一盒糊了的炒饭,这体验真的很'独特'呢 :)」
先抑后扬
「本来没抱什么期望,结果意外地好吃!尤其是酸辣汤,料给得很足。下次还点。」

5,000 条里各种类型混在一起这就是机器学习要解决的问题

第一反应 写规则

面对 5,000 条评价,你的第一个想法可能是写一套规则

如果 评分 ≤ 2 星 → 不满意
如果 包含「难吃」「凉了」→ 不满意
如果 评分 ≥ 4 星 且 包含「好吃」→ 满意
如果 配送超过 45 分钟 → 不满意
……

这就是传统编程的思路 人类想好规则,写成代码,计算机负责执行。

规则为什么不够用

1
规则爆炸
写了 10 条还不够,20 条还有遗漏,规则之间还会互相矛盾
评分 4 星但包含「难吃」,到底满意还是不满意
2
语言太灵活
「花38块钱等了50分钟吃一盒糊了的炒饭,这体验真的很'独特'呢 :)」
没有任何关键词命中,但人一看就知道是差评
3
无法迁移
换一个行业(酒店、电影),规则全部要重写
外卖的「凉了」到了酒店变成「隔音差」「空调不制冷」

人类语言太复杂,靠穷举规则走不通

换一个思路 机器学习

传统编程

人写规则 + 数据 → 结果

规则是人想出来
计算机只是执行
VS

机器学习

数据 + 答案 → 规则

规则是机器从数据里学出来
人只需要提供例子和答案
规则不是人写的,是机器从数据里「学」出来的
这就是「机器学习」这个名字的由来

你每天都在用机器学习

手机人脸解锁
你录入几张照片
手机学会识别你的脸
垃圾邮件过滤
千万封邮件被标记为垃圾/正常
系统自动判断新邮件
购物推荐
淘宝记录你的浏览和购买
猜你下一次想买什么
语音助手
Siri / 小爱听你说话
把声音转成文字再理解意思
导航到达时间
从历史行驶数据中学规律
预测当前路况下要开多久
搜索引擎排序
你搜什么、点什么都是数据
搜索引擎学你想要什么结果

共同点 没有人写死规则,都是从大量数据中学出来的

人类的判断过程

用户评价 #2471
「等了一个小时外卖才到,饭都凉了,而且少了一份小菜。打电话给商家没人接。再也不点了。
1 星  |  配送时长 62 分钟  |  无图片

秒判这是差评。你的大脑用到了以下线索

  • 「饭都凉了」「再也不点了」 — 负面关键词,表达强烈不满
  • 1 星评分 — 数字信号,直接量化态度
  • 62 分钟配送 — 异常数值,远超正常 30 分钟
  • 「少了一份小菜」「没人接」 — 具体事实,投诉内容的数量
  • 无图片 — 行为信号,差评用户往往懒得拍照(但有时也会拍照维权)

你不自觉地在做一件事 把文字、数字、行为综合起来,形成判断
机器学习做的事情一模一样只是它用数学来「综合」。

把「线索」变成「特征」

人看的是线索,机器看的是一张表格

一条条评价
非结构化文本
转化
一行行数据
每列一个特征(Feature)
特征 = 你认为对判断有帮助的线索,用数字或类别表示。
评分、配送时长、评价字数、是否包含「难吃」……都是特征。

特征表格 机器学习的起点

每行一条评价,每列一个特征,最后一列是「答案」

# 评分 配送(分钟) 字数 含「难吃」 含「好吃」 有图片 感叹号数 标签
1528352 满意
2162480 不满意
3431120 满意
4255673 不满意
5522282 满意
6335180 满意
7148925 不满意
8426411 满意
← 特征(Features) 输入
标签(Label) 答案 →

注意 #6 评分只有 3 分但标为满意、#7 写了 92 个字还配图差评用户的「长文控诉」模式。
这些反直觉的案例正是模型需要从数据里学到的。

好特征 vs 没用的特征

特征不是越多越好,关键是对判断有没有帮助

有区分度的特征
评分 1 星几乎必差评,5 星几乎必好评
是否包含「难吃」 出现 → 大概率不满意
配送时长 超过 45 分钟 → 不满意风险升高
没什么用的特征
用户 ID 每条评价都不同,没有规律可循
下单是周几 周一和周五的满意度差不多
评价的标点数 和满意度关系不大
好特征 = 知道它的值之后,你对结果的判断会改变
知道评分是 1 星 → 你立刻倾向「不满意」。知道今天是周三 → 你的判断不变。

标签 你给机器的「答案」

5,000 条评价里,你亲手标注了 500 条
每条看一遍,判断「满意」还是「不满意」。

320
条标为「满意」
180
条标为「不满意」

这 500 条带标签的数据 = 训练数据(Training Data)
剩下 4,500 条 = 等机器去预测的

标注过程中你会遇到难题,比如那条「一般般吧」到底算满意还是不满意,需要你来定义
你的标注标准,就是模型学到的标准。标注的质量直接决定模型的上限。

标签决定了你在回答什么问题

同样的 5,000 条评价,换一套标签 = 换一个研究问题

满意 / 不满意
顾客总体上高不高兴 → 情感分类
1 / 2 / 3 / 4 / 5 星
满意到什么程度回归 / 有序分类
口味 / 配送 / 包装
顾客在讨论什么话题多标签分类
真实 / 刷单
这条评价是真实的还是水军写的 → 虚假检测

数据相同,标签不同,训练出完全不同的模型。
选择什么标签,就是选择让机器回答什么问题。

模型 = 从数据里找规律

500 条训练数据
特征 + 标签
学习规律
模型
一套判断规则
类比
你带了一个实习生。
给 TA 看 500 条评价和你的判断,
TA 总结出规则,然后去处理剩下 4,500 条。

模型不理解「好吃」的意思,但它知道 包含「好吃」的评价,92% 被你标为满意。

「学习」到底是什么意思

机器不会「思考」。所谓「学习」,就是一个不断试错的过程

1
随机猜一套规则,比如「评分 ≤ 3 就是不满意」
2
用这套规则去预测 500 条训练数据,对比答案,发现猜错了 120 条
3
调整规则,比如「光看评分不够,还要看有没有负面关键词」
4
再预测,再对比,这次只错了 80 条
5
反复调整,直到在训练数据上错误最少
学习 = 猜规则 → 对答案 → 改规则 → 再对答案 → ……
没有理解,没有思考,只有不断减少错误

决策树 最直觉的模型

机器从数据中自动学出来的 if-then 规则

评分 ≤ 2 星?
配送 > 45 分钟?
不满意 (96%)
不满意 (78%)
含「难吃」「凉了」「慢」?
评分 ≤ 3 星?
不满意 (82%)
满意 (61%)
满意 (93%)

树越深,判断越细致 低分+超时 = 几乎必差评;高分但含负面词 = 需要再看评分才能定。
你没有告诉机器先问什么它自己从 500 条数据中找到了最有区分度的特征来提问。

训练完成,新评价来了

新评价 #3847
「送餐挺快的,味道一般般吧,分量还行。」
★★★★★  |  配送 25 分钟  |  28 字
评分 3 星 > 2 → 否
无「难吃」「凉了」 → 否
满意

模型沿着树走一遍,毫秒级给出预测。
4,500 条评价,几秒钟全部处理完。

手工处理 vs 机器学习

同样处理 5,000 条评价,两种方式的对比

纯手工

每条评价人工阅读 + 判断
5,000 条 × 30 秒 = 42 小时
换人标注,标准可能不一致
老板下周又要分析,再花 42 小时
标注者疲劳 → 后期质量下降
VS

机器学习辅助

人工标注 500 条 = 约 4 小时
模型训练 = 几分钟
预测剩余 4,500 条 = 几秒钟
新数据来了,同一个模型直接用
标准始终一致,不会疲劳
总耗时
手工 42 小时  vs  ML 4.5 小时
可复用性
手工 每次从头来  vs  ML 模型可复用
一致性
手工 因人而异  vs  ML 标准统一

这就是有监督学习

你标注 500 条
满意 / 不满意
机器学习规律
什么特征→什么判断
自动预测 4,500 条
准确率 85%+
有监督 = 你给答案,机器学规律
核心 标签(Label)是你提供的「标准答案」

第四课会深入讲有监督学习的各种模型

没有标签的情况

另一个问题 老板不想知道满意不满意,
他想知道顾客在讨论哪几类问题

5,000 条评价
不做任何标注
聚类分析
口味与菜品
配送速度
包装与分量
卫生与安全
有监督
你定义标准 → 机器执行
分类、回归
无监督
没有标签 → 机器自己发现结构
聚类、主题模型、降维

社科研究中两种都很常用
有监督 → 情感分析、立场检测、事件分类
无监督 → 话题发现、舆情聚类、文本探索

不只决策树 常见的模型一览

名字不同,但核心逻辑一样 从数据中学规律。每种模型用一句话理解

决策树 Decision Tree
像你做判断一样,一连串 if-then 问题
直觉 流程图按条件一步步走到答案
逻辑回归 Logistic Regression
你已经在用的回归分析,只是因变量变成了 0/1
直觉 算一个概率,超过阈值就判「满意」
朴素贝叶斯 Naive Bayes
根据每个词出现的频率算概率,简单但对文本很有效
直觉 垃圾邮件过滤器用的就是这个
支持向量机 SVM
在数据之间画一条最优分界线
直觉 找到把好评和差评分得最开的那条线
随机森林 Random Forest
100 棵决策树一起投票,少数服从多数
直觉 三个臭皮匠顶个诸葛亮
神经网络 Neural Network
层层变换,自动发现人想不到的特征组合
直觉 GPT/BERT 的底层架构,深度学习的基础

本课程不要求你自己训练这些模型,但你需要知道 模型不是黑箱,它在做什么是可以理解的。

机器学习 =
把人的判断力编码成可复用的规则

特征是输入,标签是答案,模型是从数据中学到的规律。
有标签 → 有监督;没标签 → 无监督。

接下来 → 模型说「准确率 96%」,这个数字到底能不能信

Part 2怎么知道学得好不好

准确率 96% 的陷阱

外卖评价分类
96%
5,000 条评价中 4,800 条是好评
「模型」 无论输入什么,都输出「满意」
4800 / 5000 = 96%
信用卡欺诈检测
99.9%
100,000 笔交易中只有 100 笔是欺诈
「模型」 无论什么交易,都输出「正常」
99,900 / 100,000 = 99.9%
准确率高 ≠ 模型好。
当数据类别不平衡时,一个「什么都不做」的模型也能拿到极高准确率。
右边的「模型」准确率 99.9%,却一笔欺诈都没抓到

训练集 vs 测试集

考试类比 用练习题学习,用新题检验

训练集 (Training Set)

400 条评价
机器用来学规律
= 平时做的练习题
|

测试集 (Test Set)

100 条评价
机器从未见过
= 考试出的新题
想象这个场景
小明期末考前拿到了往年题库 50 道题,他背下了每道题的答案,一道都没理解。
模拟考用的是同一套题 → 小明考了 100 分
期末考换了一套新题 → 小明只考了 45 分
只有在没见过的数据上表现好,才算真的学到了。
所以我们必须留一部分数据「藏起来」,只在最后才拿出来检验。

过拟合 为什么背题库考不好

模型把训练数据里的每条评价都「记住了」
包括噪音和巧合。

训练集上
99%
几乎全对
vs
测试集上
68%
大幅下降

过拟合(Overfitting)= 模型在训练数据上表现很好,在新数据上表现很差。

过拟合的具体表现

同一条差评,两种模型的「理解方式」

训练集中的一条评价
「评价#2471 等了一个半小时,饭到了已经凉透了,而且少了一份小菜」
过拟合模型(死记硬背)
记住了 「评价#2471」 → 不满意
记住了 「一个半小时」 → 不满意
记住了 「小菜」 → 不满意

遇到新评价「小菜味道不错」
→ 看到「小菜」 → 判为 不满意
好模型(学到规律)
学到了 「等了很久」 → 配送慢 → 负面
学到了 「凉透了」 → 体验差 → 负面
学到了 「少了」 → 缺漏 → 负面

遇到新评价「小菜味道不错」
→ 「味道不错」 = 正面 → 判为 满意

过拟合模型记住了具体的词和编号,好模型学到了背后的语义规律

欠拟合、刚好、过拟合

欠拟合
模型太简单
只学了皮毛,什么都分不好
刚好
模型复杂度合适
学到了真正的规律
过拟合
模型太复杂
死记硬背,连噪音都学了

蓝色 = 满意    红色 = 不满意    线 = 模型学到的决策边界

一张图记住过拟合

模型复杂度 → 误差 ↑ 最佳 训练误差 测试误差 欠拟合 过拟合

- - - 训练误差 持续下降
测试误差 先降后升

转折点 = 最佳复杂度

你不需要记公式
只需要记住这个形状。

混淆矩阵 一张表看清对错

模型在 100 条测试集上的预测结果

实际 →
预测 ↓
实际满意 实际不满意
预测满意 55
正确好评
8
漏判差评
预测不满意 5
误判好评
32
正确差评
对角线 = 判对了 (55+32=87)
其余 = 判错了 (8+5=13)

准确率 = 87/100 = 87% — 但 8 和 5 的含义很不同

混淆矩阵里的真实评价

正确好评 (TP) — 55 条
「味道很好,配送也快,好评!」
实际满意,模型也说满意 ✓
漏判差评 (FN) — 8 条
「包装精致,但打开一看分量好少」
实际不满意,模型却说满意 ✗
误判好评 (FP) — 5 条
「终于到了!等得花都谢了哈哈」
实际满意(调侃语气),模型却说不满意 ✗
正确差评 (TN) — 32 条
「难吃到想退款,再也不点了」
实际不满意,模型也说不满意 ✓
漏判差评 措辞含蓄,先扬后抑,模型没听出弦外之音
误判好评 反讽、调侃,模型把玩笑话当真了

精确率 vs 召回率

两种不同的「准」

精确率 (Precision)

32/37 = 86%
模型说「不满意」的 37 条里
真的不满意的有 32 条

别冤枉好评
vs

召回率 (Recall)

32/40 = 80%
真正不满意的 40 条里
被模型找到的有 32 条

别漏掉差评

捕鱼的比喻 网眼大小的权衡

目标 从池塘里捞出所有的鲈鱼(= 找到所有差评)

细网(网眼很小)
🆚
捞上来 50 条鱼
30 条鲈鱼(目标!全捞到了)
20 条杂鱼(混进来的)

召回率 = 30/30 = 100%
精确率 = 30/50 = 60%
粗网(网眼很大)
🪫
捞上来 12 条鱼
11 条鲈鱼(确实是大鲈鱼)
1 条杂鱼(几乎没有误捞)

召回率 = 11/30 = 37%
精确率 = 11/12 = 92%

网眼越小,漏得越少(高召回),但杂鱼也越多(低精确)。
没有完美的网,只有适合你目标的网。

直觉理解 两种错误

误报(False Positive)
把好评判成了差评
= 虚惊一场
漏报(False Negative)
差评没被发现
= 漏网之鱼

不同场景,容忍度不同

垃圾短信过滤
宁可放过垃圾短信,也别误拦正常短信
→ 侧重精确率
疾病筛查
宁可多查几个正常人,也别漏掉一个病人
→ 侧重召回率

回到外卖场景的权衡

场景 A 改进服务
老板想找到所有差评来改进
漏掉一条差评 = 错过一个问题

→ 侧重召回率
代价 会多标记一些好评
场景 B 展示差评精选
平台想展示可信的精选差评
误标好评为差评 = 冤枉商家

→ 侧重精确率
代价 会漏掉一些差评
没有绝对最优的模型,只有最适合你问题的模型。
选什么指标,取决于你要回答什么研究问题。

F1 分数 精确率与召回率的折中

精确率
86%
+
召回率
80%
F1
83%

F1 是精确率和召回率的调和平均
当你不确定该侧重哪边时,看 F1。
两个都高,F1 才高;一个很低,F1 就被拉下来。

完整实例 1,000 条外卖评价的分类报告

模型对三个类别的表现各不相同

类别 精确率 召回率 F1 样本数
满意 91% 95% 93% 620
不满意 84% 78% 81% 250
中立 62% 53% 57% 130
读懂这张表
「满意」最好分 — 样本多,特征明显
「不满意」稍难 — 有 22% 差评被漏掉了
「中立」最难 — 模糊表达多,将近一半被错分
社科研究启示
如果你的研究关注「不满意」群体
78% 召回率意味着有 22% 的不满被遗漏
这会系统性低估负面情绪的比例

回看上节课的论文

Gilardi et al. (2023)
ChatGPT vs MTurk 准确率对比图

[Lesson 1 展示过的图]

现在你能看懂

  • 纵轴是准确率(Accuracy)
  • 但作者也报告了 F1
  • GPT 不只是「更准」是在精确率和召回率上同时更好
  • 众包工人的标注者间一致性也用了类似的评估框架

Gilardi, Alizadeh, Kubli · PNAS 120, 2023

为什么你需要懂这些

用 ML 做了文本分类,提交论文后审稿人会问

Q1
「你的分类器在测试集上表现如何,训练集和测试集是怎么划分的」
Q2
「只报了准确率,Precision 和 Recall 分别是多少,类别不平衡怎么处理的」
Q3
「有没有过拟合的风险,用了什么正则化或交叉验证策略」

今天学的每个概念,都是你未来读论文、做研究、回应审稿人时需要的基本词汇

评估模型,不能只看准确率。

训练集表现好不代表真的好(过拟合)。
精确率和召回率是一对权衡,取决于你的研究问题。
F1 是折中方案。

接下来 → 从原始数据到最终结论,完整流程是什么样的

Part 3从原始数据到研究结论

机器学习的完整流程

1
数据收集
从哪获取数据
2
数据清洗
去噪、补缺、统一格式
3
特征工程
选什么变量、怎么构建
4
模型训练
选模型、调参数
5
评估
测试集上验证
6
迭代
分析错误、改进

一个反复迭代的循环。

用外卖评价走一遍这个流程
1 收集 爬取美团/饿了么 10 万条评价
2 清洗 去掉刷单、空评价、广告评论
3 特征 提取文本长度、关键词、配送时间、是否有图
4 训练 用逻辑回归学「哪些特征预测好评」
5 评估 测试集 F1 = 0.78,发现「吐槽配送」类错最多
6 迭代 加入配送相关关键词特征 → F1 升至 0.85

第一步 数据从哪来

平台数据
外卖评价、电商评论、社交媒体帖子
优势 量大;挑战 噪音多、偏向特定群体
政府公开数据
政策文件、统计年鉴、政府工作报告
优势 权威;挑战 格式不统一
问卷调查
开放回答、量表数据
优势 有研究设计;挑战 样本量有限
学术数据集
已清洗、已标注、可复现的公开数据
优势 即用;挑战 可能不完全匹配你的问题

数据质量决定上限,模型只能逼近这个上限。

第二步 数据清洗

真实世界的数据永远是「脏」的看看外卖评价里能有多脏

真实「脏」数据示例
「好吃好吃好吃好吃好吃」 (刷单复读)
「此用户未填写评价。」 (系统默认)
评分=NULL (缺失值)
「太难吃了!!!!!!」 (重复标点)
「很nice,yyds」 (中英混杂+网络用语)
「加V:xxx888减10元」 (广告/引流)
「2024/1/3」 vs 「1-3-2024」 (日期格式不统一)
清洗策略
去除刷单/复读机评价
过滤系统默认文本
填充或标记缺失值
标点归一化(多个!→单个!)
建立网络用语映射表
识别并移除广告/引流内容
统一日期格式为 YYYY-MM-DD
数据清洗占 ML 项目 60–80% 的时间。不光彩,但决定成败。
清洗质量直接决定模型能学到什么垃圾进,垃圾出。

第三步 特征工程

最像「研究设计」的一步

哪些特征怎么构建特征,本质上是在做操作化(Operationalization)

研究问题
顾客满意度受什么影响
操作化
选择衡量「满意度」的变量
特征工程
构建特征列 评分、关键词、配送时间……
好特征
评价文本中「难吃」「慢」等关键词出现次数
配送时间与承诺时间的差值(分钟)
评价是否包含图片(用户参与度信号)
→ 有理论依据,可解释,与满意度直接相关
坏特征
用户 ID 的数字大小
评价提交时间的秒数
评价文本的 UTF-8 字节长度
→ 无理论意义,模型可能「碰巧」找到虚假相关
社科学生的优势 你比工程师更懂什么变量有理论意义
工程师会把所有能算的都扔进去;你会问「这个变量该不该放」。

第四步 选模型,训练

决策树
易解释
适合入门
逻辑回归
概率输出
社科常用
随机森林
多树投票
稳健好用
神经网络
自动学特征
需要大数据

没有「最好的模型」,只有最适合你的数据和问题的模型。
数据少 → 简单模型;数据多 → 复杂模型也不容易过拟合。

第五步 评估与迭代

训练模型
测试集评估
准确率/F1/混淆矩阵
分析错误
哪类评价判错最多
改进
加特征、换模型
↺ 循环迭代,直到满意

科学研究是迭代的,ML 也是。
第一版模型很少是最终版本。

哪些是你的决策,哪些是技术操作

研究决策(你负责)
数据来源与抽样
特征选择(变量选择)
标注标准(概念界定)
评估指标(看什么指标)
结果解读(意味着什么)
技术操作(可以外包)
数据清洗脚本
模型选择与调参
代码实现
计算资源配置
输出可视化
你不需要亲自写代码,但研究决策必须你来做。

偏见从哪里进来

数据偏见
训练数据不代表总体
模型偏见
学到了数据里的偏差
结果偏见
系统性不公平
外卖评价的城乡偏见
训练数据全是一线城市用户「30分钟=正常」。
县城用户写「40分钟很快了」,模型却判为差评。
跨语言的仇恨言论检测
用英文训练的仇恨言论分类器,迁移到中文社交媒体。
中文的讽刺、谐音梗全部漏判语言结构决定偏见形式。
城市调查预测农村态度
用城市居民问卷训练的「公共政策满意度」模型,
直接应用于农村样本生活经验完全不同,预测失效。
历史文本中的歧视
用 20 世纪报纸训练词向量,模型学到「女性=家庭」
「男性=职业」的关联历史偏见被编码进了算法。

偏见不是模型制造的,是数据带进来的。识别偏见,是研究者的责任。

三类 ML 任务

后面的课会一个个深入,这里先建立整体地图

任务类型 做什么 研究场景 标签 课程
分类 预测类别
A 还是 B
情感分析 10 万条外卖评价,自动判断好评/差评,再按区域汇总,研究「哪些城市的餐饮服务满意度最低」。
立场检测 微博上关于某政策的帖子,分类为「支持/反对/中立」,追踪舆论随时间的变化。
有监督 第 4 课
回归 预测数值
多少
舆情热度预测 根据帖子的发布时间、关键词、首小时转发量,预测 24 小时后的总传播量,帮助研究者识别「即将爆发」的议题。 有监督 不深入
聚类 发现分组
谁和谁像
主题发现 收集 5 万条关于「教育焦虑」的微博,不预设类别,让算法自动发现隐含话题可能出现「学区房」「鸡娃」「内卷」等自然分组。 无监督 第 5 课

关键术语回顾

今天出现的所有新概念,一张表讲清楚

术语 一句话解释 外卖评价中的对应
特征(Feature) 输入给模型的变量,描述一个样本的属性 评价文本、配送时间、评分、是否有图片
标签(Label) 我们希望模型预测的答案 好评/差评
训练集 / 测试集 用来学习的数据 / 用来考试的数据 8000 条学习 / 2000 条验证
过拟合(Overfitting) 模型把训练数据的噪音也学进去了,考试翻车 记住了「张三=好评」而非学到通用规律
精确率(Precision) 模型说「是差评」的里面,真的有多少是差评 标记的 100 条差评中 85 条确实是差评
召回率(Recall) 所有真实差评中,模型找到了多少 200 条真实差评中模型找到了 150 条
F1 精确率和召回率的调和平均两者的折中 一个数字概括分类器的综合表现
特征工程 把原始数据加工成模型能用的变量 从评价文本中提取「关键词出现次数」

今日要点

1
ML = 把人的判断力编码成可复用的规则
特征是输入,标签是答案,模型从数据中学规律。社科研究者的优势在于 你知道什么变量有理论意义。
2
评估要看对的指标,警惕过拟合
训练集上表现好不代表真的好。精确率与召回率是一对权衡,选哪个取决于你的研究问题漏判的代价大还是误判的代价大。
3
从数据到结论是一个完整流程
数据质量决定上限,清洗占大部分时间。偏见是数据带进来的,识别和消除偏见是研究者不可推卸的责任。
4
研究决策在你手里,技术可以外包
你不需要亲自写代码,但数据来源、变量选择、标注标准、结果解读这些决策只有你能做。

下节课预告

第三课 机器学习与社会计算范式革新

今天学了 ML 的基本原理,
下节课看研究者如何用这些工具
改变社会科学的研究方式

课前阅读 待定
带着你的研究问题来讨论