COMP5318 Week 01 Introduction 讲课总结
COMP5318 Week 01 讲课总结:Introduction
课程:COMP5318 — Machine Learning and Data Mining 讲师:Imad(Week 1–5);Unit Coordinator:William(Week 6 起接手授课) 来源:Week 01 Lecture 字幕
老师开场就定了调:这门课面向 800+ 名来自多种背景的学生(CS、医疗、法律都有),不走深度理论路线,重点是"理解 + 会用"。本讲全是高层概念和应用场景,没有公式推导。
一、课程组织与考核
1.1 教学安排
| 项目 | 内容 |
|---|---|
| Lecture | 2 小时,17:00–19:00(不是 6 点);全部自动录播,可回看 |
| Tutorial | Week 2 开始,每周 1 小时;每周有多个场次,只需参加 1 场 |
| Tutorial 结构 | 先理论练习(手算理解算法原理),再实践部分(Python 编程) |
| Tutorial 解答 | 最后一场 tutorial 在周五 21:00 结束,解答在周五晚或周六早上发到 Canvas |
| 材料 | Canvas:lecture slides、notes、tutorial solutions、assignments、成绩 |
| 提问 | Ed 讨论区,优先发公开帖(别人可能有同样问题);不要发邮件,容易漏掉 |
| Unit outline | 在 Canvas 上,包含各项 deadline 所在的周次;精确截止时间看 Canvas |
1.2 考核构成
| 评估 | 权重 | 形式 | 时间 |
|---|---|---|---|
| Assignment 1 | 15% | 小组作业(≤ 3 人) | Week 7 |
| Assignment 2 | 25% | 小组作业(≤ 3 人),可能含 presentation | Week 11 |
| Weekly homework | 5% | 个人,把 tutorial 内容做完提交到 Canvas | 每周 |
| Progressive 小计 | 40% | ||
| Final Exam | 60% | 线下监考,100 分制 | Week 15 或 16 |
必须记住的规则:
- Double pass policy(School of CS):progressive 部分要及格,final exam 也要及格。期末考满分 100,必须拿到 40 分以上。老师强调:不是 60 分中的 40%,而是 100 分卷面的 40 分。哪怕平时分 100%,期末 39 分照样挂科。
- 迟交:最多接受 5 天,每天扣 5%;超过 5 天记 0 分。
- 组队:现在就开始组队。老师说往年常有学生拖到很晚才组队,最后只能单独提交,还很难证明自己的贡献。
- 不限 tutorial:tutorial 1 的人可以和 tutorial 10 的人组队(虽然同组同 tutorial 沟通更方便)。
- 两次作业最好保持同一组,想换组要联系 unit coordinator 重新分配。
- 一定要在 Canvas 上加入 group,否则看不到自己的分数,也无法体现贡献。
- Special Consideration:可申请。注意学校新政策——如果 replacement exam 1 和 replacement exam 2 都错过,会被记为 NE(Not Examinable),拿不到任何分数。已注册 learning disability 的学生本身就有 3–5 天的延期额度。
1.3 AI 使用与学术诚信
| 场景 | 是否允许 Gen AI |
|---|---|
| Assignment 1 / Assignment 2 | 允许(unit outline 中标为 not secure) |
| Final Exam | 禁止(secure,线下监考) |
- 三类违规:Plagiarism(抄袭别人)、Academic dishonesty(把自己的作业给别人抄——给的人也算违规)、Misconduct(找第三方代写)。
- 检测工具:文本用 Turnitin,代码用 MOSS。老师特别说明:MOSS 看的是代码模式,不是表面文字——把 if 条件上下调换位置照样能查出来。往年确实抓到过案例。
- 个人作业(weekly homework)的边界:可以讨论想法、讨论问题、一起理解概念(这叫 collaboration),但不能一起把题做出来,最后必须独立提交。
- 老师列举的无效借口:"我做完了,朋友有困难我可怜她就给了她"、"考试结束了但助教还没收卷,我给朋友看了答案没想到她会抄"——这些情况双方都判违规。
1.4 编程环境
- 推荐 Python,但不强制。原因是 Python 的机器学习生态最好、库最全。用其他语言也行,但要提前告知,好安排对应的人来批改。
- 环境:Jupyter Notebook 或 Google Colab(Colab 已集成 Gen AI,用起来更方便),自选。
- Canvas 上有 Python refresher 文档和学习资源,非 CS 背景的同学建议先过一遍。
- 算力:学校不提供任何计算资源。老师明确说本课的作业在自己笔记本上就能跑完。
学生提问"这门课数学难吗",老师回答:this will not be mathematical。想要数学化的深度内容,可以看 COMP5328 Advanced Machine Learning(老师 2023 年教过,评价是"难但很享受")。
二、为什么需要机器学习和数据挖掘
2.1 数据从哪来:无处不在的采集
老师用了大量现实例子说明"数据爆炸":
| 来源 | 具体例子 |
|---|---|
| 移动应用 | 每装一个 App 都自带 analytics library,无论你愿不愿意,它随应用一起从 App Store / Play Store 下载,为广告商和平台采集数据 |
| 传感器 / 硬件 | 温度传感器持续把读数发到服务器 |
| 购物 | 超市、百货、网店。Amazon 每天处理数百万次访问——你在某个商品页停留 1 分钟还是 0.5 秒它都知道,你搜过什么、下一步搜什么的概率它也在算 |
| 金融 | 银行与信用卡使用数据 |
| Web / 社交 | Google、Facebook。老师建议去看自己的 Google Dashboard——每一次点击、每一次搜索都被记录,导出来有 2–3 GB |
| 其他 | 电话通话、政府统计、望远镜扫描、遥感、气象、病历与影像、生物数据 |
2.2 核心命题:Raw data is useless
原始数据本身没有价值——只存不用,就只是消耗存储、增加账单。
因此需要自动化方法从原始数据中抽取知识。人工浏览是不可能的。
流程:
老师强调的一个反直觉观点:先收集,再想用途。
"今天你可能不知道为什么要收集这些数据,但明天你可能就知道这个数据集能用来干什么了。"
例如在教室里装摄像头记录学生动作,可以回答教育层面的问题(专注度),也可以回答健康层面的问题(能否通过表情识别有学习障碍的学生)。
2.3 好的 pattern 必须满足三个条件
| 条件 | 含义 |
|---|---|
| Meaningful(有意义) | 收集的数据和要解决的问题之间存在关系 |
| Useful(有用) | 今天可能没用,明天可能有用 |
| Actionable(可行动) | 能据此做出决策、采取行动 |
"Useful" 的定义因领域而异——医疗行业眼中的"有用"和商业侧眼中的"有用"完全不同,需要你在自己的业务里定义。
2.4 自动 vs 半自动
| 模式 | 适用场景 |
|---|---|
| Automatic | 遵循确定性步骤、能得到确定性答案的问题。所谓"practice makes perfect"在这类问题上成立 |
| Semi-automatic | 需要根据变量做可变决策、解不能保证 100% 正确时,引入人类专家(domain expert) 一起解决 |
课堂例子(银行贷款):收集交易数据 → 判断申请人的财务状况 → 决定批准还是拒绝贷款。学生给出的一个好角度是看消费类型(discretionary spending)——如果一个人收入不高却在搜索豪华邮轮和高档社区的房子,银行的判断会不一样。
三、Machine Learning vs Data Mining
老师给的高层区分:
ML 是一个工具,DM 是让这个工具能用起来的整个过程。
| 维度 | Machine Learning | Data Mining |
|---|---|---|
| 定位 | AI 的核心部分 | Applied machine learning(应用机器学习) |
| 数据规模 | 不一定大 | 处理大规模、多维数据 |
| 组成 | 单一算法 | 可能组合 2–3 种 ML 技术 + 其他非 ML 步骤 |
| 关系 | DM 使用的大多数算法都在 ML 领域被开发出来 | 用 ML 来做 DM |
3.1 数据挖掘 pipeline
本课的覆盖范围:主要讲 machine learning、pattern discovery、interpretation & validation、useful knowledge 这几块。
3.2 数据挖掘是交叉学科
| 学科 | 在 DM 中的角色 | 老师的补充 |
|---|---|---|
| Databases | 数据存哪、怎么存(SQL、data warehouse) | 关键抉择:存 raw data 还是存处理后的数据?处理完之后原始数据要丢弃还是保留? 取决于场景 |
| Information Retrieval | 结构化 / 非结构化 / 混合数据的检索 | |
| AI | 搜索算法与推理方法 | ML 可能只找一种模式;AI 会尝试多种模式(例:机器人第一次学站立行走,要尝试大量不同模式才能走出门) |
| Machine Learning | classification、clustering、nearest neighbour、SVM 等 | 本课重点 |
| Algorithms / Optimisation | 在有限资源下最优地处理和存储海量数据 | 本课不讲优化,但老师强烈建议自学 |
| Statistics | 回答"我能信任这个输出吗" | 能给出"我有 90% / 100% 把握这个算法是对的"这类结论 |
老师抛出的定位问题:你想站在这张图的哪个位置? - CS 背景:大概率每一块都要碰。 - 医疗等领域背景:需要和 ML engineer 协作——你的价值在于把业务问题讲清楚,告诉他们要解决什么、问题该怎么表示。
四、机器学习的任务类型
| 类型 | 有无 label | 典型任务 | 本课安排 |
|---|---|---|---|
| Supervised learning | 有 | Classification(离散)、Regression(连续) | 前期重点 |
| Unsupervised learning | 无 | Clustering | 前期重点 |
| Reinforcement learning | 靠 reward | agent-environment 交互 | Week 10 或 11,且只讲很基础的 |
| Outlier detection | — | 异常检测 | 附带 |
4.1 Supervised Learning
形式化:给定一组已标注样本
使其能对未见过的样本做预测。这个
为什么叫 "supervised":因为输入数据里同时包含 features 和 labels——相当于有人(domain expert)事先给出了"正确答案"来监督学习过程。
两个子类:
| 子类 | 目标变量 | 例子 |
|---|---|---|
| Classification | Categorical(有限个类别) | pass / fail;spam / not spam;fraudulent / legitimate;cat / dog / bird |
| Regression | Numeric(连续值) | 房价;未来 1 分钟 / 1 小时 / 全天的温度;客户支出;配送时间 |
谁定义类别? 是业务方自己。银行决定把客户分成 5 类还是 10 类;医疗机构决定有哪些症状和疾病分类。
例 1:学生成绩预测(Classification)
- X(特征):attendance(虽然是可选的)、assignment mark、study hours
- Y(标签):pass / fail
- 训练数据:S2 2026 的 800 多名学生,整个学期收集特征,学期末拿到 pass/fail 结果
- 预测:用这个模型预测 S1 2027 学生在期末考之前会不会挂科
的作用:把这些特征变换成两个类别之一
例 2:报税作弊检测(Classification,决策树式的模式)
训练数据形如:(Refund, Marital Status, Taxable Income) → Cheat?
学习算法找到的模式大致是:
Refund = Yes → 没作弊 |
税务部门可以据此对新公民数据做预测,并采取相应措施。
例 3:信用卡欺诈检测(Classification)
| 环节 | 内容 |
|---|---|
| 特征 | 历史信用卡交易(通常买什么、什么时候买)、人口统计 / 社会经济信息(年龄、教育、收入) |
| 标注 | 把历史交易标为 fraud / legitimate ——这一步需要 domain expertise,或依据实际发生过的欺诈事件 |
| 新数据 | 一笔新交易,例如
($4,500, 海外, 凌晨2点, 电子产品) |
| 为什么判为 fraud | 金额异常(平时每周花 |
| Action | 直接取消交易,或要求 OTP 验证通过后放行 |
这个例子完整体现了 raw data → knowledge → action 的链条。
例 4:电力需求预测(Regression)
- 数据:历史用电需求 + 未来几天的天气预报(连续值)
- 目的:防止停电、保障可靠供电、让电网经济高效运行
- 粒度:短期(未来几小时 / 明天)与长期(下周 / 明年)预测
例 5:工程项目进度预测(老师的实战经历)
一家建筑公司同时推进约 300 个项目,每个项目有明确的完工目标(例如 2027 年 3 月)和分配到每项活动的预算。问题是:
根据每天 / 每月收集的进度数据,能否预测这个项目在 2027 年 3 月前能否完工?
还要细化到每个团队表现如何。企业据此自我纠偏——比如从别的工地调人手过来赶工。
老师用这个例子引出一个更本质的观点:
在真实组织里,最难的往往不是选算法,而是"发现问题"。 你的经理不懂数据,你作为专家要主动从数据里看出哪些问题值得解决,然后告诉经理。
4.2 Unsupervised Learning
形式化:只有
目标(两个同时优化):
| 目标 | 说明 |
|---|---|
| 簇内距离最小化 | 同一个 cluster 里的点尽量相似 |
| 簇间距离最大化 | 不同 cluster 之间尽量不同 |
例:客户分群
只有两列特征:annual spending(年度消费)和
purchase frequency(购买频率),没有任何标签。
聚类算法可能给出:
- 低频 + 低消费客户
- 高频 + 中等消费客户
- 高频 + 高消费客户
关键点:谁给这些簇命名? 算法只告诉你"这里有 3 组",是业务方 / domain expert 来解释每一组代表什么。学生追问"无监督是不是就不需要领域知识了",老师明确回答:训练时不需要标签,但解释结果时仍然需要 domain expert。同理,簇的数量虽然不用预先精确知道,但也不是无穷多,domain expert 能给出合理范围。
数据表示:聚类的前提
老师反复强调的一点:
算法只认数字。 你收集到的数据往往不是能直接算距离的形式,必须先转换。
常用的相似度 / 距离:
- Euclidean distance(最常用):距离大 → 不同簇;距离小 → 同一簇
- Cosine similarity:输出 0 到 1 之间的一个数,越接近 1 越相似
类别型数据要先编码成数字,例如
sports → 1, medical → 2, entertainment → 3。
聚类的典型应用
| 应用 | 说明 |
|---|---|
| Targeted marketing | 把客户按特征分群,针对每群设计营销活动。例:一群人总买运动用品,另一群总买医疗用品 |
| Customer loyalty / churn | 找出可能流失的客户群(转投别的医保、电力、电话公司),针对性给激励、折扣把他们留住 |
| Gene clustering | 找结构和功能相似的基因 |
| Document clustering | Google 就在用——搜索时把相似文档聚在一起返回 |
| 专利文档分组 | 把相似专利归组,方便评估新专利 |
| 个性化新闻 / 广告推荐 | 基于你的上网行为 |
文档聚类 pipeline:
直觉:医学书里反复出现医学术语,金融书里反复出现金融术语。转成数值表示后,两者的 Euclidean 距离会非常大,自然分开。
例:饮食习惯聚类(公共政策)
目标:为年轻澳洲人推广健康饮食。
- 收集什么:是否跳过早餐、是否在意体重、是否规律运动、是否高蛋白低脂饮食……
- 用途:制定针对性的宣传活动 + 推动政策变化
- 为什么要分群:不要全国一刀切。如果知道 NSW 或 VIC 的人群更不注意饮食,就针对这些州投放
- 额外收益:节省资源——不必把钱花在本来就健康意识很强的人群上
4.3 Reinforcement Learning(简介)
结构:agent 与 environment。
- Agent 采取一个 action
- Environment 观察这个 action
- Environment 给出一个 reward
- 坏 reward → 继续学;好 reward → 说明这个 action 是对的
本课只在 Week 10/11 讲很基础的部分。
五、数据挖掘的完整流程(六步迭代)
这是老师说的"从工程视角看机器学习到底长什么样",是一个圆环,不是一条直线。
5.1 Business Understanding(业务理解)
你所在的行业就是你的 business——医院、银行、教育机构都算。
要做的事:
- 调研业务目标与需求
- 判断数据挖掘能不能用来达成这些目标
- 确定要收集什么数据才能建模和部署
老师说目标往往很小:IT 部门可能只想"优化资源";财务部门可能只想"把散落的 Excel 集中起来有效利用"。
真实案例(文档变更追踪):一家建筑公司要向政府报销费用。相关文档有 10–15 个人同时编辑,版本控制能告诉你"有改动",但要人工比对才知道改了什么。而这些改动直接影响报销金额(可能多报或少报)。于是问题变成:
能否自动识别文档发生了哪些改动,以及这些改动对报销金额有什么影响?
5.2 Data Understanding(数据理解)
- 拿到初始数据集,判断是否适合进一步处理
- 数据质量差就回头重新收集——可能一开始就漏掉了关键字段
- 从数据中获得洞察,回头审视目标
这一步和上一步来回迭代,是整个流程中很关键的一环。
5.3 Data Preparation(数据准备)
老师原话:你本来是 machine learning engineer,突然就变成 data engineer 了。
| 问题类型 | 处理方式 |
|---|---|
| Incomplete(缺失值) | 用统计方法 impute;也可以用 ML(如训练一个 regressor 来预测缺失值) |
| Noisy(噪声与离群点) | Outlier 很棘手——处理财务数据时突然出现一个亿万富翁,怎么办?要非常小心 |
| Inconsistent(不一致) | 编码 / 名称不统一,例如 NSW
和 New South Wales 混用 |
| 格式不统一 | 日期有
DD-MM-YYYY、MM-DD-YYYY、YYYY-MM-DD
各种写法,必须统一,否则 pipeline 会崩 |
5.4 Modelling(建模)
建立模型。第 3 步和第 4 步之间不断循环:一边继续清洗数据,一边看能不能得到期望的结果。
5.5 Evaluation(评估)
- 用统计指标衡量:accuracy、F1 measure
- 问三个问题:pattern 有意义吗?有用吗?性能够好吗?
- 性能差 → 回到第 1 步;性能好 → 进入部署
5.6 Deployment(部署与维护)
- 交给软件工程团队,集成进现有系统
- 老师的现实提醒:enterprise application 很难对付,因为它们不可定制——你在用一个企业级系统,但根本不允许你改动。例:CommBank 十年前没有欺诈检测,后来做出方案还要往现有基础设施里塞。
- 持续维护,而且维护本身非常消耗资源:
- 明天可能出现训练时根本没见过的新模式
- 昨天用 4 个特征,今天发现需要第 5 个、甚至再加 4 个
- 一旦改结构就要从头再来一遍,又是一轮完整的测试流程
六、考点重点
- ML 与 DM 的区别:ML 是工具(AI 的核心部分),DM 是整个过程(applied ML,处理大规模多维数据,可能组合多种 ML 技术)。
- 三大任务类型:supervised(classification 离散 / regression 连续)、unsupervised(clustering)、reinforcement learning(agent-environment-reward)。要能对给定场景判断属于哪一类。
- Supervised 的定义:训练数据里同时有
features 和 labels,学
,应用到 unseen data。 - Classification vs Regression:目标变量是 categorical 还是 numeric。要能举例(spam 分类 vs 房价预测)。
- Unsupervised 的两个优化目标:簇内距离最小化 + 簇间距离最大化。
- 关于领域知识的两个易错点:
- Supervised 里,label 是 domain expert 引入的,不是原始观测的一部分。
- Unsupervised 里,训练不需要标签,但解释簇的含义仍然需要 domain expert。
- 好 pattern 的三个条件:meaningful、useful、actionable。
- 数据挖掘六步流程:Business Understanding → Data Understanding → Data Preparation → Modelling → Evaluation → Deployment。要记住它是迭代的圆环,特别是 1↔︎2 和 3↔︎4 的来回。
- Data preparation 的四类问题:incomplete、noisy/outliers、inconsistent、格式不统一。
- DM 的交叉学科构成:Databases、Information Retrieval、AI、ML、Algorithms/Optimisation、Statistics,以及各自解决什么问题。