当前位置: 首页 > news >正文

机器学习---概述(一)

文章目录

  • 1.人工智能、机器学习、深度学习
  • 2.机器学习的工作流程
      • 2.1 获取数据集
      • 2.2 数据基本处理
      • 2.3 特征工程
          • 2.3.1 特征提取
          • 2.3.2 特征预处理
          • 2.3.3 特征降维
      • 2.4 机器学习
      • 2.5 模型评估
  • 3.机器学习的算法分类
      • 3.1 监督学习
          • 3.1.1 回归问题
          • 3.1.2 分类问题
      • 3.2 无监督学习
      • 3.3 半监督学习
      • 3.4 强化学习
      • 3.5 总结

1.人工智能、机器学习、深度学习

在这里插入图片描述
从图中可以看到,人工智能、机器学习、深度学习之间的关系为:机器学习是人工智能的一个实现途径,而深度学习是机器学习的一个方法演变而来的

2.机器学习的工作流程

可以将机器学习的工作流程模拟成人思考解决问题的过程,人在遇到一个新的问题的时候,通常会根据以往对解决此类问题的经验来获取到一个规律,根据此规律来预测解决这种新的问题会成功还是失败。
而机器学习的工作流程与之较为相似,当遇到一批新的数据的时候,计算机会自动分析数据来获取模型,根据模型来预测或者评估数据。
在这里插入图片描述
机器学习的工作流程可以分为以下步骤:
1.获取数据
2.数据基本处理
3.特征工程
4.机器学习(模型训练)
5.模型评估

在这里插入图片描述
如果结果达到要求,上线服务
没有达到要求,就重复上述步骤

2.1 获取数据集

在这里插入图片描述
在数据集中,一行数据我们称为一个样本,一列数据我们成为一个特征
,有些数据有目标值(标签值),有些数据没有目标值(如上表中,电影类型就是这个数据集的目标值)

数据类型构成
1.特征值+目标值(目标值是连续的或者离散的)
2.只有特征值,没有目标值

数据分割:
机器学习一般会将数据分割为两个部分:
训练数据:用于训练和构建模型
测试数据:在模型检验的时候使用,用于评估模型是否有效
这两部分的划分比例一般为:
训练集70%-80% 测试集20%-30%

2.2 数据基本处理

即对数据进行缺失值、去除异常值等处理
缺失值是指粗糙数据中由于缺少信息而造成的数据的聚类、分组、删失或截断。它指的是现有数据集中某个或某些属性的值是不完全的

2.3 特征工程

特征工程指的是使用专业知识和技巧来处理数据,使得特征能在机器学习算法上发挥更好的作用的过程。
特征工程包含:特征提取、特征预处理、特征降维三部分

2.3.1 特征提取

即将任意数据转换为可用于机器学习的数字特征
在这里插入图片描述

2.3.2 特征预处理

通过一些转换函数将特征数据转换为更加适合机器学习算法的特征数据的过程。
在这里插入图片描述

2.3.3 特征降维

指的是在某些条件下,降低随机变量的特征的个数,得到一组“不相关”的主变量的个数。
在这里插入图片描述

2.4 机器学习

即选择适合的算法对模型进行训练

2.5 模型评估

对训练好的模型进行评估

3.机器学习的算法分类

在机器学习中,根据数据集的组成不同,可以将机器学习算法分为:
监督学习
无监督学习
半监督学习
强化学习

3.1 监督学习

在监督学习中,计算机通过示例学习。它从过去的数据中学习,并将学习的结果应用到当前的数据中,以预测未来的事件。在这种情况下,输入和期望的输出数据都有助于预测未来事件。
监督学习的定义为:
根据已有的数据集,知道输入和输出结果之间的关系。根据这种已知的关系,训练得到一个最优的模型。

也就是说,在监督学习中训练数据既有特征(feature)又有标签(label),通过训练,让机器可以自己找到特征和标签之间的联系,在面对只有特征没有标签的数据时,可以判断出标签。监督学习可以分为回归和分类两种

3.1.1 回归问题

例如:预测房价,根据样本集拟合出一条连续曲线
在这里插入图片描述
回归通俗一点就是,对已经存在的点(训练数据)进行分析,拟合出适当的函数模型y=f(x),这里y就是数据的标签,而对于一个新的自变量x,通过这个函数模型得到标签y。

3.1.2 分类问题

例如:根据肿瘤特征判断良性还是恶性,得到的是结果是“良性”或者“恶性”,是离散的。
在这里插入图片描述
所以简单来说分类就是,要通过分析输入的特征向量,对于一个新的向量得到其标签。
和回归最大的区别在于,分类是针对离散型的,输出的结果是有限的。
监督学习的应用:
医疗诊断和预测:监督学习在医疗领域中有着广泛的应用。例如,在医学影像诊断中,通过标记了疾病或异常的图像数据,可以训练模型来帮助医生自动识别和诊断病变。此外,监督学习还可以用于疾病预测,通过医学数据的训练,模型可以预测患者是否有可能患上某种疾病,帮助医生进行早期干预和预防。

3.2 无监督学习

不知道数据集中数据、特征之间的关系,而是要根据聚类或一定的模型得到数据之间的关系。可以这么说,比起监督学习,无监督学习更像是自学,让机器学会自己做事情,是没有标签(label)的。

输入数据是由输入特征值组成,没有目标值
输入数据没有被标记,也没有确定的结果。样本数据类别未知;
需要根据样本间的相似性对样本集进行类别划分。

在这里插入图片描述
无监督学习的应用:
Google新闻按照内容结构的不同分成财经,娱乐,体育等不同的标签,这就是无监督学习中的聚类。

在这里插入图片描述

3.3 半监督学习

半监督学习是一种特殊的机器学习方法,它试图充分利用有标签数据和无标签数据的优势。 在很多情况下,获取有标签数据可能非常昂贵或耗时,但我们可能能够获得大量的无标签数据。半监督学习的目标就是通过这些有限的有标签数据和大量的无标签数据来提高机器学习模型的性能。

这是一个生活中的类比:假设你正在学习认识动物,但你只有少数几本书上有动物的名字和图片。现在,你朋友给了你一大堆没有标签的动物图片。半监督学习的任务就是,通过这些有标签的书籍和无标签的图片,让你更好地辨认未见过的新动物。
在这里插入图片描述
在这里插入图片描述
**半监督学习的主要优点是能够在有限的有标签数据上构建更好的模型,从而节省数据标注的成本。**然而,它也可能面临一些挑战,例如无标签数据质量的问题,以及在某些情况下,过度依赖伪标签可能导致错误的预测。因此,在应用半监督学习时,需要谨慎选择合适的方法,并根据具体情况进行调整。

3.4 强化学习

强化学习就像是在教一只聪明的小宠物怎么玩游戏一样。你是这个小宠物的导师,它试图在一个陌生的游戏世界中获得最高的分数。但是,开始时,它对游戏一无所知,所以它必须通过尝试和错误来学习。

在强化学习中,有三个主要的角色:

智能体(Agent):就是我们的小宠物,它在游戏中行动,并试图通过选择不同的动作来达到最好的结果。
环境(Environment):就是游戏的世界,它会根据智能体的动作给予不同的反馈,比如给予奖励(reward)或者惩罚(penalty)。智能体的目标是通过与环境的交互来最大化总的奖励。
动作(Action):就是智能体在游戏中可以选择的不同的举动或策略。

整个过程就像是一个训练过程:智能体在游戏中进行动作,然后根据环境给予的奖励或惩罚来调整自己的策略。通过反复的试错和学习,它会逐渐学会什么样的动作可以得到更多的奖励,从而在游戏中表现得越来越好。

在这里插入图片描述

强化学习的一个典型例子就是训练一个机器人玩赛车游戏。机器人开始时可能会碰壁、撞车,但随着时间的推移,它会学会如何转弯、避开障碍物,并逐渐变得越来越擅长在赛道上驾驶。这种学习过程类似于我们学习新技能或游戏一样,通过不断尝试,我们变得越来越熟练。

总结一下,强化学习是一种让智能体通过与环境交互,并根据奖励和惩罚来学习优化策略的机器学习方法。类似于训练一只聪明的小宠物在陌生的游戏世界中变得越来越好。强化学习的目标就是获得最多的累计奖励。
在这里插入图片描述

3.5 总结

在这里插入图片描述

相关文章:

机器学习---概述(一)

文章目录 1.人工智能、机器学习、深度学习2.机器学习的工作流程2.1 获取数据集2.2 数据基本处理2.3 特征工程2.3.1 特征提取2.3.2 特征预处理2.3.3 特征降维 2.4 机器学习2.5 模型评估 3.机器学习的算法分类3.1 监督学习3.1.1 回归问题3.1.2 分类问题 3.2 无监督学习3.3 半监督…...

概念解析 | AutoFed:面向异构数据的联邦多模态自动驾驶的学习框架

AutoFed:面向异构数据的联邦多模态自动驾驶的学习框架 注1:本文系“概念解析”系列之一,致力于简洁清晰地解释、辨析复杂而专业的概念。本次辨析的概念是:面向异构数据的联邦学习在自动驾驶中的应用。 参考文献:Zheng T, Li A, Chen Z, et al. AutoFed: Heterogeneity-Aware F…...

vue3+uniapp自定义tabbar

首先把tabbar中的元素写在一个list中用v-for进行渲染 用一个interface进行定义接口,这样别人在review你的代码就可以清晰知道你的tabbar包含什么元素。 利用typescript特性进行类型定义,可以省去很多麻烦 import { reactive } from "vue" imp…...

stable diffusion webui 安装

安装环境:cuda10.2-cudnn8-devel-ubuntu18.04 torchtorchvision:[pytorch]pytorch官方安装法_torch1.13.1cu117_FL1623863129的博客-CSDN博客 error:RuntimeError: Couldnt determine Stable Diffusions hash: 69ae4b35e0a0f6ee1af8bb9a5d0016ccb27e36dc. 解决方法…...

csdn文章编辑器必备语法备用

前言 本文是为了记录csdn文章编辑器的必备语法,为写作小白提供更详细的写作规范技巧 csdn的质量分查询地址:质量分查询 这里的跳转链接,可以使用ctrlshift L 来输入链接 亦可以使用 链接: link. 🚀🚀🚀 &a…...

机器学习鲁棒性笔记

鲁棒性(Robustness)在统计学和数据分析中是一个重要的概念。它指的是某个统计方法或模型对于异常值或偏离数据集正常分布的情况的敏感程度。一个鲁棒性较好的方法能够在存在异常值或数据分布不符合假设的情况下依然给出可靠的结果,而不会被极…...

ubuntu 有 1 个软件包没有被完全安装或卸载

ubuntu 有 1 个软件包没有被完全安装或卸载,安装时出现问题,一直卡在 rti-connext-dds-5.3.1 安装问题上。 下面是我安装 sqlite3 出现的问题: sukaiG7-7500:~/1/111/workspace_ros_car_noetic$ sudo apt-get install sqlite3 正在读取软件…...

【QT调用ST-link-使用QT编写程序-调用ST-LINK_CLI.exe-烧写STM32F4xxx-基础样例】

【QT结合ST-link,使用QT编写程序,调用ST-LINK_CLI.exe,烧写STM32F4xxx-基础样例】 1、前言2、实验环境3、先前了解-自我总结4、实验过程(0)硬件连接与供电(1)安装&使用STM32 ST-LINK Utility&#xff0…...

高并发下的Java项目解决方案

高并发下的Java项目解决方案 在当今的互联网时代,高并发是Java项目在设计和开发过程中必须要考虑的重要因素之一。本文将详细介绍如何在Java项目中处理高并发的问题,并提供具体的解决方案。我们将主要讨论四个主要的主题:服务器扩展&#xf…...

华为推出手机系统云翻新服务:什么是云翻新?如何使用?

华为手机系统云翻新是华为推出的一项功能,旨在通过云服务提供系统翻新的服务。它可以帮助用户对手机的系统进行优化和更新,以提高手机的性能和流畅度。具体而言,华为手机系统云翻新功能提供了免费的云空间,用户可以将手机中的系统…...

修改时间和创建时间的设计问题

记录一次 在django框架开发中遇到问题: 想要的逻辑: 当在保存数据时,create_time字段只会在新建数据时被设置为当前时间,并且之后不会再修改,而modify_time字段在每次保存数据时都会被设置为当前时间也可以为空&…...

CentOS 搭建 Harbor 镜像仓库(图文详解)

本文目录 1. 下载 Harbor 安装包2. 解压3. 修改配置文件4. 安装 Harbor5. 修改 docker 配置6. docker 登录方式7. 访问 Harbor Web 界面8. 创建证书9. 生成证书10. 更新配置11. 网页登录 说明:在搭建 Harbor 镜像仓库之前,虚拟机要先安装 docker 和 dock…...

【云原生】k8s组件架构介绍与K8s最新版部署

个人主页:征服bug-CSDN博客 kubernetes专栏:kubernetes_征服bug的博客-CSDN博客 目录 1 集群组件 1.1 控制平面组件(Control Plane Components) 1.2 Node 组件 1.3 插件 (Addons) 2 集群架构详细 3 集群搭建[重点] 3.1 mi…...

你真的了解什么是生成式AI吗?

最近正好有这样的机会,让我给一群非技术人士介绍生成式AI,忙忙碌碌了一阵子,结果发现受众还是未能理解什么是生成式AI,到底和之前的AI有什么区别。因此希望此篇能够帮助普通人真正理解生成式AI,有个直观印象。 人工智…...

Linux--高级IO

高级IO 1. 五种IO模型 阻塞IO:在内核将数据准备好之前,系统调用会一直等待。 所有的套接字,默认都是阻塞方式。阻塞IO是最常见的IO模型。 非阻塞IO:如果内核还未将数据准备好,系统调用仍然会直接返回,并…...

【C# 基础精讲】C# 开发环境搭建(Visual Studio等)

安装C#开发环境是开始学习和使用C#编程的第一步。目前,最常用的C#开发环境是Microsoft Visual Studio,它是一套强大的集成开发环境(IDE),提供了丰富的工具和功能,使开发C#应用程序变得更加便捷。以下是安装…...

谷粒商城第九天-解决商品品牌问题以及前后端使用检验框架检验参数

目录 一、总述 二、商品分类问题 三、前端检验 四、后端检验 五、总结 一、总述 在完成完商品分类的时候,后来测试的时候还是发现了一些问题,现在将其进行解决,问题如下: 1. 取消显示的时候,如果取消了显示&…...

Java8函数式接口

在工作中我需要,我需要递归处理复杂嵌套的JSON字符串,然后处理方法有多种,为了代码通用性,我想要把处理方法当作参数,传入到函数中,然后根据不同的处理方法处理字符串。通过查资料得知,可以使用…...

.Net6 Web Core API --- Autofac -- AOP

目录 一、AOP 封装 二、类拦截 案例 三、接口拦截器 案例 AOP拦截器 可开启 类拦截器 和 接口拦截器 类拦截器 --- 只有方法标注 virtual 标识才会启动 接口拦截器 --- 所有实现接口的方法都会启动 一、AOP 封装 // 在 Program.cs 配置 builder.AddAOPExt();//自定义 A…...

RocketMQ基本概念和高级原理

基础概念 消息模型 RocketMQ 主要由 Producer、Broker、Consumer 三部分组成,其中 Producer 负责生产消息,Consumer 负责消费消息,Broker 负责存储消息。Broker 在实际部署过程中对应一台服务器,每个 Broker 可以存储多个 Topic…...

QMC5883L的驱动

简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

UE5 学习系列(三)创建和移动物体

这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

学校招生小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...

cf2117E

原题链接&#xff1a;https://codeforces.com/contest/2117/problem/E 题目背景&#xff1a; 给定两个数组a,b&#xff0c;可以执行多次以下操作&#xff1a;选择 i (1 < i < n - 1)&#xff0c;并设置 或&#xff0c;也可以在执行上述操作前执行一次删除任意 和 。求…...

c#开发AI模型对话

AI模型 前面已经介绍了一般AI模型本地部署&#xff0c;直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型&#xff0c;但是目前国内可能使用不多&#xff0c;至少实践例子很少看见。开发训练模型就不介绍了&am…...

Linux --进程控制

本文从以下五个方面来初步认识进程控制&#xff1a; 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程&#xff0c;创建出来的进程就是子进程&#xff0c;原来的进程为父进程。…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)

本期内容并不是很难&#xff0c;相信大家会学的很愉快&#xff0c;当然对于有后端基础的朋友来说&#xff0c;本期内容更加容易了解&#xff0c;当然没有基础的也别担心&#xff0c;本期内容会详细解释有关内容 本期用到的软件&#xff1a;yakit&#xff08;因为经过之前好多期…...

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题

在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件&#xff0c;这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下&#xff0c;实现高效测试与快速迭代&#xff1f;这一命题正考验着…...

ABAP设计模式之---“简单设计原则(Simple Design)”

“Simple Design”&#xff08;简单设计&#xff09;是软件开发中的一个重要理念&#xff0c;倡导以最简单的方式实现软件功能&#xff0c;以确保代码清晰易懂、易维护&#xff0c;并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计&#xff0c;遵循“让事情保…...

华为OD机考-机房布局

import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...