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

前言

以下问题以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.xdnf.cn/news/1488509.html

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

相关文章

使用 Visual Studio 2022 自带的 cl.exe 编译 tensorRT自带测试样例 sampleOnnxMNIST

1. 新建任意文件夹,将 D:\install\tensorRT\TensorRT-8.6.1.6\samples\sampleOnnxMNIST 下面的 sampleOnnxMNIST.cpp 文件复制进来,同时 D:\install\tensorRT\TensorRT-8.6.1.6\samples\sampleOnnxMNIST 下面的 sample_onnx_mnist.vcxproj 中的内容&…

江科大/江协科技 STM32学习笔记P13

文章目录 TIM定时中断1、TIM简介计数器预分频器自动重装寄存器 2、定时器类型基本定时器主模式触发DAC 通用定时器高级定时器 3、定时器原理定时中断基本结构预分频器时序计数器时序RCC时钟树 TIM定时中断 1、TIM简介 定时器的基准时钟一般都是主频72MHz,如果对72M…

IPD推行成功的核心要素(十五)项目管理提升IPD相关项目交付效率和用户体验

研发项目往往包含很多复杂的流程和具体的细节。因此,一套完整且标准的研发项目管理制度和流程对项目的推进至关重要。研发项目管理是成功推动创新和技术发展的关键因素。然而在实际管理中,研发项目管理常常面临着需求不确定、技术风险、人员素质、成本和…

分享一个好用的音频解码工具——音乐解锁

在酷狗、网易云、虾米、酷我等平台下载的音乐只能在各自平台的播放上播放。比如,kgm转MP3的方法想必大家在网上也寻找了各种解决方法,方法也不少,但大多数都是不好用或者需要充米。有没有白嫖的工具呢?当然有了,白嫖是…

如何使用 DSPy 构建多步骤推理的 RAG 系统

一、前言 检索增强生成 (RAG) 系统已经成为构建基于大语言模型 (LLM) 应用的强大方法。RAG 系统的工作原理是:首先使用检索模型从外部知识源检索相关信息,然后使用这些信息来提示 LLM 生成最终的响应。 然而,基本的 RAG 系统(也…

河南萌新联赛2024第(二)场:南阳理工学院(部分题解)

题目D&#xff1a; A*BBBB 题目链接 题意描述&#xff1a; t组输入&#xff0c;每组输入两个整数a&#xff0c;b&#xff0c;其中b的每位数字都相等&#xff0c;a&#xff0c;b非常大&#xff0c;0<a,b<101000000 ,并且a&#xff0c;b都不含前导0. 解题思路&#xff…

[Spring] MyBatis操作数据库(基础)

&#x1f338;个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;️热门专栏: &#x1f9ca; Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 &#x1f355; Collection与…

LINUX -exec函数族

1、功能&#xff1a; *让父子进程来执行不相干的操作 *能够替换进程地址空间的代码.text段 *执行另外的程序&#xff0c;不需要创建额外的的地址空间 *当前程序中调用另外一个应用程序 2、执行目录下的程序&#xff1a; *指定执行目录下的程序 int execl(const char *path,…

「12月·长沙」第四届机器人、自动化与智能控制国际会议(ICRAIC 2024)

随着科技的飞速发展&#xff0c;智能机器人在当今社会的重要性愈发凸显。从制造业的自动化生产线&#xff0c;到医疗领域的手术机器人&#xff0c;再到家庭生活中的智能助手&#xff0c;机器人与人工智能的融合正在改变着我们的生产和生活方式。第四届机器人、自动化与智能控制…

How can I fix my Flask server‘s 405 error that includes OpenAi api?

题意&#xff1a;解决包含OpenAI API的Flask服务器中出现的405错误&#xff08;Method Not Allowed&#xff0c;即方法不允许&#xff09; 问题背景&#xff1a; Im trying to add an API to my webpage and have never used any Flask server before, I have never used Java…

自定义协议(应用层协议)——网络版计算机基于TCP传输协议

应用层&#xff1a;自定义网络协议&#xff1a;序列化和反序列化&#xff0c;如果是TCP传输的&#xff1a;还要关心区分报文边界&#xff08;在序列化设计的时候设计好&#xff09;——粘包问题 1、首先想要使用TCP协议传输的网络&#xff0c;服务器和客户端都应该要创建自己…

友思特应用 | 硅片上的光影贴合:UV-LED曝光系统在晶圆边缘曝光中的高效应用

导读 晶圆边缘曝光是帮助减少晶圆涂布过程中多余的光刻胶对电子器件影响的重要步骤。友思特 ALE/1 和 ALE/3 UV-LED 高性能点光源&#xff0c;作为唯一可用于宽带晶圆边缘曝光的 i、h 和 g 线的 LED 解决方案&#xff0c;可高效实现WEE系统设计和曝光需求。 晶圆边缘曝光及处…

<数据集>棉花开花程度识别数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;13765张 标注数量(xml文件个数)&#xff1a;13765 标注数量(txt文件个数)&#xff1a;13765 标注类别数&#xff1a;4 标注类别名称&#xff1a;[Partially opened, Fully opened boll, Defected boll, Flower] 序…

【Android】大喇叭——广播

广播机制介绍 Android中的广播分为两种类型&#xff1a;标准广播和有序广播 标准广播&#xff1a;是一种完全异步执行的广播&#xff0c;在广播发出之后&#xff0c;所有的广播接收器几乎都会在同一时刻接受到这条广播信息&#xff0c;它们之间没有先后顺序。这种广播的效率会…

ARTMO Table ‘db1.test_mla_result‘ doesn‘t exist解决方案

com.mysql.jdbc.JDBC4PreparedStatement3f3c966c: describe test_mla_result; Java exception occurred: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table db1.test_mla_result doesnt exist解决方案&#xff1a; 打开MySQL的command Line, 输入SHOW TABLES…

Eclipse 生成 jar 包

打开 Jar 文件向导 Jar 文件向导可用于将项目导出为可运行的 jar 包。 打开向导的步骤为: 在 Package Explorer 中选择你要导出的项目内容。如果你要导出项目中所有的类和资源&#xff0c;只需选择整个项目即可。点击 File 菜单并选择 Export。在输入框中输入"JAR"…

谷粒商城实战笔记-55-商品服务-API-三级分类-修改-拖拽数据收集

文章目录 一&#xff0c;拖拽后结点的parentCid的更新二&#xff0c;拖拽后结点的父节点下所有结点的sort排序属性的变化更新排序的逻辑代码分析 三&#xff0c;拖拽后结点及其子节点catLevel的变化判断是否需要更新 catLevel获取拖动后的新节点 更新 catLevel完整代码 这一节的…

Apache ShardingSphere Proxy5.5.0实现MySQL分库分表与读写分离

1. 前提准备 1.1 主机IP:192.168.186.77 version: 3.8services:mysql-master:image: mysql:latestcontainer_name: mysql-masterenvironment:MYSQL_ROOT_PASSWORD: 123456MYSQL_USER: masterMYSQL_PASSWORD: 123456MYSQL_DATABASE: db1 ports:- "3306:3306&quo…

十一、Dockerfile解析

目录 一、Dockerfile简介 二、dockerfile的构建的三个步骤 三、Dockerfile的构建过程 1、DockerFile内容的基础知识 2、Docker执行Dockerfile的大致流程 四、dockerfile常用的保留字 1、FROM 2、MAINTAINER 3、RUN 4、EXPOSE 5、WORKDIR 6、USER 7、ENV 8、VOLUME …

Tensorflow2.0全套学习(持续更新中)

0 简介 1.学习目标 两大核心模块&#xff1a;深度学习经典算法与Tensorflow项目实战 从零开始&#xff0c;详细的网络模型架构与框架实现方法 2.tensorflow&#xff1a;核心开源库&#xff0c;深度学习框架&#xff0c;帮助开发和训练机器学习模型 3.版本2比1有哪些优势 …