机器学习-基本知识

 任务类型

◼ 有监督学习(Supervised Learning) 每个训练样本x有人为标注的目标t,学习的目标是发现x到t的映射,如分类、回归。

◼ 无监督学习(Unsupervised Learning) 学习样本没有人为标注,学习的目的是发现数据x本身的分布规律,如聚类

◼ 半监督学习(Semi-Supervised Learning) 少量数据有标注,大部分数据没有标注,需设计合理的算法对未标注数据进行有效利用。

◼ 增强学习(Reinforcement Learning) 数据本身没有确切标注,学习基于系统和环境进行交互时得到的反馈信息。这一反馈可能是部分 的,可能是随机的,可能是即时的,可能是延时的。

常用数据类型:

1. 数值数据 2. 类别数据 3. 文本数据 4. 时序数据 5. 图像数据

特征工程:不同的数据类型有不同的特征提取技术,涉及使用领域知识、业务约束、 人工转换和数学转换的组合,将原始数据转换为所需的特征

一、数值数据

➢ 整数和浮点数是最常见和最广泛使用的数值型数据

➢ 尽管数值数据可以直接输入机器学习模型,但在构建模型之前,仍需要设计与场景、问题和 领域相关的特征。因此,特征工程的需求仍然存在。

特征工程方法

◼ 特定转换技术,如二值化、凑整、构造交互项、分箱、缩放等

◼ 统计转换技术,更改数值的总体分布,将偏态分布转换为正态分布,如对数转换、BOX-Cox转换

(1)二值化 (Binarization) 原始数据包含的指示特定属性的计数数据(如总计数、频率等数据),在一些 特定的应用中(构造推荐系统引擎),可进行二值化处理。即是否,是非,0-1判断

(2)凑整(Rounding) 通常,在处理百分比等数字属性时,可能不需要高精度的值。因此,将这些高精 度百分比四舍五入为整数数字更有意义。然后,这些整数可以直接用作原始数值, 甚至可以用作离散类特征。

(3)构造交互项(Interactions) 模型在建立时,试图将输出响应(离散类或连续值)建模为输入特征变量的函数,通常基于多个单 独的输入特征。在一些真实世界的数据集场景中,也可以尝试捕获这些特征变量之间的交互,作 为输入特征集的一部分。即两个变量或许可以相乘变成一个变量

(4)数据分箱(Binning) 通常,原始数据中某些特征值或频率的分布往往是倾斜的,如果直接使用具有多个数量级范围的 原始数字特征,在相似性度量、聚类距离、回归系数等指标可能会受到不利影响。有多种方法可以解 决这些影响,包括数据分箱、缩放或统计转换。

数据分箱:用于将连续数值转换为离散数值,离散数值被分组到箱,每个箱代表一个特定的等级,并 且有一个特定的取值范围,连续型数值依次归入到各个分箱。目前有多种数据分箱方法,包括:

➢ 固定宽度分箱

        固定宽度分箱中,每个bin都有一个预先固定的值范围,这些值根据一些业务或自定义逻辑、规 则或必要的转换确定。

        常见的固定分箱技术包括:

        - 基于舍入(rounding)操作分箱#取整数位20-29定位2

        - 基于自定义范围分箱#自定义宽度#可以定15

➢ 自适应分箱

固定分箱技术可能会导致不规则的箱子,有些箱子数据密集,有些箱子数据稀少,甚至是空箱。 自适应分箱是一种更可取的方法,它根据数据的分布本身来决定应该如何分箱。

常见的自适应分箱技术: - 基于分位数的分箱 (Quantile based binning)

(4)数值数据的统计转换技术

• 对数转换(Log Transform)#即y=\log x,底数可以任意取,当应用于倾斜分布时,对数变换很有用,因为它们倾向于扩展较低级数范围内的值,并倾向于压缩或减少较 高级数范围内的值,使偏态分布尽可能转换为正态分布。

• BOX-Cox转换#即

输出y是输入x和变换参数λ的函数,当λ=0时,得到的变换是自然对数变换。 λ的最佳值通常使用最大似然或对数似然估计来确定。

两种变换函数都属于幂变换函数族,通常用于创建单调数据转换,主要意义在于 稳定方差,严格遵守正态分布,并使数据独立于基于其分布的均值。也常用作特 征缩放操作。

二、类别数据

➢ 类别或类别标签本质上可以是文本,通常有两种类型的类别特征:名义特征和序数特征。

- 名义特征是指在特征的值之间排序没有意义,通常有一组有限的不同离散值组成

- 序数特征可以根据它们的值进行排序,它们的顺序是有特定意义的

类别数据的特征工程技术

➢ 数字表示:名义特征通常是字符串或文本格式,机器学习算法无法直接理解它们, 首先要将这些功能转换为更具代表性的数字格式表示

➢ 数据编码:独热编码、虚拟编码、特征哈希方案

#都相当于建立一个文本到数字的映射

类别特征的编码

虽然已经将类别变量转换并映射为数字表示,但如果将这些类别特征的转换数字表示直接输入到算法中, 该模型基本上会试图将其解释为原始数字特征,因此数量的概念将错误地引入模型中。同样,虽然顺序在 序数型变量中很重要,但这里没有大小的概念。因而,需要引入编码方案。

独热编码( One Hot Encoding )

假设有m个标签的类别特征的数字表示,独热编码方案将特征编码为m个二进制特征,其中只能包含1或0的 值。因此,分类特征中的每个观察值都被转换为大小为m的向量,其中只有一个值为1(表示处于活跃状态)。

编码较原来的数字表示加长了m-1倍,简化为多个0加一个1的形式的向量

哑变量编码( Dummy Encoding )

哑变量编码方案类似于独热编码方案,区别在于,当应用于具有m个不同标签的类别特征时,我 们得到m-1个二进制特征,忽略的特征通常由全零(0)的向量表示。因此,分类变量的每个值 都被转换成大小为m-1的向量。

进一步压缩,向量相比独热减少了一个项

3)特征哈希编码( Feature Hashing Scheme)

特征哈希方案是处理大规模类别特征的另一种有用的特征工程方案。特征哈希编码可以将输出视为一 组有限的h-bin,h的值可以指定,它成为每个类别特征的编码特征向量的最终大小。因此,即使我们在一 个特征中有1000多个不同的类别,并且我们设置h=6,输出特征集仍然只有6个特征

三、时序数据的特征工程

时序数据

时序数据涉及在一段时间内发生变化的数据集,基于时间的属性在这些数据集中至关重要, 如股票、天气预报、商品零售等多个领域。通常,时序属性包括某种形式的时间数据和时间戳值, 并且通常可选地包括其他元数据,如时区、夏令时信息等。

特征工程技术

➢ 字符串时间数据转换为时间戳对象

➢ 从时间戳对象中提取时序属性

(1)字符串时间数据转换为时间戳对象

调用pandas.Timestamp()转换为Timestamp对象

每个Timestamp对象都有多个组件,包括日期、时间、甚至基于时间的偏移量、时区信息等

提取时序属性 1)基于日期的特征 2)基于时间的特征 3)衍生特征

特征中的每一个都可以用作类别特征,并且可以进行进一步的特征工程,比如独热编码、聚合、分箱等

四、分类模型的预备知识

1. 分类定义

 分类是机器学习问题的子集,是整个监督学习领域的一个主要部分。

给定一个记录的集合(训练集)

- 每条记录用一个元组表示(x,y),其中x是属性的集合, y 是类标签

- 通过学习得到一个模型(函数),把每个属性集x映射到预先定义的类标签 y

2. 分类问题的不同类型

 二分类模型 输出变量中总共有两个类别需要区分

 多分类模型 有两个以上的类别需要分类。如预测手写数字,其中输出变量可 能是0到9之间的任意值。

 多标签分类 又称多目标分类,一次性地根据给定输入预测多个二分类目标, 例如预测给定的图片是一条狗还是一只猫,同时预测其毛皮是长还是短。

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

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

相关文章

Linux的开发环境安装配置与后端项目部署

目录 一.安装开发环境 1.准备阶段 1.1 创建新目录 1.2 解压文件 2.JDK的安装与配置环境变量 2.1 解压jdk压缩包 2.2 配置环境变量 2.3 设置环境变量生效 2.4 验证是否安装成功 3.Tomcat的安装与使用 3.1 解压安装 3.2 开启服务 3.3 开放端口 3.4 访问成功 4.MySQ…

Azure - 机器学习实战:快速训练、部署模型

本文将指导你探索 Azure 机器学习服务的主要功能。在这里,你将学习如何创建、注册并发布模型。此教程旨在让你深入了解 Azure 机器学习的基础知识和常用操作。 关注TechLead,分享AI全维度知识。作者拥有10年互联网服务架构、AI产品研发经验、团队管理经验…

scrapy-redis分布式爬虫(分布式爬虫简述+分布式爬虫实战)

一、分布式爬虫简述 (一)分布式爬虫优势 1.充分利用多台机器的带宽速度 2.充分利用多台机器的ip地址 (二)Redis数据库 1.Redis是一个高性能的nosql数据库 2.Redis的所有操作都是原子性的 3.Redis的数据类型都是基于基本数据…

超级搜索技术,普通人变强的唯一外挂

搜索效率:Google >微信公众号 >短视频 >百度 1、信息咨询搜索 在Google搜索栏前面加上 “” 限定关键词 intitle 限定标题 allintitle 限定标题多个关键词 intext 限定内容关键词 inurl 限定网址关键词 site 限定网址来源 imagesize 限定图片尺寸 filet…

函数总结

一、main函数 //argc 统计命令行传参的个数 //argv 保存命令行传的具体参数,每个参数当做字符串来存储,const是为了不让main函数修改argv数组里的内容 1.1值传递 此为值传递;形参的值改变不影响实参的值 1.2 地址传递 形参拿到的是实参的地址,实际操…

一文看懂图像格式 RAW、RGB、YUV、Packed/Unpacked、Bayer、MIPI、Planar、Semi-Planar、Interleaved

目录 一、通用属性 1. Packed/Unpacked 2. 压缩/非压缩 二、RAW 1. Bayer格式 2. 分类 3. MIPI RAW 三、RGB 分类 四、YUV 1. YUV与RGB转换 2. 分类 3. 内存计算 五、压缩格式 有的人,错过了,一生再也找寻不到。 本文详细分析各种图像格式…

有效的数独

题目链接 有效的数独 题目描述 注意点 board.length 9board[i].length 9board[i][j] 是一位数字(1-9)或者 ‘.’ 解答思路 首先判断行是否满足数独条件,再判断列是否满足数独条件,最后再判断划分的3x3方格是否满足数独条件…

Yakit工具篇:WebFuzzer模块之重放和爆破

简介 Yakit的Web Fuzzer模块支持用户自定义HTTP原文发送请求。为了让用户使用简单,符合直觉,只需要关心数据相关信息,Yakit后端(yaklang)做了很多工作。 首先我们先来学习重放请求的操作,在日常工作中可以使用 Web Fuzzer进行请…

32、github的使用小技巧

如何在github中阅读项目代码 如果要完整阅读项目代码, 可能要在文件间来回跳转,就非常麻烦。所以我们往往会把项目代码下载到本地,用更强大的编辑器来阅读。 在github中,可以这样操作: 登录 GitHub 后,直…

【Linux】第四站:Linux基本指令(三)

文章目录 一、时间相关的指令1.指令简介2.使用 二、cal指令三、find指令 -name1.介绍2.使用 四、grep指令1.介绍2.使用 五、zip/unzip指令1.介绍2.zip的安装3.使用 六、tar指令:打包解包,不打开它、直接看内容1.介绍2.使用 七、bc指令八、uname -r指令1.…

【Linux】配置JDKTomcat开发环境及MySQL安装和后端项目部署

目录 一、jdk安装配置 1. 传入资源 2. 解压 3. 配置 二、Tomcat安装 1. 解压开启 2. 开放端口 三、MySQL安装 1. 解压安装 2. 登入配置 四、后端部署 1. 数据库 2. 导入.war包 3. 修改端口 4.开启访问 一、jdk安装配置 打开虚拟机 Centos 登入账号&#xff…

数字孪生技术与VR:创造数字未来

在当今数字化浪潮中,数字孪生和虚拟现实(VR)技术是两大亮点,它们以独特的方式相互结合,为各个领域带来了创新和无限可能。本篇文章将探讨数字孪生与VR之间的关系,以及它们如何共同开辟未来的新前景。 数字…

Linux 基本语句_9_C语言_生产者消费者

完整版生产者代码&#xff1a; #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> #include <stdlib.h> #include <sys/file.h> #include <string.h>#define MAXLE…

ElasticSearch(ES)8.1及Kibana在docker环境下如何安装

ES基本信息介绍 Elasticsearch&#xff08;简称ES&#xff09;是一个开源的分布式搜索和分析引擎&#xff0c;最初由Elastic公司创建。它属于Elastic Stack&#xff08;ELK Stack&#xff09;的核心组件之一&#xff0c;用于实时地存储、检索和分析大量数据。 以下是Elastics…

云起无垠典型案例入选《2023软件供应链安全洞察》报告

近日&#xff0c;历时6个月&#xff0c;由ISC编制的《2023软件供应链安全洞察》报告&#xff08;以下简称《报告》&#xff09;正式对外发布。《报告》围绕软件供应链安全现状、技术内核、治理指南、落地实践展开&#xff0c;以期为行业从业者提供有价值的信息和洞见&#xff0…

GoLong的学习之路(十六)基础工具之Gin框架

Gin框架介绍及使用&#xff0c;这张不用看内容就知道非常重要&#xff0c;重要到什么地步呢&#xff1f;重要到开发java不会Spring全家桶这种概念。 上几篇文章写的是如何构建骨架&#xff0c;经脉。这一章是将血肉注入。 文章目录 Gin框架RESTful API Gin渲染HTML渲染静态文件…

【mfc/VS2022】计图实验:绘图工具设计知识笔记3

实现类对串行化的支持 如果要用CArchive类保存对象的话&#xff0c;那么这个对象的类必须支持串行化。一个可串行化的类通常有一个Serialize成员函数。要想使一个类可串行化&#xff0c;要经历以下5个步骤&#xff1a; 1、从CObject派生类 2、重写Serialize成员函数 3、使用DE…

PostGreSQL:数据表继承

PostGreSQL手册的简史部分介绍到&#xff1a;被称为PostGreSQL的对象关系型数据库管理系统&#xff0c;由美国加州大学伯克利 分校编写的POSTGRES软件包发展而来。经过十几年的发展&#xff0c;PostGreSQL目前是世界上最先进的开源数据库。 The object-relational database man…

【C++】string类

STL STL(standard template libaray-标准模板库)&#xff1a;是C标准库的重要组成部分&#xff0c;不仅是一个可复用的组件库&#xff0c;而且是一个包罗数据结构与算法的软件框架。 为什么学习string类&#xff1f; 1、C语言中的字符串 C语言中&#xff0c;字符串是以\0结尾…

计组之存储系统

存储器概述 分类 1.按在计算机中的作用&#xff08;层次&#xff09;分类 主存储器。CPU可以直接随机地对其进行访问&#xff0c;也可以和高速缓冲存储器&#xff08;Cache)及辅助存储器交换数据。辅助存储器。辅存的内容需要调入主存后才能被CPU访问。高速缓冲存储器。位于…