【机器学习】机器学习的分类算法以及使用逻辑回归算法进行分类

news2025/1/12 6:09:18

引言

机器学习中的分类算法是一种监督学习算法,其目的是根据已知的输入和输出(即特征和标签)来训练模型,以便能够预测未标记数据的类别标签

文章目录

  • 引言
  • 一、分类算法
    • 1.1 逻辑回归(Logistic Regression)
    • 1.2 支持向量机(Support Vector Machine, SVM)
    • 1.3 决策树(Decision Tree)
    • 1.4 随机森林(Random Forest)
    • 1.5 朴素贝叶斯(Naive Bayes)
    • 1.6 K最近邻(K-Nearest Neighbors, KNN)
    • 1.7 神经网络(Neural Networks)
    • 1.8 梯度提升决策树(Gradient Boosting Decision Tree, GBDT)
    • 1.9 集成方法(Ensemble Methods)
  • 二、使用逻辑回归进行分类
    • 2.1 导入numpy和matplotlib库
    • 2.2 分类问题
    • 2.3 线性回归方法
    • 2.4 总结

一、分类算法

以下是一些常用的分类算法:

1.1 逻辑回归(Logistic Regression)

  • 尽管名字中有“回归”,但逻辑回归是一种用于分类的算法,通常用于二分类问题。它通过使用逻辑函数(如sigmoid函数)将线性回归的输出映射到0和1之间,从而预测概率

1.2 支持向量机(Support Vector Machine, SVM)

  • SVM是一种有效的二分类模型,它的基本模型定义为特征空间上的间隔最大的线性分类器,间隔最大使它能够很好地泛化到未见数据

1.3 决策树(Decision Tree)

  • 决策树是一种树形结构,其中每个内部节点表示一个属性上的测试,每个分支代表一个测试输出,每个叶节点代表一个类标签。决策树学习使用属性值来递归地将训练数据集分割成越来越小的子集

1.4 随机森林(Random Forest)

  • 随机森林是一个包含多个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数决定的。随机森林在训练过程中引入了随机性,从而提高了模型的泛化能力和准确性

1.5 朴素贝叶斯(Naive Bayes)

  • 朴素贝叶斯分类器是基于贝叶斯定理与特征条件独立假设的分类方法。对于给定的训练数据集,它首先基于特征的概率独立假设学习输入与输出的联合概率分布,然后基于此模型,对给定的输入x,利用贝叶斯定理求出后验概率最大的输出y

1.6 K最近邻(K-Nearest Neighbors, KNN)

  • KNN算法的工作原理是:在特征空间中,如果一个新样本与它最近的K个训练样本中的大多数属于同一个类别,那么这个新样本也属于这个类别

1.7 神经网络(Neural Networks)

  • 神经网络是一种模仿人脑神经元连接方式的计算模型,通常用于深度学习中。多层感知器(MLP)是一种常见的神经网络结构,特别适用于分类问题

1.8 梯度提升决策树(Gradient Boosting Decision Tree, GBDT)

  • GBDT是一种强大的机器学习算法,它通过迭代地训练决策树来最小化损失函数,通常用于各种分类和回归问题

1.9 集成方法(Ensemble Methods)

  • 集成方法是通过结合多个基分类器的预测来提高分类性能的技术。除了随机森林和GBDT,还有AdaBoost、XGBoost等算法

每种算法都有其优缺点,适用于不同类型的数据集和问题。选择哪种算法通常取决于数据的特点、问题的复杂度、训练时间、预测准确性等因素。

二、使用逻辑回归进行分类

2.1 导入numpy和matplotlib库

import numpy as np
%matplotlib widget
import matplotlib.pyplot as plt
from lab_utils_common import dlc, plot_data
from plt_one_addpt_onclick import plt_one_addpt_onclick
plt.style.use('./deeplearning.mplstyle')

2.2 分类问题

分类问题的例子包括:将电子邮件识别为垃圾邮件或非垃圾邮件,或者判断肿瘤是恶性的还是良性的。特别是,这些是二元分类的例子,其中只有两种可能的结果。结果可以用’阳性’/‘阴性’这样的成对描述,比如’是’/‘否’,‘真’/‘假’或者’1’/‘0’。
分类数据集的绘图通常使用符号来表示一个示例的输出。在下面的图中,'X’用来表示阳性值,而’O’代表阴性结果。
在这里插入图片描述

x_train = np.array([0., 1, 2, 3, 4, 5])
y_train = np.array([0,  0, 0, 1, 1, 1])
X_train2 = np.array([[0.5, 1.5], [1,1], [1.5, 0.5], [3, 0.5], [2, 2], [1, 2.5]])
y_train2 = np.array([0, 0, 0, 1, 1, 1])
pos = y_train == 1
neg = y_train == 0
fig,ax = plt.subplots(1,2,figsize=(8,3))

#绘图1,单个变量
ax[0].scatter(x_train[pos], y_train[pos], marker='x', s=80, c = 'red', label="y=1")
ax[0].scatter(x_train[neg], y_train[neg], marker='o', s=100, label="y=0", facecolors='none', 
              edgecolors=dlc["dlblue"],lw=3)
ax[0].set_ylim(-0.08,1.1)
ax[0].set_ylabel('y', fontsize=12)
ax[0].set_xlabel('x', fontsize=12)
ax[0].set_title('one variable plot')
ax[0].legend()

#绘图2,两个变量
plot_data(X_train2, y_train2, ax[1])
ax[1].axis([0, 4, 0, 4])
ax[1].set_ylabel('$x_1$', fontsize=12)
ax[1].set_xlabel('$x_0$', fontsize=12)
ax[1].set_title('two variable plot')
ax[1].legend()
plt.tight_layout()
plt.show()

输出结果:
在这里插入图片描述

注意在上述图表中:

  • 在单个变量图中,阳性结果用红色的’X’表示,y=1。阴性结果用蓝色的’O’表示,位于y=0
    – 回想在线性回归的情况下,y不会仅限于两个值,但可以是任何值
  • 在两个变量的图中,y轴不可用。阳性结果用红色的’X’表示,而阴性结果使用蓝色的’O’符号
    – 回想在线性回归涉及多个变量时,y不会仅限于两个值,类似的图将是三维的

2.3 线性回归方法

之前应用线性回归来构建预测模型。现在我们来尝试使用这个方法来处理一个简单的例子,正如讲座中所描述的。该模型将基于肿瘤大小来预测肿瘤是良性还是恶性的,尝试以下操作:

  • 点击’运行线性回归’来找到给定数据的最佳线性回归模型
    – 注意结果的线性模型并不很好地匹配数据。改进结果的一个选项是应用一个阈值
  • 勾选’切换0.5阈值’的复选框以显示如果应用阈值时的预测
    – 这些预测看起来不错,预测与数据匹配
  • 重要提示:现在,在远右侧(接近10的大肿瘤大小范围内)添加更多的’恶性’数据点,并重新运行线性回归
    – 现在,模型预测了大肿瘤,但x=3处的数据点被错误预测了
  • 要清除/刷新绘图,请重新运行包含绘图命令的单元格
w_in = np.zeros((1))
b_in = 0
plt.close('all') 
addpt = plt_one_addpt_onclick( x_train,y_train, w_in, b_in, logistic=False)

输出结果:
在这里插入图片描述

上面的例子表明,线性模型不足以对分类数据进行建模

2.4 总结

  • 探索了分类数据集和绘图
  • 确定线性回归不足以进行逻辑回归

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

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

相关文章

新手小白,开放式耳机该如何挑选?自费无广开放式耳机评测

作为一个在耳机领域探索多年的人,看到这个问题,我觉得有必要分享一些实用的经验和见解,希望能帮助到各位新手朋友。 首先要来说的就是在挑选开放式耳机的时候需要注意的几个点: 一、佩戴的稳固性。开放式耳机的设计较为独特,如果…

详细指南丨Apache环境下如何配置HTTPS证书

在Apache环境下部署SSL证书通常涉及几个步骤,包括生成私钥、创建CSR(证书签名请求)、安装SSL证书以及配置Apache服务器。下面是详细的步骤说明: 1. 准备工作 确认服务器和域名:需要有一台已经设置好的Apache服务器和…

后台管理系统(springboot+vue3+mysql)

系列文章目录 1.SpringBoot整合RabbitMQ并实现消息发送与接收 2. 解析JSON格式参数 & 修改对象的key 3. VUE整合Echarts实现简单的数据可视化 4. List<HashMap<String,String>>实现自定义字符串排序(key排序、Val…

规划决策算法(四)---Frenet坐标系

知乎:坐标系转换 1.Frenet 坐标系 什么是 Frenet 坐标系: 为什么使用 Frenet 坐标系: 通常情况,我们只会关注车辆当前距离左右车道线的距离,来判断是否偏离车道,是否需要打方向盘进行方向微调。而不是基于…

学习测试15-实战6-根据说明书建工程

CAN协议说明书:含义 一,得到表 1,先建信号 2,建报文,将对应信号拖入其中 3,建节点,将报文添加进TX msg里 调整起始位 数据库建立完成 二,不需要面板,直接导入数据库&…

OpenCV图像滤波(4)构建图像金字塔函数buildPyramid()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在计算机视觉和图像处理中,构建图像金字塔(Image Pyramid)是一种常用的技术,它生成一系列分辨率逐…

怎么保护电脑文件夹?文件夹保护方法大盘点

文件夹是管理电脑数据的重要工具,可以有效避免数据混乱。而为了避免文件夹数据泄露,我们需要严格保护文件夹。下面我们就来盘点一下文件夹的保护方法。 文件夹隐藏 隐藏文件夹是一种简单有效的保护方式,通过隐藏文件夹来避免其他人发现&…

【算法】道格拉斯

一、引言 道格拉斯算法是一种用于曲线拟合的数学方法,特别是在处理曲线插值问题时非常有用。道格拉斯-普克算法(Douglas-Peucker Algorithm),简称D-P算法,是一种用于简化多边形或折线的高效算法,由David Do…

如何优化PyTorch以加快模型训练速度?

PyTorch是当今生产环境中最流行的深度学习框架之一。随着模型变得日益复杂、数据集日益庞大,优化模型训练性能对于缩短训练时间和提高生产力变得至关重要。 本文将分享几个最新的性能调优技巧,以加速跨领域的机器学习模型的训练。这些技巧对任何想要使用…

【ROS 最简单教程 002/300】ROS 集成开发环境安装 (虚拟机版): Noetic

💗 有遇到安装问题可以留言呀 ~ 当时踩了挺多坑,能帮忙解决的我会尽力 ! 1. 安装操作系统环境 Linux ❄️ VM / VirtualBox Ubuntu20.04 👉 保姆级图文安装教程指路,有经验的话 可以用如下资源自行安装 ITEMREFERENCE…

遥感领域新方向!Mamba+RS论文汇总!

本文总结了将Mamba应用至遥感领域的相关论文(14篇),涉及到的论文见文末链接,具体如下: 文章目录 1. 遥感图像处理2. 多/高光谱图像分类3. 变化检测/语义分割4. 遥感图像融合/超分辨率 1. 遥感图像处理 论文题目&#…

AWD神器—watchbird后台rce挖掘

简介 在传统的AWD攻防中,Waf扮演着重要的角色,Watchbird作为一款专门为AWD而生的PHP防火墙,具有部署简单,功能强大等特点,一出世便受到了广大CTFer的喜爱,目前在GitHub上已有600多star。本篇则详细介绍如果…

传输层UDP协议

传输层UDP协议 1. 再谈端口号2. UDP协议1.1 UDP协议字段1.2 将报头和数据进行分离 3. UDP的特点 1. 再谈端口号 端口号(Port)标识了一个主机上进行通信的不同的应用程序; 在 TCP/IP 协议中, 用 “源 IP”, “源端口号”, “目的 IP”, “目的端口号”, “协议号” 这样一个五元…

AI大模型评测方法总结!

大语言模型评测对应用和后续发展至关重要,其评测范式包括经典和新型两种。经典评测范式涵盖自然语言理解和生成任务,本文介绍了流行的经典评测基准及新型评测范式下的代表性基准和实例,并总结了现有评测的不足。随后,文章提出了全…

不入耳耳机和入耳耳机哪个好?四款不入耳蓝牙耳机推荐指南

那当然是不入耳耳机好啦,那先讲讲入耳和不入耳的区别: 佩戴舒适度: 入耳蓝牙耳机是直接插入耳道,所以同时也会堵塞耳道长期积攒耳垢、造成耳道不适。 不入耳蓝牙耳机则通常设计为耳挂式或耳廓式,挂在耳朵外部能保持…

antd pro实现后台管理系统的建立(一)

一、初始化项目 1、全局安装pro-cli初始化脚手架 # 使用 npm或者cnpm或tyarn npm i ant-design/pro-cli -g这里建议使用npm或者tyarn,cnpm和npm部分不兼容,创建项目时会报部分依赖缺失的问题 2、创建项目pro create myapp pro create myappsimple 是基…

本地部署 Llama 3.1:Ollama、OpenWeb UI 和 Spring AI 的综合指南

、 本文介绍如何使用 Ollama 在本地部署 Llama 3.1:8B 模型,并通过 OpenWeb UI 和 Spring AI 来增强模型交互体验和简化 API 的调用过程。 Ollama Ollama 是一个开源的大语言模型服务工具,旨在简化大模型的本地部署和运行过程。用户只需要输入一行命令&…

学习008-02-04-03 Group List View Data(组列表查看数据)

Group List View Data(组列表查看数据) This lesson explains how to group the Employee List View data by department and position. 本课介绍如何按部门和职位对员工列表视图数据进行分组。 Note Before you proceed, take a moment to review the …

从零开始使用YOLOv8——环境配置与极简指令(CLI)操作:1篇文章解决—直接使用:模型部署 and 自建数据集:训练微调

目录 一、Yolov8源码下载 二、虚拟环境创建与必要包的安装 1.虚拟环境 2.Pytorch安装 3.Ultralytics安装 3.环境测试 三、简单命令行指令(CLI)使用 1.模型配置(关键指令)——cfg (1)选择任务场景——ta…

收藏丨企业官网一般选择什么类型的SSL证书比较好?

企业官网在选择SSL证书时,应综合考虑网站的安全性需求、用户信任度、成本效益以及管理便捷性等因素。一般来说,企业官网比较适合选择以下几种类型的SSL证书: 1. 企业型SSL证书(Organization Validated, OV) 特点&…