机器学习笔记-01-初识基础(问题-解答自查版)

news2024/11/16 6:28:07

前言

以下问题以Q&A形式记录,基本上都是笔者在初学一轮后,掌握不牢或者频繁忘记的点

Q&A的形式有助于学习过程中时刻关注自己的输入与输出关系,也适合做查漏补缺和复盘。

本文对读者可以用作自查,答案在后面,需要时自行对照。


问题集

数据集

Q1:什么是结构化数据与非结构化数据?二者有什么不同的处理方式?

Q2:对于一个数据集dataset,什么是feature?如果数据集是非结构化数据,他的特征(feature)的格式大致是什么?

Q3:回归任务(regression)的主要目标是什么?

Q4:逻辑回归是什么?逻辑回归的特性?(回归中有线性回归和多项式回归,这些和逻辑回归有什么关系?)


机器学习的分类

Q5:分类和回归都属于监督学习,这个说法正确吗?

Q6:数据的降维,从特征视角看是做了什么工作?降维和数据可视化属于什么学习?

Q7:数据降维有哪几种方法?


Q8:未来ai的重要问题:模型可信,小样本,推理而不是判断(缺乏抽象思维和逻辑推理)


下图四大工具的主要内容是否已经熟知?

Q9:jupyter的用法和魔法命令?

Q10:在jupyter中,%%whos %%lsmagic 是做什么的?


Q11: 对于以下代码,其输出的结果是什么?

x = [i for i in range(10)]

Q12:创建数组有两种方法:range 和 np.arange,二者显著的区别是什么?

Q13:在numpy中random.seed设置之后,执行的代码行数不同为什么有不同结果?


数组切片

Q14:numpy中,a[:] ,以及 a[::2] 代表什么?( 思考:a[x:y:z] )

Q15:对numpy的数组a,制造一个切片 a[1:3],并且对这个切片内容进行修改,a会发生改变吗?原生数组呢?

Q16:如果数组切片会改变,那么有效的处理方式是什么?(我就想要一个“不会改变的”切片之后的array,该怎么做?)

Q17:numpy中的均值?标准差?方差?

Q18:numpy中,如果想知道一个x[1000000]数组中,min值所在的数组下标,该怎么做?

Q19:如何合并和拆分数组?除了hstack和vstack?(最为原始的是哪一个?对应的拆分?)

Q20:用vstack和vsplit??

Q21:如何将 a[2,3] 这个数组的最后一列split开?(注意使用“最后一列”方法切片,而不是切“第3列”)

Q22:已知A=[1,2,3,4] ,如何获得 A2 = [1x2, 2x2, 3x2, 4x2]

Q23:神奇索引怎么使用?如何结合布尔数组使用?

Q24:numpy中,假设x是一个数组,那么 x[x>3] 是什么语法含义?

Q25:arg是用来干什么的?

Q26:np.all 和 np.any 是干什么的?

Q27:np.count_nonzero(x[x==3])


参考解答

数据集

Q1:什么是结构化数据与非结构化数据?二者有什么不同的处理方式?

A1:结构化数据可以是“鸢尾花→A参数:x,B参数y,....”,

非结构化数据可以是图片文字等参数与值一一对应的数据,其处理方式有:

         1)映射成结构化特征 2)直接进行处理

Q2:对于一个数据集dataset,什么是feature?如果数据集是非结构化数据,他的特征(feature)的格式大致是什么?

A2:在机器学习和数据分析领域,数据集(dataset)通常由多个数据点组成,每个数据点可以是一条记录或一个实例。而特征(feature)则是指数据集中每个数据点的属性或测量值。特征可以是连续的数值,也可以是离散的类别。

例如,如果我们有一个数据集是关于不同汽车的信息,那么可能的特征包括:

  • 汽车的制造商(离散特征)
  • 汽车的年份(连续特征)
  • 汽车的里程数(连续特征)
  • 汽车的价格(连续特征)
  • 汽车的类型(离散特征,如轿车、SUV等)

对于非结构化数据,例如图像一类的非结构化数据的feature可以是像素,我们也可以把一个32x32的像素集合当成一个特征向量。

Q3:回归任务(regression)的主要目标是什么?

A3:量化xx是xx的概率。

Q4:逻辑回归是什么?逻辑回归的特性?(回归中有线性回归和多项式回归,这些和逻辑回归有什么关系?)

A4:一种可解释性强,可并行的二分类任务,业界工程化中很受欢迎。不过他的 f() 与二分类有所不同,这部分深挖起来细节很多


机器学习的分类

Q5:分类和回归都属于监督学习,这个说法正确吗?

A5: √,监督学习的关键特点在于训练数据包含输入特征及其对应的标签或结果。

Q6:数据的降维,从特征视角看是做了什么工作?降维和数据可视化属于什么学习?

A6:无监督学习。数据的降维实际上是将多个特征合并成一个

Q7:数据降维有哪几种方法?

A7:在众多数据降维方法中,以下是最新或最著名的四种降维技术:

    1. 主成分分析(PCA):PCA是一种经典的线性降维技术,通过正交变换将原始数据转换到一组线性不相关的主成分上,以找出数据的“最大方差”方向,并将数据投影到这些方向上。它通常用于减少数据集的维度,同时尽可能保留数据中的变异性,也常用于可视化高维数据 。
    2. t-分布随机邻域嵌入(t-SNE):t-SNE是一种非线性降维技术,非常适合高维数据降维到2维或3维进行可视化。它基于概率分布的方式将高维数据映射到低维空间,尤其适用于数据具有复杂分布特征的数据集 。
    3. 局部线性嵌入(LLE):LLE也是一种非线性降维技术,核心思想是保持数据点的局部特性。它在每个点的邻域中找到最佳的线性表示,然后在低维空间中重建这些线性关系,尤其适用于那些局部区域结构重要的数据 。
    4. 自动编码器(Autoencoders):自动编码器是一种基于神经网络的非线性降维技术。它通过训练网络学习一个低维表示(编码),然后重构输出,以尽可能接近输入数据。在深度学习领域,它们广泛用于无监督学习的特征提取和数据压缩 。

A8:--

Q9:jupyter中的魔法命令?

A9:jupyter

Q10:在jupyter中,%%whos %%lsmagic 是做什么的?

A10: %whos 用来调试

%lsmagic 用来列出所有的魔法命令

Q11: 对于以下代码,其输出的结果是什么?

x = [i for i in range(10)]

A11:

1) x = [ i for i in range(10) ]

特别注意!输出的是数组 [0,1,...,9 ], 而不是10。python的range采用了左闭右开的设计规则!

2)如果在调用 random.seed() 之后,执行了其他未指定随机种子的操作,这些操作可能会影响随机数生成器的状态,从而导致不同的结果。

Q12:创建数组有两种方法:range 和 np.arange,二者显著的区别是什么?

A12:range的方式不限定数组元素类型,处理起来较慢,输出也是体量较大的多功能数组类型。

np.arange 的底层是 np.array ,更面向数学,处理速度快很多,像是向量和矩阵的概念。

Q13:在numpy中random.seed设置之后,执行的代码行数不同为什么有不同结果?

A13:一般是意外情况。如果你在代码的不同位置设置了不同的种子值,或者在某些地方没有设置种子,那么随机数生成器的起始点将会不同,从而导致生成的随机数序列也不同。一个典型例子:如果在代码的不同部分多次调用了 random.seed 并且使用了不同的值,每次设置都会改变随机数生成器的状态,导致后续生成的随机数序列不同。


数组切片

Q14:numpy中,a[:] ,以及 a[::2] 代表什么?( 思考:a[x:y:z] )

A14:numpy中,a[:] 代表整个a(切了没?如切!) a[::2] 代表隔一个取一个。

实际上 a[x:y:z] 是一个切片的完全体格式,代表着 切x~y,从x开始,每次增加z个偏移量的下标取数组元素

Q15:对numpy的数组a,制造一个切片 a[1:3],并且对这个切片内容进行修改,a会发生改变吗?原生数组呢?

A15:numpy中对数组的切片进行修改,则矩阵会被修改,而py不会。原因是为了效率考虑,设计时使用了引用。

Q16:如果数组切片会改变,那么有效的处理方式是什么?(我就想要一个“不会改变的”切片之后的array,该怎么做?)

A16:x = a[1:8].copy()

Q17:numpy中的均值?标准差?方差?

A17:平均值mean,方差std,标准差var。使用起来大概是这样:a.std()

Q18:numpy中,如果想知道一个x[1000000]数组中,min值所在的数组下标,该怎么做?

A18:

Q19:如何合并和拆分数组?除了hstack和vstack?(最为原始的是哪一个?对应的拆分?)

Q20:用vstack和vsplit??

A19:合并数组:c = np.concatenate( (a,b),axis=0 )

# 数组的合并 a = np.arange(10).reshape(2,5) b = np.full_like(a,1) print("a = \n",a,"\n","b = \n",b) # c = np.concatenate(a,b) c = np.concatenate((a,b)) # 这种就是以行的形式接上去了,默认是这样 print("concatenated c(axis=0) = \n",c) c = np.concatenate((a,b),axis = 1) # axis 可以指定合并哪个维度 print("concatenated c(axis=1) = \n",c)

输出结果:

对应的拆分:

x,y = np.split(c,2,axis=0) print(x," ",y) x,y = np.split(c,2,axis=1) x,y

A20:

# np.split? c1,c2 = np.vstack((a,b)), np.hstack((a,b)) x1,x2 = np.vsplit(c1,2) x1,x2 = np.hsplit(c2,2) x1,x2

Q21:如何将 a[2,3] 这个数组的最后一列split开?(注意使用“最后一列”方法切片,而不是切“第3列”)

A21:

a,b = np.split(c1, [-1] ,axis=1) # [-1] 代表最后一行/列,axis=1 代表列

b

Q22:已知A=[1,2,3,4] ,如何获得 A2 = [1x2, 2x2, 3x2, 4x2]

A22: numpy中,直接用 A*2 就可以。

但是注意,这个特性只有numpy有,对于py原生是不可以用的,这种情况写的就会比较麻烦:

Q23:神奇索引怎么使用?如何结合布尔数组使用?

A23:以二维数组为例,以下代码访问的分别是:D[1,2] , D[1,2], D[1,3]

D[ np.array([1,1,1]), np.array([2,2,3]) ]

或者

D[ [1,1,1],[2,2,2] ]

另外还有:

col = [1,3]

B[0,col] # 第0行,第col=[1,3]两列

B[1,1:3] # 第0行,第col=[1~3]列

Q24:numpy中,假设x是一个数组,那么 x[x>3] 是什么语法含义?

A24:x[x>3] 运用了 x>3 这一个比较索引,生成了一个 shape上等同于x的布尔索引数组

布尔索引和神奇索引连用就会产生这种效果。我们可以让任意表达式变成索引!不过一定要记得是 ndarray 才可以

Q25:arg是用来干什么的?

A25:arg主要用来返回地址,what is the index。使用了argxxx的函数最终返回的就是下标而非数据。

Q26:np.all 和 np.any 是干什么的?

A26:

Q27:np.count_nonzero(x[x==3]) 的含义?

A27:统计x[x=3]数组中非0元素的个数 → x中 =3 的元素个数

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

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

相关文章

DNS续集

1、DNS多域名解析 [rootdns ~]# vim /etc/named.rfc1912.zones 复制5行放在最后面 zone "z.a" IN { type master; file "z.a.zone"; allow-update { none; }; }; zone "4.168.192.in-addr.arpa" IN { type ma…

<数据集>玉米地杂草识别数据集<目标检测>

数据集格式:VOCYOLO格式 图片数量:9900张 标注数量(xml文件个数):9900 标注数量(txt文件个数):9900 标注类别数:2 标注类别名称:[Maize, Weed] 序号类别名称图片数框数1Maize8439125142Weed959231048…

rk3588s 定制版 USB adb , USB2.0与USB3.0 区别,adb 由typeC 转换到USB3.0(第二部分)

硬件资源: rk3588s 核心板定制的地板 软件资源: 网盘上的 android12 源码 1 硬件上 客户只想使用 type c 接口中的 usb2.0 OTG 。在硬件上,甚至连 CC芯片都没有连接。 关于一些前置的知识。 1 USB2.0 与 USB3.0 的区别。 usb3.0 兼容2.0 …

USUART代码例程和库函数

USUART代码例程和库函数 一、USUART中重要的寄存器二、USART中发送数据。三、接收数据四、USART发送数据示例代码(print重定向)五、USART接收数据示例代码六、USART常用的库函数usart_deinit():复位外设USARTusart_bau…

什么是大型语言模型 (LLM)

本章探讨下,人工智能如何彻底改变我们理解和与语言互动的方式 大型语言模型 (LLM) 代表了人工智能的突破,它采用具有广泛参数的神经网络技术进行高级语言处理。 本文探讨了 LLM 的演变、架构、应用和挑战,重点关注其在自然语言处理 (NLP) 领…

【ARM】MDK-STM32g0xx.h文件与Define规则记录

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 记录问题STM32g0xx.h等有关ST的可读文件,尽量勿修改文件格式及对其代码进行添加和删减,记录查找问题的过程中的疑惑,并如何给予客户正确的回复,帮助销售完成验收&…

VBA实例-从Excel整理数据到Word

实现目录 功能需求数据结构复制数据到新sheet并分类数据添加序号、日期、时间三列数据添加序号列添加时间列 将名称和类别复制到word文件中将参数5和参数9中的一个复制到word文件中 实例 功能需求 1、将原始数据中不要的数据剔除 2、原始数据中增加序号、日期和时间三列数据&a…

富唯智能转运机器人:高效、智能、未来的选择

在现代工业中,高效的物流和物料处理是提升生产效率的关键。富唯智能转运机器人,以其卓越的技术和智能化的设计,为各行业提供了完美的解决方案。 产品概述 富唯智能转运机器人搭载ICD系列核心控制器,拥有多种移载平台&#xff0c…

【目标检测】Yolo5基本使用

前言 默认安装好所有配置,只是基于Yolo5项目文件开始介绍的。基于配置好的PyCharm进行讲解配置。写下的只是些基本内容,方便以后回忆用。避免配置好Yolo5的环境,拉取好Yolo5项目后,不知道该如何下手。如果有时间,我还是…

我在Vscode学Java集合类

Java集合类 一、集合1.1 集合和数组之间的对比1.2 集合框架的核心接口1.3 集合框架中的实现类单列集合双列集合 1.4 集合框架的特点 二、 Collection集合与Iterator迭代器2.1 Collection的概述2.1.1 常用方法增加元素的方法修改元素的方法删除元素的方法查询元素的方法遍历集合…

Delphi5实现鱼C屏幕保护程序

效果图 鱼C屏幕保护程序 添加背景图片 在additional添加image组件,修改picture属性上传图片。 这个图片可以截屏桌面,方便后面满屏不留白操作。实现无边框 即上面的“- □ ”不显示 将Form1的borderstyle属性改为bsnone实现最大化,满屏 将…

mac OS matplotlib missing from font(s) DejaVu Sans

如果能搜索到这篇文章,我猜你遇到了和我一样的问题:matplotlib绘图中文乱码。如下: 出现这个问题的原因是:matplotlib使用的字体列表中默认没有中文字体。 这里说一种解决方案:我们可以在文件中手动指定matplotlib使用…

springcloud接入skywalking作为应用监控

下载安装包 需要下载SkyWalking APM 和 Java Agent 链接: skywalking 安装 下载JDK17(可不配置环境变量) 目前skywalking 9.0及以上版本基本都不支持JDK8,需要JDK11-21,具体版本要求在官网查看。 我这里使用的是skywalking9.…

开发桌面程序-Electron入门

Electron是什么 来自官网的介绍 Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 嵌入 Chromium 和 Node.js 到 二进制的 Electron 允许您保持一个 JavaScript 代码代码库并创建 在Windows上运行的跨平台应用 macOS和Linux——不需要本地开发 经验。 总…

Audio Mixer Examples

简介 Audio Mixer 是在 Unity 5.0 版本中首次引入的音频混合器工具,它可以帮我们处理声音的分组管理、音效模拟、情景再现等重要业务。 功能入口 在资产视口单击鼠标右键 选择 Create 选项 选择 Audio 选项 点击 Audio Mixer Audio Mixer Assets 的属性面板 …

第一讲:NJ本地配置

本地配置:就是和CPU本地放在一起的系统配置,不是通过网络通信等方式配置的。 NJ本地系统配置 一、CPU机架(即CPU所在的机架) 如图所示最右边数量是有限制的,每个机架最多可放置10个扩展IO单元 二、扩展机架(1个本地的NJ扩展系统中,最多可以扩展3个机架,且每个机架最多…

从数据时代到智能时代,星环科技信雅达联合发布金融全栈解决方案

近年来,星环科技与信雅达在金融行业的多个关键领域展开了广泛而深入的合作,推出了一系列面向金融科技领域的联合解决方案。此次合作基于星环科技在大数据、人工智能和云计算领域的先进技术,以及信雅达在金融领域的深厚积累,围绕数…

数据科学统计面试问题 -40问

前 40 名数据科学统计面试问题 一、介绍 正如 Josh Wills 曾经说过的那样,“数据科学家是一个比任何程序员都更擅长统计、比任何统计学家都更擅长编程的人”。统计学是数据科学中处理数据及其分析的基本工具。它提供了工具和方法,可帮助数据科学家获得…

【数据挖掘】关系网络可视化

目录 1. Pyvis 介绍 2. 关系网络可视化 1. Pyvis 介绍 Pyvis 是一个 Python 库,用于创建和可视化网络图。它基于 Vis.js 库,可以生成交互式的 HTML 文件,让用户在网页上直观地查看和操作网络图。以下是 Pyvis 的主要功能和特点&#xff1a…

12.直接交换机-direct exchange

直接交换机与上一篇介绍的扇出类型交换机的区别就在于: 扇出交换机的routingKey都是空串,也就是一样的。而直接类型交换机的routingKey都是不一样的。还有就是交换机的类型不一样。 直接类型交换机,也叫做路由模式。通过routingKey可以做到区…