机器学习笔记-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.rhkb.cn/news/382998.html

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

相关文章

(35)远程识别(又称无人机识别)(二)

文章目录 前言 4 ArduRemoteID 5 终端用户数据的设置和使用 6 测试 7 为OEMs添加远程ID到ArduPilot系统的视频教程 前言 在一些国家,远程 ID 正在成为一项法律要求。以下是与 ArduPilot 兼容的设备列表。这里(here)有一个关于远程 ID 的很好解释和常见问题列表…

ubuntu那些ppa源在哪

Ubuntu中的 PPA 终极指南 - UBUNTU粉丝之家 什么是PPA PPA 代表个人包存档。 PPA 允许应用程序开发人员和 Linux 用户创建自己的存储库来分发软件。 使用 PPA,您可以轻松获取较新的软件版本或官方 Ubuntu 存储库无法提供的软件。 为什么使用PPA? 正如…

VLC输出NDI媒体流

目录 1. 下载安装VLC Play 2. 首先在电脑上安装NDI Tools 3. 运行VLC进行输出配置 4. 播放视频 5. 验证 (1)用Studio Monitor验证 (2)用OBS验证 NDI(Network Device Interface)即网络设备接口,是由美国 NewTek 公司开发的免费标准,它可使兼容的视频产品以高质量…

视图、存储过程、触发器

一、视图 视图是从一个或者几个基本表(或视图)导出的表。它与基 本表不同,是一个虚表,视图只能用来从查询,不能做增删改(虚拟的表) 1.创建视图 创建视图的语法: create view 视图名【view_xxx / v_xxx】 a…

基于CALMET诊断模型的高时空分辨率精细化风场模拟

原文链接:基于CALMET诊断模型的高时空分辨率精细化风场模拟https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247610033&idx7&sn999fb0fa3a0e57acebdfe209587ce7f3&chksmfa826f56cdf5e640f7dba429a9213a38d1222415eccd8660f4cf9fb46fa1a5ab3c5…

Netty:基于NIO的 Java 网络应用编程框架

Netty 是一个被广泛使用的,基于NIO的 Java 网络应用编程框架,Netty框架可以帮助开发者快速、简单的实现客户端和服务端的网络应用程序。“快速”和“简单”并不用产生维护性或性能上的问题。Netty 利用 Java 语言的NIO网络编程的能力,并隐藏其…

JavaWeb笔记_JSPEL

一.JSP相关技术 1.1 JSP由来 当我们需要向页面输出大量的HTML代码的时候,我们需要通过response对象写多次来输出HTML代码 response.getWriter().write("<font>文本</font>"); 页面的展示和servlet密不可分,不利于后期代码维护,因此推出一种可以…

记录一仿真错误,波形缩放有脉冲高信号,放大看不到信号了

是因为信号拉高的时间太短&#xff0c;拉高之后又把它拉低了&#xff0c;需要仔细看一下信号生成的代码。 错误代码与正确代码##正确代码always (posedge clk or negedge rst_n)begin if(!rst_n)beginwr_en < 1d0;wr_data < 8h0;endelse if(state_c DATASEND …

前端JS特效第52波:鼠标经过文字标题百叶窗动画特效风格切换图片轮播js效果

鼠标经过文字标题百叶窗动画特效风格切换图片轮播js效果&#xff0c;先来看看效果&#xff1a; 部分核心的代码如下&#xff1a; <html><head><meta charset"utf-8"><title>鼠标经过文字标题百叶窗动画特效风格切换图片轮播js效果</titl…

electron 网页TodoList应用打包win桌面软件数据持久化

参考&#xff1a; electron 网页TodoList工具打包成win桌面应用exe https://blog.csdn.net/weixin_42357472/article/details/140648621 electron直接打包exe应用&#xff0c;打开网页上面添加的task在重启后为空&#xff0c;历史没有被保存&#xff0c;需要持久化工具保存之前…

【Unity国产化信创平台】麒麟银河V10系统虚拟机创建

目录 一、麒麟V10系统镜像下载 二、虚拟机创建流程 三、麒麟银河系统安装流程 一、麒麟V10系统镜像下载 https://www.kylinos.cn/# 官方访问还是会有问题&#xff0c;如果有需要麒麟银河Kylin系统V10的镜像文件&#xff0c;可以留下邮箱或者私信博主获取。 二、虚拟机创…

【Gin】架构的精妙编织:Gin框架中组合模式的革新实践与技术深度解析(上)

【Gin】架构的精妙编织&#xff1a;Gin框架中组合模式的革新实践与技术深度解析(上) 大家好 我是寸铁&#x1f44a; 【Gin】架构的精妙编织&#xff1a;Gin框架中组合模式的革新实践与技术深度解析(上)✨ 喜欢的小伙伴可以点点关注 &#x1f49d; 前言 本次文章分为上下两部分…

MySQL练手 --- 1251. 平均售价

题目链接&#xff1a;1251. 平均售价 思路&#xff1a; 由题意可知&#xff0c;Prices表和UnitsSold表&#xff0c;表的连接关系为一对一&#xff0c;连接字段&#xff08;匹配字段&#xff09;为product_id 要求&#xff1a;查找每种产品的平均售价。而Prices表含有价格还有…

【区块链+绿色低碳】双碳数字化管控平台 | FISCO BCOS应用案例

地方政府、园区及企业实现“双碳”目标过程中存在一些挑战与难点&#xff1a; 1. 管理者难以掌握完整、准确、全面的碳排放数据进行科学决策&#xff1a;由于碳排放核算需要对数据的来源、核算方法 的规范性和采集方法的科学性有严格要求&#xff0c;当前面临碳排放数据数据采…

视频翻译保留原音色pyvideotrans+clone-voice

剪映的视频翻译时长限制5分钟以内&#xff0c;需要积分2700首次有减免大概21.6元&#xff08;1秒9积分/1元100积分&#xff09; • 视频翻译配音工具pyvideotrans 将视频从一种语言翻译为另一种语言&#xff0c;并添加配音 打包链接&#xff1a;夸克网盘分享 升级补丁&#…

Python从0到100(四十六):实现管理员登录及测试功能

前言&#xff1a; 零基础学Python&#xff1a;Python从0到100最新最全教程。 想做这件事情很久了&#xff0c;这次我更新了自己所写过的所有博客&#xff0c;汇集成了Python从0到100&#xff0c;共一百节课&#xff0c;帮助大家一个月时间里从零基础到学习Python基础语法、Pyth…

【BUG】已解决:You are using pip version 10.0.1, however version 21.3.1 is available.

You are using pip version 10.0.1, however version 21.3.1 is available. 目录 You are using pip version 10.0.1, however version 21.3.1 is available. 【常见模块错误】 【解决方案】 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&#…

QT--线程

一、线程QThread QThread 类提供不依赖平台的管理线程的方法&#xff0c;如果要设计多线程程序&#xff0c;一般是从 QThread继承定义一个线程类&#xff0c;在自定义线程类里进行任务处理。qt拥有一个GUI线程,该线程阻塞式监控窗体,来自任何用户的操作都会被gui捕获到,并处理…

BGP选路之AS-PATH

原理概述 当一台BGP路由器中存在多条去往同一目标网络的BGP路由时&#xff0c;BGP协议会对这些BGP路由的属性进行比较&#xff0c;以确定去往该目标网络的最优BGP路由。首先要比较的属性是 Preferred Value&#xff0c;然后是Local Preference&#xff0c;再次是路由生成方式&a…

BGP选路之Next Hop

原理概述 当一台BGP路由器中存在多条去往同一目标网络的BGP路由时&#xff0c;BGP协议会对这些BGP路由的属性进行比较,以确定出去往该目标网络的最优BGP路由,然后将该最优BGP路由与去往同一目标网络的其他协议路由进行比较&#xff0c;从而决定是否将该最优BGP路由放进P路由表中…