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

必须记住的规则

  1. Double pass policy(School of CS):progressive 部分要及格,final exam 也要及格。期末考满分 100,必须拿到 40 分以上。老师强调:不是 60 分中的 40%,而是 100 分卷面的 40 分。哪怕平时分 100%,期末 39 分照样挂科。
  2. 迟交:最多接受 5 天,每天扣 5%;超过 5 天记 0 分。
  3. 组队现在就开始组队。老师说往年常有学生拖到很晚才组队,最后只能单独提交,还很难证明自己的贡献。
    • 不限 tutorial:tutorial 1 的人可以和 tutorial 10 的人组队(虽然同组同 tutorial 沟通更方便)。
    • 两次作业最好保持同一组,想换组要联系 unit coordinator 重新分配。
    • 一定要在 Canvas 上加入 group,否则看不到自己的分数,也无法体现贡献。
  4. 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 NotebookGoogle 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

形式化:给定一组已标注样本 ,其中 输入特征向量目标输出。任务是学一个函数

使其能对未见过的样本做预测。这个 就是 classifierregressor

为什么叫 "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            → 没作弊
Refund = No
├─ Marital = Divorced → 没作弊
└─ Marital = Single
├─ Income < 800 → 没作弊
└─ Income > 800 → 作弊

税务部门可以据此对新公民数据做预测,并采取相应措施。

例 3:信用卡欺诈检测(Classification)

环节 内容
特征 历史信用卡交易(通常买什么、什么时候买)、人口统计 / 社会经济信息(年龄、教育、收入)
标注 把历史交易标为 fraud / legitimate ——这一步需要 domain expertise,或依据实际发生过的欺诈事件
新数据 一笔新交易,例如 ($4,500, 海外, 凌晨2点, 电子产品)
为什么判为 fraud 金额异常(平时每周花 4,500)+ 海外 + 凌晨 + 电子产品
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(简介)

结构:agentenvironment

  1. Agent 采取一个 action
  2. Environment 观察这个 action
  3. Environment 给出一个 reward
  4. 坏 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(不一致) 编码 / 名称不统一,例如 NSWNew South Wales 混用
格式不统一 日期有 DD-MM-YYYYMM-DD-YYYYYYYY-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 个
    • 一旦改结构就要从头再来一遍,又是一轮完整的测试流程

六、考点重点

  1. ML 与 DM 的区别:ML 是工具(AI 的核心部分),DM 是整个过程(applied ML,处理大规模多维数据,可能组合多种 ML 技术)。
  2. 三大任务类型:supervised(classification 离散 / regression 连续)、unsupervised(clustering)、reinforcement learning(agent-environment-reward)。要能对给定场景判断属于哪一类。
  3. Supervised 的定义:训练数据里同时有 features 和 labels,学 ,应用到 unseen data。
  4. Classification vs Regression目标变量是 categorical 还是 numeric。要能举例(spam 分类 vs 房价预测)。
  5. Unsupervised 的两个优化目标簇内距离最小化 + 簇间距离最大化
  6. 关于领域知识的两个易错点
    • Supervised 里,label 是 domain expert 引入的,不是原始观测的一部分。
    • Unsupervised 里,训练不需要标签,但解释簇的含义仍然需要 domain expert
  7. 好 pattern 的三个条件:meaningful、useful、actionable。
  8. 数据挖掘六步流程:Business Understanding → Data Understanding → Data Preparation → Modelling → Evaluation → Deployment。要记住它是迭代的圆环,特别是 1↔︎2 和 3↔︎4 的来回。
  9. Data preparation 的四类问题:incomplete、noisy/outliers、inconsistent、格式不统一。
  10. DM 的交叉学科构成:Databases、Information Retrieval、AI、ML、Algorithms/Optimisation、Statistics,以及各自解决什么问题。

七、行动清单