基础分类模型及回归简介(一)

一、先搞懂两个核心任务:分类和回归

咱们生活中总遇到要 “判断” 或 “预测” 的事:

  1. 比如看到一个水果,判断是苹果还是橘子 —— 这就是分类(结果是 “类别”);
  2. 比如根据西瓜的大小、颜色,猜它能卖多少钱 —— 这就是回归(结果是 “数字”)。

数据挖掘里的 “有监督学习”,就像有老师带着你学:给你一堆带答案的习题(训练数据),学会后去做新题(测试数据)。

  1. 分类题的答案是 “标签”(比如 “合格 / 不合格”);
  2. 回归题的答案是 “数字”(比如 “3.5 元”)。

1. 模型学不好的两种情况:欠拟合和过拟合

就像学生考试:

  1. 欠拟合:简单说就是 “没学会”。比如只看了一页书就去考试,好多题不会做,成绩差。

  1. 过拟合:就是 “学太死”。把课本里的例题背得滚瓜烂熟,但换个类似的题就懵了(比如例题是 “1+1=2”,考试考 “2-1=?” 就不会了)。

好的模型得能 “举一反三”(泛化能力强)。数据越多,模型越不容易学死;模型太复杂(比如背了 1000 道例题),但题目太少,也容易学死。

2. 分类任务的三种类型

  1. 二分类:非此即彼。比如判断邮件是 “垃圾邮件” 还是 “正常邮件”,只有两种结果。
  2. 多分类:从多个选项里选一个。比如给动物分类:猫、狗、猪,每个动物只能属于一种。
  3. 多标签分类:一个东西可以有多个标签。比如一篇新闻,既可以是 “体育” 类,又可以是 “国际” 类。

3. 分类器的两种 “性格”:线性和非线性

  1. 线性分类器:用 “直线” 划界。比如在纸上画一条线,左边是苹果,右边是橘子。
  2. 非线性分类器:用 “曲线” 或 “复杂图形” 划界。比如用一个圆圈把苹果圈起来,外面都是橘子。

二、朴素贝叶斯分类器:凭 “特征” 猜类别

比如你想判断一个水果是不是苹果,会看:红不红?圆不圆?甜不甜?

朴素贝叶斯的思路就是:统计 “苹果通常是红的”“苹果通常是圆的” 这些概率,然后综合起来猜。

它有个 “天真” 的假设:认为这些特征没关系(比如 “红不红” 和 “圆不圆” 互不影响)。虽然简单,但实际用起来效果 often 不错,比如垃圾邮件过滤常用它。

  1. 高斯朴素贝叶斯:处理像 “大小”“重量” 这种连续的数字。
  2. 多项式朴素贝叶斯:处理像 “颜色”“形状” 这种分类的特征。

三、K 最近邻分类器(KNN):看邻居猜身份

思路超简单:“物以类聚”。

比如你新认识一个人,想知道他喜欢打篮球还是踢足球,就看他身边 5 个好朋友(k=5)里,多数人喜欢啥,就猜他也喜欢啥。

  1. 关键是 “算距离”:看两个东西像不像(比如用身高、体重算两个人的相似度)。
  2. k 值别乱选:k 太小,可能被一个 “奇葩邻居” 带偏;k 太大,就分不清谁是核心朋友了。

缺点是:如果朋友太多(训练数据量大),每次猜都要问遍所有人,累得慌(计算量大)。

四、决策树:像查字典一样做判断

就像玩 “你画我猜” 的游戏,一步一步问问题:

  1. 先问 “是不是圆的?”—— 是→继续问 “是不是红的?”—— 是→猜是苹果。
  2. 每个问题(特征)就是树的 “分叉”,最后猜的结果就是 “叶子”。

建决策树时,得先挑 “最有用的问题”(属性选择),比如先问 “颜色” 比先问 “有没有虫眼” 更能快速区分水果。

  1. 剪枝:就像删去太较真的问题。比如问 “红到什么程度?”“圆的半径多少?” 这种细节,反而容易出错,不如删了简单点。
  2. CART :非黑即白的二分法,每个问题只有 “是” 和 “否” 两个答案。

五、人工神经网络:模仿人脑 “神经元”

就像好多人排成队传递消息:

  1. 第一个人(输入层)看到特征(比如水果的颜色、大小),传给中间的人(隐层);
  2. 中间的人加工后,再传给最后一个人(输出层),说出答案(是苹果还是橘子)。
  3. 多层感知机:中间多排几个人,就能解决复杂问题。比如 “异或” 问题(1 和 0 在一起是 1,0 和 0 在一起是 0),一层人搞不定,两层人就搞定了。
  4. BP 神经网络:如果猜错了,就从最后一个人往前骂:“你怎么传错了!”(反向调整参数),直到传对为止。
  5. 激活函数:就像人的 “开关”,收到的消息够强才会传给下一个人。

六、支持向量机(SVM):找一条 “最公平” 的分界线

比如在操场上,左边站一队男生,右边站一队女生,要画一条线把他们分开。

SVM 的思路是:找一条线,离两边最近的人都尽可能远(这样不容易踩线)。那些离线最近的人,就是 “支持向量”,线的位置全靠他们定。

适合人少的时候用(小样本),比如判断少量客户会不会违约,效果不错。

七、怎么判断模型好不好?

  1. 混淆矩阵:就像考试后的错题分析表:
    1. TP:本来对的,模型也说对了(真对);
    2. FN:本来对的,模型说错了(漏判);
    3. FP:本来错的,模型说对了(误判);
    4. TN:本来错的,模型也说错了(真错)。
  2. ROC 曲线:画一条线,越靠近左上角,说明模型越靠谱(少漏判、少误判)。

八、回归:预测具体数字

比如猜一个西瓜能卖多少钱,不是说 “贵” 或 “便宜”,而是直接说 “5.8 元”。

CART 决策树也能做回归:比如先问 “重量超过 5 斤吗?”,再问 “甜度超过 8 分吗?”,最后给出一个价格范围。

总结一下:这些模型就像不同的工具,各有各的用法:

  1. 朴素贝叶斯:简单快,适合文本分类;
  2. KNN:思路简单,适合小数据;
  3. 决策树:像流程图,容易看懂;
  4. 神经网络:能解决复杂问题,但调起来麻烦;
  5. SVM:小样本时好用。

实际用的时候,就像选工具干活,哪个顺手用哪个~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/91118.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/91118.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【LeetCode 热题 100】114. 二叉树展开为链表——(解法二)分治

Problem: 114. 二叉树展开为链表 给你二叉树的根结点 root ,请你将它展开为一个单链表: 展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。 展开后的单链表应该与二叉树 先序…

【WPF】WPF 自定义控件 实战详解,含命令实现

🧩《WPF 自定义控件》实战详解本文将围绕如何编写一个自定义控件(如带右键菜单的图片控件 ImageView),逐步讲解其定义、命令绑定与 ContextMenu 中常见的语法技巧。🧱 一、创建一个 WPF 自定义控件的步骤 WPF 中自定义…

Flink 2.0 DataStream算子全景

在实时流处理中,Apache Flink的DataStream API算子是构建流处理 pipeline 的基础单元。本文基于Flink 2.0,聚焦算子的核心概念、分类及高级特性。 一、算子核心概念:流处理的"原子操作 1. 数据流拓扑(Stream Topology&#x…

Flask 入门到实战(2):使用 SQLAlchemy 打造可持久化的数据层

Flask 入门到实战:使用 SQLAlchemy 打造可持久化的数据层一、前言:为什么用 Flask-SQLAlchemy? 在 Python Web 开发中,操作数据库的方式主要有两种: 直接写 SQL(繁琐且难维护)使用 ORM&#xff…

50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | GithubProfies(GitHub 个人资料)

&#x1f4c5; 我们继续 50 个小项目挑战&#xff01;—— GithubProfies组件 仓库地址&#xff1a;https://github.com/SunACong/50-vue-projects 项目预览地址&#xff1a;https://50-vue-projects.vercel.app/ 使用 Vue 3 的 Composition API&#xff08;<script setup…

simscape中坐标系和坐标变换Frames and Transforms

为了更便捷地描述单个物体的运动&#xff0c;最好以该物体的质心为坐标原点建立坐标系&#xff0c;从而可以非常方便地描述其旋转运动。因此&#xff0c;在计算多个物体之间的位置关系时&#xff0c;为了计算方便&#xff0c;需要频繁地更换坐标框架&#xff0c;这也是multibod…

构建分布式光伏“四可”能力:支撑新型电力系统安全稳定运行的关键路径

随着我国新能源装机规模的跨越式增长&#xff0c;国家能源战略对新能源电站的规范化接入与精细化调度管理提出了更高要求。在电力市场化改革深化与新型电力系统构建的关键时期&#xff0c;保障电网安全稳定、提升新能源高效消纳能力已成为核心议题。国家能源局于2025年1月17日正…

UART寄存器介绍

在 STM32 微控制器中&#xff0c;UART&#xff08;通用异步收发传输器&#xff09;通信通过多个寄存器实现配置和数据传输。下面详细解析 UART 的核心寄存器及其功能。1. 状态寄存器&#xff08;USART_SR&#xff09;状态寄存器反映 UART 当前的工作状态&#xff0c;用于判断数…

写一个算法对一组值进行归一化映射,使它们在视觉上有明显的区分度,尤其在数据集分布不均时仍能体现差异

问题&#xff1a; 有一批数据&#xff0c;都是随机值范围是不确定&#xff0c;我需要用这个值来绘制同样数量圆&#xff0c;不同值他们的圆半径不同&#xff0c;考虑到数据有时候大小偏差不大&#xff0c;这1000个值有可能是集中在10,20之间&#xff0c;也可能是分布广泛&#…

具身智能零碎知识点(五):VAE中对使用KL散度的理解

VAE中对使用KL散度的理解什么是 VAE (Variational AutoEncoder)&#xff1f;从自编码器 (AE) 说起VAE&#xff1a;让潜在空间变得“有意义”和“连续”KL 散度是如何用到的&#xff1f;通俗理解 KL 散度在 VAE 中的作用&#xff1a;带来的好处&#xff1a;KL 散度公式 (无需背诵…

理解:进程、线程、协程

线程、进程和协程是并发编程的重要组成部分。进程&#xff08;Process&#xff09;定义进程是操作系统分配资源的基本单位&#xff0c;表示一个正在执行的程序。一旦一个程序被加载到内存中&#xff0c;它就成为一个进程&#xff0c;而每个进程都有其独立的内存空间。特征进程之…

总结一下找素数的三种方法

目录 一试除法 二埃氏筛 三线性筛(欧拉筛) 一试除法 思想&#xff1a;就是判断某个数x是不是素数,就判断从2开始到小于根号x的范围内有没有能够取余不等于0的,这个说明当前值就是x的一个因子&#xff0c;所以不是素数。 代码&#xff1a; import java.util.Scanner;public…

基于Yolov8车辆检测及图像处理系统【有代码】

0 引言 随着城市化进程的加速和机动车保有量的快速增长,交通管理、智能监控和自动驾驶等领域对车辆目标检测技术的需求日益增长。车辆目标检测是计算机视觉领域的一个重要研究方向,其目标是从图像或视频序列中准确识别和定位车辆,为后续的车辆跟踪、行为分析和交通流量统计…

MySQL密码管理器“mysql_config_editor“

目录 核心能力 常用命令速查 为什么更安全&#xff1f; 典型场景 mysql_config_editor 是 MySQL 官方自带的一款命令行小工具&#xff0c;作用一句话&#xff1a;把账号、密码、主机、端口等连接信息加密存起来&#xff0c;下次连接时只敲一个名字即可&#xff0c;不用再写…

Kubernetes高级调度01

目录 第一章&#xff1a;初始化容器&#xff08;InitContainer&#xff09;—— 应用启动前的 “准备军” 1.1 InitContainer 的基本概念与核心特性 1.2 InitContainer 与普通容器的关键区别 1.3 InitContainer 的实战场景与示例解析 1.3.1 示例 1&#xff1a;延迟启动 —…

LSV负载均衡

什么是访问压力&#xff1f;--负载 两个客户同时访问一个服务器&#xff0c;会导致服务器崩溃调度---Cluster集群&#xff08;为了解决一个特定问题&#xff0c;多台服务器组合使用形成的一个系统&#xff09;LSV 1、集群Cluster LB&#xff1a;负载均衡&#xff0c;有多个主机…

复习笔记 38

绪论 其实没有一种安稳快乐&#xff0c;永远也不差 专题 2 知识点 继续学数学强化吧&#xff1f;可以。还有概率论要学。还有高数后半部分的数一专项要学。还有政治要学。要学的内容确实还是挺多的啊。加油。下载了一个阅读的软件&#xff0c;可以做一做真题的阅读理解。政治英…

GaussDB like 的用法

1 like 作用在 where 子句中使用 like 运算符来搜索列中的指定模式。 有两个通配符与 like 运算符一起使用&#xff1a;&#xff05; - 百分号表示零个&#xff0c;一个或多个字符 _ - 下划线表示单个字符注&#xff1a;也同时支持正则表达式。2 like 语法select column1, colu…

单例模式:确保全局唯一实例

单例模式确保一个类只有一个实例&#xff0c;并提供全局访问点。适用于需要全局唯一对象的场景&#xff08;如配置管理器、数据库连接池&#xff09;。代码示例&#xff1a;import java.util.stream.IntStream;public class ConfigManager {public static void main(String[] a…

深入理解 QSettings:Qt 中的应用程序配置管理

在开发 Qt 应用程序时&#xff0c;管理应用程序的配置信息是一个常见的需求。无论是保存用户的偏好设置、窗口大小&#xff0c;还是应用程序的运行时配置&#xff0c;都需要一种高效且灵活的方式来存储和检索这些信息。Qt 提供了一个强大的工具——QSettings&#xff0c;它能够…