【机器学习】分类与回归——掌握两大核心算法的区别与应用

news2025/1/11 11:37:08

【机器学习】分类与回归——掌握两大核心算法的区别与应用

1. 引言

在机器学习中,分类和回归是两大核心算法。它们广泛应用于不同类型的预测问题。分类用于离散的输出,如预测图像中的对象类型,而回归则用于连续输出,如预测房价。本文将深入探讨分类与回归的区别,并通过代码示例展示它们在实际问题中的应用。
在这里插入图片描述

2. 什么是分类?

分类问题指的是将输入数据分配到预定义的离散类别中。常见的分类任务包括垃圾邮件检测、手写数字识别等。

分类的特征:

  • 输出为离散值:即数据属于某个特定类别。
  • 常用算法:如逻辑回归、支持向量机、决策树、随机森林、KNN等。

示例:逻辑回归(Logistic Regression)用于分类

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score

# 加载数据集
iris = load_iris()
X = iris.data
y = iris.target

# 拆分数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# 训练逻辑回归模型
model = LogisticRegression(max_iter=200)
model.fit(X_train, y_train)

# 预测与评估
y_pred = model.predict(X_test)
print(f"分类准确率: {accuracy_score(y_test, y_pred)}")

在这里插入图片描述

3. 什么是回归?

回归问题指的是预测一个连续的数值输出。常见的回归任务包括房价预测、股票价格预测等。

回归的特征:

  • 输出为连续值:即预测结果是一个具体数值。
  • 常用算法:如线性回归、决策树回归、支持向量回归(SVR)、Lasso回归等。

示例:线性回归(Linear Regression)用于回归

import numpy as np
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error

# 加载数据集
boston = load_boston()
X = boston.data
y = boston.target

# 拆分数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# 训练线性回归模型
model = LinearRegression()
model.fit(X_train, y_train)

# 预测与评估
y_pred = model.predict(X_test)
mse = mean_squared_error(y_test, y_pred)
print(f"均方误差: {mse}")

4. 分类与回归的区别

1. 输出类型不同

  • 分类:输出为离散类别,例如[0, 1],或者多类别如[猫, 狗, 鸟]。
  • 回归:输出为连续的数值,例如预测房价为250,000元。

2. 评估指标不同

  • 分类常用指标:准确率(Accuracy)、混淆矩阵、ROC曲线、F1分数等。
  • 回归常用指标:均方误差(MSE)、均方根误差(RMSE)、R²等。

3. 模型不同

  • 分类:常用的模型如逻辑回归、KNN、支持向量机等。
  • 回归:常用的模型如线性回归、岭回归、支持向量回归等。
    在这里插入图片描述

5. 常见的分类算法

1. K 近邻算法(K-Nearest Neighbors, KNN)

KNN 是一种基于距离的分类算法,通过找到与输入数据最近的K个样本来进行分类。

KNN 示例代码:

from sklearn.neighbors import KNeighborsClassifier

# 训练 KNN 模型
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X_train, y_train)

# 预测与评估
y_pred_knn = knn.predict(X_test)
print(f"KNN 分类准确率: {accuracy_score(y_test, y_pred_knn)}")

2. 支持向量机(SVM)

SVM 是一种分类算法,它通过找到一个超平面,将数据点划分到不同的类别中。

SVM 示例代码:

from sklearn.svm import SVC

# 训练 SVM 模型
svm = SVC(kernel='linear')
svm.fit(X_train, y_train)

# 预测与评估
y_pred_svm = svm.predict(X_test)
print(f"SVM 分类准确率: {accuracy_score(y_test, y_pred_svm)}")

6. 常见的回归算法

1. 决策树回归(Decision Tree Regressor)

决策树是一种基于树形结构的回归算法,通过递归划分特征空间来预测目标值。

决策树回归示例代码:

from sklearn.tree import DecisionTreeRegressor

# 训练决策树回归模型
tree = DecisionTreeRegressor()
tree.fit(X_train, y_train)

# 预测与评估
y_pred_tree = tree.predict(X_test)
print(f"决策树均方误差: {mean_squared_error(y_test, y_pred_tree)}")

2. 支持向量回归(SVR)

SVR 是支持向量机的回归版本,通过找到一个使得预测误差最小的超平面来进行回归预测。

SVR 示例代码:

from sklearn.svm import SVR

# 训练支持向量回归模型
svr = SVR(kernel='linear')
svr.fit(X_train, y_train)

# 预测与评估
y_pred_svr = svr.predict(X_test)
print(f"SVR 均方误差: {mean_squared_error(y_test, y_pred_svr)}")

7. 如何选择分类或回归算法?

  1. 数据的输出类型:首先根据输出是离散值还是连续值选择分类或回归算法。
  2. 数据的规模与维度:不同的算法对数据规模和维度有不同的处理效果,如 SVM 适用于高维数据,而线性回归适用于低维数据。
  3. 计算资源:一些复杂的算法如支持向量机和神经网络需要大量计算资源,而简单的模型如线性回归和 KNN 相对较快。
    在这里插入图片描述

8. 应用案例

案例1:使用逻辑回归预测是否为高收入人群

from sklearn.datasets import fetch_openml

# 加载收入数据集
income_data = fetch_openml('adult', version=1)
X = income_data.data
y = income_data.target

# 预处理数据并进行训练和预测
# 省略具体代码,类似于上面的逻辑回归步骤

案例2:使用线性回归预测房价

# 加载房价数据并应用线性回归模型预测
# 类似上面展示的线性回归示例

9. 总结与未来展望

分类和回归是机器学习中两类基本问题,它们分别解决了离散输出和连续输出的预测需求。通过理解二者的区别和实际应用,你可以更好地解决不同类型的预测问题。未来,随着数据集的增长和算法的优化,分类与回归算法将继续在各个领域中发挥重要作用。

10. 参考资料

  • 《机器学习实战》 by Peter Harrington
  • Scikit-learn 官方文档

使用机器学习分析CSDN热榜

image-20240913144221867

  • 也不知道是不是错觉,感觉机器学习水文好像在逐渐变少。那种没有代码,只介绍几个百度就能搜到概念的机器学习水文正在逐渐变少。
  • 博主目前见到机器学习最猖狂的时候,是热榜前十中六篇都是机器学习水文,而且都是一点进去就知道不是人写得那种机生文 。让人感觉CSDN药丸

img

你好,我是Qiuner. 为帮助别人少走弯路而写博客 这是我的 github https://github.com/Qiuner⭐ gitee https://gitee.com/Qiuner 🌹

如果本篇文章帮到了你 不妨点个吧~ 我会很高兴的 😄 (^ ~ ^) 。想看更多 那就点个关注吧 我会尽力带来有趣的内容 😎。

代码都在github或gitee上,如有需要可以去上面自行下载。记得给我点星星哦😍

如果你遇到了问题,自己没法解决,可以去我掘金评论区问。私信看不完,CSDN评论区可能会漏看 掘金账号 https://juejin.cn/user/1942157160101860 掘金账号

更多专栏:
  • 📊 一图读懂系列

  • 📝 一文读懂系列

  • ⚽ Uniapp

  • 🌟 持续更新

  • 🤩 Vue项目实战

  • 🚀 JavaWeb

  • 🎨 设计模式

  • 📡 计算机网络

  • 🎯 人生经验

  • 🔍 软件测试

掘金账号 CSDN账号

感谢订阅专栏 三连文章

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

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

相关文章

.net core 通过Sqlsugar生成实体

通过替换字符串的方式生成代码&#xff0c;其他代码也可以通这种方式生成 直接上代码 设置模板 将这几个模板文件设置为&#xff1a;嵌入资源 模板内容&#xff1a; using SqlSugar;namespace {Namespace}.Domain.Admin.{ModelName}; /// <summary> /// {TableDisplay…

浪潮光纤交换机FS8500、FS8600、FS8900端口数量授权扩容方法

浪潮光纤交换机FS8500、FS8600、FS8900系列是OEM博通G610、G620、G630光纤交换机&#xff0c;激活方法也是和博通一样的 获取设备License id 登录光纤交换机&#xff0c;可以使用Console线&#xff0c;也可以使用网线ssh登录默认ip&#xff1a;10.77.77.77&#xff0c;这里推…

【北京迅为】《STM32MP157开发板使用手册》- 第二十六章Cortex-M4 GPIO_蜂鸣器实验

iTOP-STM32MP157开发板采用ST推出的双核cortex-A7单核cortex-M4异构处理器&#xff0c;既可用Linux、又可以用于STM32单片机开发。开发板采用核心板底板结构&#xff0c;主频650M、1G内存、8G存储&#xff0c;核心板采用工业级板对板连接器&#xff0c;高可靠&#xff0c;牢固耐…

浅谈电动汽车公共充电桩布局设计及解决方案

摘要&#xff1a;随着社会现代化的深入推进&#xff0c;环境保护和资源利用可持续化发展的重要性愈发显著。电动汽车因其在节能、效率、环保等方面的突出优势&#xff0c;开始越来越多的进入城市交通系统。然而目前充电桩等相关配套设施缺乏合理的设置依据&#xff0c;不利于电…

【区块链通用服务平台及组件】中金数据云链平台 | FISCO BCOS应用案例

近年来&#xff0c;湖北省、武汉市区块链产业加快发展&#xff0c;在供应链管理、产品溯源等诸多领域逐步落地&#xff0c;形成了良好创新 创业氛围。2022 年 8 月&#xff0c;武汉市正式获批建设国家区块链发展先导区。中金数据&#xff08;武汉&#xff09;超算技术有限公司以…

组织数据能力评估模型一览

组织数据能力的成熟度等评估模型主要包括&#xff1a;DCMM、DSMM、DCAM、DAMA等。最新版《DMBOK2.1》 中&#xff0c;对于数据成熟度评估模型的选择给出了应考虑的标准&#xff1a; 可访问性&#xff1a;实践以非技术术语陈述&#xff0c;传达活动的功能要义。全面性&#xff…

HBase在大数据实时处理中的角色

HBase是一个分布式的、面向列的开源NoSQL数据库&#xff0c;它建立在Hadoop的HDFS之上&#xff0c;被设计用于处理大规模数据集。HBase非常适合于需要随机实时读写访问的应用程序&#xff0c;例如大数据分析、数据仓库和实时数据处理等场景。本文将探讨HBase是如何进行大数据实…

SpinalHDL之数据类型(六)

本文作为SpinalHDL学习笔记第五十九篇,介绍SpinalHDL的Vec数据类型。 目录: 1.描述(Description) 2.声明(Declaration) 3.操作符(Operators) ⼀、描述(Description) Vec是定义了⼀组带有标号的信号的复合信号(基于SpinalHDL基础类别)。 ⼆、声明(Declaration) 声明向量的…

最新消息,OpenAI o 1 一种新的大型语言模型正在被引入

据最新消息。 我们正在引入OpenAI o 1&#xff0c;这是一种新的大型语言模型&#xff0c;经过强化学习训练&#xff0c;可以执行复杂的推理。O 1在回答之前思考--它可以在对用户做出响应之前产生一个很长的内部思考链。 OpenAI o 1在竞争性编程问题&#xff08;Codeforces&am…

GaN挑战Si价格底线?英飞凌推出全球首个12英寸GaN晶圆技术

昨日&#xff0c;英飞凌宣布已成功开发出全球首个12英寸功率氮化镓GaN晶圆技术&#xff0c;并计划在今年的德国慕尼黑展上向公众展示首批12英寸GaN晶圆。 据英飞凌介绍&#xff0c;12英寸晶圆上的芯片生产在技术上更先进&#xff0c;效率也有显著提高&#xff0c;相较于8英寸晶…

Serverless 安全新杀器:云安全中心护航容器安全

作者&#xff1a;胡志广(独鳌) 云安全中心对于 Serverless 容器用户的价值 从云计算发展之初&#xff0c;各大云厂商及传统安全厂商就开始围绕云计算的形态来做安全解决方案。传统安全与云计算安全的形态与做法开始发生变化&#xff0c;同时随着这 10 多年的发展&#xff0c;…

JavaWeb开发中为什么Controller里面的方法是@RequestMapping?

在Java Web开发中&#xff0c;尤其是在使用Spring MVC框架时&#xff0c;RequestMapping注解被广泛应用于Controller层的方法上&#xff0c;这是因为RequestMapping是Spring MVC提供的一个核心注解&#xff0c;用于将HTTP请求映射到相应的处理器类或处理器方法上。通过这种方式…

安全隔离上网的有效途径:沙盒

在数字化浪潮日益汹涌的今天&#xff0c;网络安全成为了不可忽视的重要议题。沙箱技术作为一种高效的隔离机制&#xff0c;为企业和个人提供了一种在享受网络便利的同时&#xff0c;保障系统安全的解决方案。本文旨在深入探讨沙箱技术如何做到隔离上网&#xff0c;从而为用户提…

什么开放式耳机好用?2024五款宝藏品牌推荐!

在移动互联网时代&#xff0c;耳机已成为许多人生活中不可或缺的一部分&#xff0c;无论是在通勤路上还是运动时&#xff0c;它们都能提供音乐享受&#xff0c;同时减轻压力。然而&#xff0c;长时间佩戴入耳式耳机可能会引起耳道不适甚至炎症。因此&#xff0c;开放式耳机因其…

STM32 如何生成随机数

目录 一、引言 二、STM32 随机数发生器概述 三、工作原理 1.噪声源 2.线性反馈移位寄存器&#xff08;LFSR&#xff09; 3.数据寄存器&#xff08;RNG_DR&#xff09; 4.监控和检测电路&#xff1a; 5.控制和状态寄存器 6.生成流程 四、使用方法 1.使能随机数发生器 …

洛谷 P3065 [USACO12DEC] First! G

原题点这里​​​​​​ 题目来源于&#xff1a;洛谷 题目本质&#xff1a;字符串&#xff0c;Hash&#xff0c;字典树Trie 题目思路&#xff1a; 因为涉及到字典序的问题&#xff0c;那么应该能想到字典树。很显然字符串s1如果比字符串s2的字典序小的话&#xff0c;只有两种…

sms4j 发送短信

一、使用介绍 技术介绍&#xff1a; SMS4J: 短信 支持 阿里云 腾讯云 云片 等等各式各样的短信服务商 项目地址&#xff1a; SMS4J: 让简单的事情回归简单的本质。 SMS4J为短信聚合框架&#xff0c;帮您轻松集成多家短信服务&#xff0c;解决接入多个短信SDK的繁琐流程。 目前已…

8招教你轻松解决职场甩锅PUA!

你是不是四十岁了还不知道解决职场甩锅行为也是有公式的&#xff01; 那些混得好&#xff0c;能轻松赢得领导赏识&#xff0c;快速升职的&#xff0c;都 是早就把这些技巧背的滚瓜烂熟&#xff01; 比如&#xff1a; 1、同事的错&#xff0c;领导误会是你 错误话术 这不是…

【Linux】在Windows搭建WSL2开发环境

在Windows搭建WSL2开发环境 WSL安装和调整更改安装位置变更默认apt源 Python环境变更默认Python版本安装pip WSL安装和调整 这里使用的WSL2&#xff0c;Ubuntu22.04 如果在WSL中需要使用系统代理但是报以下的错&#xff1a; 在当前Windows用户目录下创建.wslconfig并写入以下配…

网络工程师考试真题及解析

1. 在不同类型的操作系统中&#xff0c;批处理操作系统的缺点是&#xff08;&#xff09;。 A) 缺少交互性 B) 不能并发运行 C) CPU利用率低 D) 周转时间太长 A【解析】批处理操作系统的优点是作业流程自动化较高&#xff0c;资源利用率较高&#xff0c;作业吞吐量大&…