一、先搞懂两个核心任务:分类和回归
咱们生活中总遇到要 “判断” 或 “预测” 的事:
- 比如看到一个水果,判断是苹果还是橘子 —— 这就是分类(结果是 “类别”);
- 比如根据西瓜的大小、颜色,猜它能卖多少钱 —— 这就是回归(结果是 “数字”)。
数据挖掘里的 “有监督学习”,就像有老师带着你学:给你一堆带答案的习题(训练数据),学会后去做新题(测试数据)。
- 分类题的答案是 “标签”(比如 “合格 / 不合格”);
- 回归题的答案是 “数字”(比如 “3.5 元”)。
1. 模型学不好的两种情况:欠拟合和过拟合
就像学生考试:
- 欠拟合:简单说就是 “没学会”。比如只看了一页书就去考试,好多题不会做,成绩差。
- 过拟合:就是 “学太死”。把课本里的例题背得滚瓜烂熟,但换个类似的题就懵了(比如例题是 “1+1=2”,考试考 “2-1=?” 就不会了)。
好的模型得能 “举一反三”(泛化能力强)。数据越多,模型越不容易学死;模型太复杂(比如背了 1000 道例题),但题目太少,也容易学死。
2. 分类任务的三种类型
- 二分类:非此即彼。比如判断邮件是 “垃圾邮件” 还是 “正常邮件”,只有两种结果。
- 多分类:从多个选项里选一个。比如给动物分类:猫、狗、猪,每个动物只能属于一种。
- 多标签分类:一个东西可以有多个标签。比如一篇新闻,既可以是 “体育” 类,又可以是 “国际” 类。
3. 分类器的两种 “性格”:线性和非线性
- 线性分类器:用 “直线” 划界。比如在纸上画一条线,左边是苹果,右边是橘子。
- 非线性分类器:用 “曲线” 或 “复杂图形” 划界。比如用一个圆圈把苹果圈起来,外面都是橘子。
二、朴素贝叶斯分类器:凭 “特征” 猜类别
比如你想判断一个水果是不是苹果,会看:红不红?圆不圆?甜不甜?
朴素贝叶斯的思路就是:统计 “苹果通常是红的”“苹果通常是圆的” 这些概率,然后综合起来猜。
它有个 “天真” 的假设:认为这些特征没关系(比如 “红不红” 和 “圆不圆” 互不影响)。虽然简单,但实际用起来效果 often 不错,比如垃圾邮件过滤常用它。
- 高斯朴素贝叶斯:处理像 “大小”“重量” 这种连续的数字。
- 多项式朴素贝叶斯:处理像 “颜色”“形状” 这种分类的特征。
三、K 最近邻分类器(KNN):看邻居猜身份
思路超简单:“物以类聚”。
比如你新认识一个人,想知道他喜欢打篮球还是踢足球,就看他身边 5 个好朋友(k=5)里,多数人喜欢啥,就猜他也喜欢啥。
- 关键是 “算距离”:看两个东西像不像(比如用身高、体重算两个人的相似度)。
- k 值别乱选:k 太小,可能被一个 “奇葩邻居” 带偏;k 太大,就分不清谁是核心朋友了。
缺点是:如果朋友太多(训练数据量大),每次猜都要问遍所有人,累得慌(计算量大)。
四、决策树:像查字典一样做判断
就像玩 “你画我猜” 的游戏,一步一步问问题:
- 先问 “是不是圆的?”—— 是→继续问 “是不是红的?”—— 是→猜是苹果。
- 每个问题(特征)就是树的 “分叉”,最后猜的结果就是 “叶子”。
建决策树时,得先挑 “最有用的问题”(属性选择),比如先问 “颜色” 比先问 “有没有虫眼” 更能快速区分水果。
- 剪枝:就像删去太较真的问题。比如问 “红到什么程度?”“圆的半径多少?” 这种细节,反而容易出错,不如删了简单点。
- CART 树:非黑即白的二分法,每个问题只有 “是” 和 “否” 两个答案。
五、人工神经网络:模仿人脑 “神经元”
就像好多人排成队传递消息:
- 第一个人(输入层)看到特征(比如水果的颜色、大小),传给中间的人(隐层);
- 中间的人加工后,再传给最后一个人(输出层),说出答案(是苹果还是橘子)。
- 多层感知机:中间多排几个人,就能解决复杂问题。比如 “异或” 问题(1 和 0 在一起是 1,0 和 0 在一起是 0),一层人搞不定,两层人就搞定了。
- BP 神经网络:如果猜错了,就从最后一个人往前骂:“你怎么传错了!”(反向调整参数),直到传对为止。
- 激活函数:就像人的 “开关”,收到的消息够强才会传给下一个人。
六、支持向量机(SVM):找一条 “最公平” 的分界线
比如在操场上,左边站一队男生,右边站一队女生,要画一条线把他们分开。
SVM 的思路是:找一条线,离两边最近的人都尽可能远(这样不容易踩线)。那些离线最近的人,就是 “支持向量”,线的位置全靠他们定。
适合人少的时候用(小样本),比如判断少量客户会不会违约,效果不错。
七、怎么判断模型好不好?
- 混淆矩阵:就像考试后的错题分析表:
- TP:本来对的,模型也说对了(真对);
- FN:本来对的,模型说错了(漏判);
- FP:本来错的,模型说对了(误判);
- TN:本来错的,模型也说错了(真错)。
- ROC 曲线:画一条线,越靠近左上角,说明模型越靠谱(少漏判、少误判)。
八、回归:预测具体数字
比如猜一个西瓜能卖多少钱,不是说 “贵” 或 “便宜”,而是直接说 “5.8 元”。
CART 决策树也能做回归:比如先问 “重量超过 5 斤吗?”,再问 “甜度超过 8 分吗?”,最后给出一个价格范围。
总结一下:这些模型就像不同的工具,各有各的用法:
- 朴素贝叶斯:简单快,适合文本分类;
- KNN:思路简单,适合小数据;
- 决策树:像流程图,容易看懂;
- 神经网络:能解决复杂问题,但调起来麻烦;
- SVM:小样本时好用。
实际用的时候,就像选工具干活,哪个顺手用哪个~