- 博客(405)
- 问答 (6)
- 收藏
- 关注
原创 numpy的随机数生成器
是 NumPy 1.17.0 引入的默认随机数生成器,它基于。更灵活,支持更先进的随机数生成方法,并允许更方便地切换不同的。,提供更快、更安全的随机数生成方式。来创建随机数生成器。设置种子可以保证可复现性。
2025-03-03 13:42:31
195
原创 机器学习:强化学习的epsilon贪心算法
强化学习(Reinforcement Learning, RL)是一种机器学习方法,旨在通过与环境交互,使智能体(Agent)学习如何采取最优行动,以最大化某种累积奖励。它与监督学习和无监督学习不同,强调试错探索(Exploration-Exploitation)以及基于奖励信号的学习。强化学习任务通常用马尔可夫决策过程来描述:机器处于环境E中,状态空间X,其中每个状态x∈X是机器感知到的环境的描述,机器能采取的动作构成了动作空间A,若某个动作a∈A作用在当前状态x。
2025-02-27 16:15:42
1383
原创 数据结构:树的概念
树的概念:树是n个结点的有限集合,有且仅有一个被称为根的结点。当n1时,其余结点可分为互不相交的有限集合,其中每个集合本身又是一颗树。有序树:树中结点各子树从左到右是有次序的,不能交换。无序树:~森林是m棵互不相交的树的集合。。
2025-02-27 10:29:48
894
原创 大语言模型概念科普
这些模型可以通过大量的数据和参数进行训练,以生成人类类似的文本或回答自然语言的问题。在AI大模型中,Prompt的作用主要是给AI模型提示输入信息的上下文和输入模型的参数信息。在使用大语言模型时,总会看到token一词,调用大模型api是根据token的使用数进行付费。与当前的人工智能(AI)相比,AGI 不是专门针对某个任务(如语言生成、图像识别),而是具备。大模型(Large Model)是指具有大规模参数和复杂计算结构的机器学习模型。文字、图片、音频、视频等多种内容的人工智能系统。
2025-02-26 17:13:52
926
原创 Python对象引用及global、nonlocal关键字使用
对象的生命周期由引用计数机制管理。当一个对象的引用计数变为零时,该对象会被垃圾回收。在使用python做算法题时,有时会遇到一些问题,如:有的需要。当创建一个变量并赋值时,实际上是在创建一个指向该值的引用。关键字可以使局部空间中与全局变量名一致的变量更改为全局变量。指向的对象引用没有改变,而只是对象进行扩展。限定变量,有时却不需要。就是对象引用,所以会不一样。的对象引用赋值给局部变量。中打印的是原来的全局变量。,那么得到的会不一样。所指向的引用对象,所以。的引用赋值给全局变量。内当作新的局部空间。
2025-02-18 09:08:26
293
原创 Python 中的 configparser 模块详解
在 Python 开发中,我们经常需要使用配置文件来存储配置信息,例如数据库连接、日志级别或 API 密钥等。模块是 Python 标准库的一部分,它提供了对。格式配置文件的读取和写入支持。创建新的配置文件或修改已有配置。
2025-02-17 09:41:35
219
原创 机器学习:k近邻
K 邻近算法(K-Nearest Neighbors,简称 KNN)是一种经典的机器学习算法,主要用于分类和回归任务。它的核心思想是:给定一个新的数据点,通过查找训练数据中最接近的 K 个邻居,并根据这些邻居的标签来预测新数据点的标签。KNN 是一种(Instance-based learning)算法。在训练阶段,它并不构建显式的模型,而是将训练数据存储起来,在预测阶段计算待预测点与训练集中所有点的距离,然后选择 K 个最近的邻居,根据邻居的标签进行投票或平均来做出预测。KNN 的优点在于其。
2025-02-16 16:34:35
689
原创 机器学习PCA和LDA
主成分分析(PCA, Principal Component Analysis)和线性判别分析(LDA, Linear Discriminant Analysis)是两种常用的降维方法,它们虽然都用于数据降维,但核心思想和应用场景不同。
2025-02-16 13:28:27
695
原创 机器学习:k均值
在“无监督学习”中,训练样本的标记信息是未知的,目标是通过对无标记训练样本的学习来揭示数据的内在性质及规律,为进一步的数据分析提供基础,较为经典的是聚类。**聚类试图将数据集中的样本划分为若干个通常是不相交的子集,每个子集称为一个“簇”。**聚类既能作为一个单独过程,用于找寻数据内在的分布结构,也可以作为分类等其他学习任务的前驱过程。距离计算:pu1∑n∣xiu−xju∣p无序属性:VDM(Value Difference Metric)i1∑k。
2025-02-15 14:55:02
913
2
原创 面试准备-排序部分:快速排序、堆排序
堆排序是一种基于比较的排序算法,利用了堆这种数据结构(通常是二叉堆)来完成排序。快速排序是一种基于**分治思想(Divide and Conquer)**的排序算法。:如果每次选择的基准导致极端不均匀划分(如已排序数组选择最左/最右元素),递归深度达到。**原地排序版本(Hoare 版)**的快速排序只需要。递归调用栈的空间复杂度为。:每次都能将数组均匀划分,递归深度为。,可能会改变相同元素的相对顺序。:随机选取基准时,通常能保证。,可以减少栈的使用深度。快排的时间复杂度取决于。
2025-02-10 20:50:08
384
原创 机器学习:朴素贝叶斯分类器
贝叶斯决策论是概率框架下实施决策的基本方法,对分类任务来说,在所有相关概率都已知的理想情形下,贝叶斯决策论考虑如何基于这些概率和误判损失来选择最优的类别标记。贝叶斯决策论通过结合先验知识和观测数据,使用贝叶斯定理计算后验概率,从而做出最优决策。但是对于类条件概率P(x|c)来说,涉及了关于x所有属性的联合概率,因此很难进行估计。,当训练集包含充足的独立同分布样本时,P©可以通过各类样本所占的比例来进行估计。贝叶斯定理是贝叶斯决策论的基础,描述了如何根据新的证据更新先验概率,
2025-02-09 17:02:43
1277
原创 集合的 子集枚举
个元素选出不同的集合。可以发现,对于单个元素来说,只有选和不选,即一共有。当当前子集状况整个遍历完成之后,就得到了一共子集集合。可以对数组进行排序。由于只有两种情况,当。如果元素有重复,那么要怎么做呢?个元素相同,则也不应该被选择。这一题中的元素是不重复的。的元素没有被选择,而第。
2025-02-05 09:39:59
220
原创 python的ruff简单使用
Ruff 是一个用 Rust 编写的高性能 Python 静态分析工具和代码格式化工具。它旨在提供快速的代码检查和格式化功能,同时支持丰富的配置选项和与现有工具的兼容性。是用rust实现的python Linter&Formatter。它可以作为代码检查工具和代码格式化工具使用。代码格式化采用单引号、缩进使用。
2025-02-03 21:50:51
659
原创 python的pre-commit库的使用
pre-commit 是一个强大的工具,它可以帮助我们在提交代码到版本控制系统(如 Git)之前自动运行一系列的代码检查和格式化操作。通过这种方式,我们可以确保每次提交的代码都是干净的、格式化的并且符合项目的编码标准。例如,在 Git 中,你可以设置一个 hook 在提交前运行。pre-commit 利用了 Git 的这一特性,允许用户定义一组钩子(hook),这些钩子会在提交之前自动执行。如果之后有修改,不需要再次安装,会自动采用最新的yaml或者自定义hooks来运行。安装完成之后,首先在根目录创建。
2025-02-03 21:40:42
465
原创 pandas的melt方法使用
方法用于将宽格式(wide format)的 DataFrame 转换为长格式(long format)的 DataFrame。这种转换在数据处理和可视化中非常有用,尤其是在处理多列数据时。表,查询每个产品在不同商店的价格,使得输出的格式变为。如果这一产品在商店里没有出售,则不输出这一行。宽格式 vs 长格式。
2025-02-03 14:45:57
315
原创 pandas的rank方法使用
降序(method=‘dense’)得到排名,之后按照分数由高到低排序并返回即可。方法用于对数据进行排名,它可以根据指定的规则为每个元素分配一个排名值。方法非常灵活,支持多种排名方法,适用于处理数值型数据。编写一个解决方案来查询分数的排名。,所以小值在前,大值在后。同时,排序方式也是默认的。指定排名顺序,默认升序。,所以看到的不是整数。
2025-02-03 10:43:07
367
原创 pandas中的关系型连接操作
其中左连接和右连接是等价的,由于它们的结果中的键是被一侧的表确定的,因此常常用于有方向性地添加到目标表。内外连接两侧的表,经常是地位类似的(左右表位置的交换不引起结果的变化),想取出键的交集或者并集,具体的操作还需要根据业务的需求来判断。的关键特性是它会将每个分组的最大值广播回原始 DataFrame 的形状。也就是说,每个分组中的每一行都会被赋予该分组的最大值。在某些时候出现重复元素是麻烦的,例如两位同学来自不同的班级,但是姓名相同,这种时候就要指定。如果两个表中想要连接的列不具备相同的列名,可以通过。
2025-02-03 10:02:07
971
原创 pandas中的str使用方法
操作,使其能够像 Python 的字符串方法一样被调用,但支持对整个列或。编写解决方案,修复名字,使得只有第一个字符是大写的,其余都是小写的。如果不在每次字符串操作前显式使用。访问器,就会导致后续的方法调用失败。访问器用于对 Series。只能用于包含字符串类型的。在 Pandas 中,则不正确,因为它缺少。
2025-02-01 20:03:26
310
原创 pandas中的apply方法使用
是逐行或逐列操作的,因此在处理大规模数据时可能较慢。在处理大规模数据时,需注意性能问题,尽量使用向量化操作。用于对 DataFrame 或 Series 中的数据进行逐行或逐列的操作。编写解决方案,计算每个雇员的奖金。函数或自定义函数),并将该函数应用到每一行或每一列上。,表示将每一行或每一列作为 NumPy 数组传递给函数。,将每一行或每一列作为 Series 传递给函数。函数、自定义函数或内置函数。默认是0,将函数应用到每一列。,那么他的奖金是他工资的。表示将函数应用到每一行。
2025-02-01 19:29:25
227
原创 pandas基础学习:常用基本函数
索引排序的用法和值排序完全一致,**只不过元素的值在索引中,此时需要指定索引层的名字或者层号,用参数。方法把年级和姓名两列作为索引,多级索引的内容和索引设置的方法将在第三章进行详细讲解。上面这些所有的函数,由于操作后返回的是标量,所以又称为聚合函数,它们有一个公共参数。排序共有两种方式,其一为值排序,其二为索引排序,对应的函数是。,它们分别返回的是分位数、非缺失值个数、最大值对应的索引。一般而言,替换操作是针对某一个列进行的,因此下面的例子都以。的功能类似,但前者返回了是否为唯一值的布尔列表,其。
2025-01-24 16:05:29
1089
原创 pandas基础:基本数据结构
类型,而选择多列时返回的是 DataFrame 类型。这种行为是设计上的选择,目的是为了提供更灵活的数据操作方式。中,当你从DataFrame中选择列时,选择的方式会影响返回的数据类型。具体来说,选择单列时返回的是。的基础上增加了列索引,一个数据框可以由二维的。其中,索引也可以指定它的名字,默认为空。,在这两种结构上定义了很多的属性和方法。中具有两种基本的数据存储结构,存储一维。一般由四个部分组成,分别是序列的值。代表了一种混合类型。
2025-01-23 21:48:19
229
原创 pandas基础:文件的读取和写入
参数可以是一个整数列表(列的索引位置)、一个字符串列表(列名)或一个布尔值。参数可以是一个整数(列的索引位置)、一个字符串(列名)、一个整数列表或字符串列表。默认不将任何列作为索引。参数可以是一个整数列表(列的索引位置)、一个字符串列表(列名)或一个函数。参数用于指定分隔符(分隔列的字符)。parse_dates:将某些列解析为日期时间格式。参数是一个整数,表示读取的行数。index_col:将某列或多列作为索引列。usecols:指定读取哪些列。nrows:指定读取的行数。sep:自定义分隔符。
2025-01-23 21:12:52
733
原创 机器学习:支持向量机
支持向量机(Support Vector Machine)是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的广义线性分类器,其学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。假设两类数据可以被H=x:wTx+b≥cH = {x:w^Tx + b \ge c}H=x:wTx+b≥c分离,垂直于法向量www,移动HHH直到碰到某个训练点,可以得到两个超平面H1H_1H1和H2H_2H2,两个平面称为支撑超平面,题目分别支撑两类数据。而位于H1H_1H1和H2H_2H2正中间的超平面
2025-01-22 14:36:26
2499
原创 python内置的调试工具-pdb
最近写python代码,当代码逻辑复杂时,总是要检查是否正确运行。但是光用print显得较为麻烦,在网上找到了内置的调试工具pdb,使用起来比print要舒服,因此特来总结一下pdb的使用。pdb有两种使用方法:侵入式(在调试代码中添加一行代码,之后在正常运行)当命令行前面出现(pdb)时,就表示调试工具pdb启动成功。当前所在位置会用->进行标注,表示。
2025-01-22 10:41:13
1355
原创 numpy库ndarray维度问题
今天在写支持向量机代码时,有一个维度处理错了,导致超平面一直不正确,发现是维度错误。所以写一下numpy中维度相关内容。是一个元组(tuple),表示数组在每个维度上的大小。它描述了数组的形状,即每个维度有多少个元素。是一个整数,表示数组的维度数量。它只告诉你数组有多少个维度,而不关心每个维度的大小。两个位置最多只能有一个-1,表示安装另一个非-1值进行排列,剩下。,前者是一维,后者是二维。**transpose()**是转置,等价于。:重塑ndarray的行数和列数(
2025-01-21 22:07:51
370
原创 vscode导入模块不显示类型注解
的存在,导致vscode不能智能选择哪个而产生错误。模块时,导入后不显示类型注解。改个名字后,发现就有类型注解。在vscode中导入。
2025-01-21 17:06:34
494
原创 使用numpy求解线性代数相关问题
奇异值分解(SingularValueDecomposition,简称SVD)是线性代数中一种重要的矩阵分解方法。它将一个矩阵分解为三个特定的矩阵乘积,这些矩阵具有明确的几何和代数意义。类型,前者是数组类型,后者是矩阵类型。数组类型相乘是逐元素相乘,而矩阵类型相乘则是矩阵乘法。求解矩阵的迹,用于计算矩阵主对角线上元素的总和,较为通用。所以没有在linalg模块。是矩阵线性无关的行(或列)的最大数目,它反映了矩阵的“非零度”。类型来进行线性代数问题求解。则是其主对角线上元素之和。
2025-01-19 15:35:24
631
原创 79. 单词搜索
思考:一定用dfs思想,但是难点在于如何判断是否已经遍历过。发现单词的长度不超过15,因此可以直接使用。题目大意:在$ m \times n$的网格内分布有不同字母,给出一个单词。,要求该网格内是否存在这个单词。进行判断是否已经遍历过。
2025-01-15 20:00:34
331
原创 机器学习:决策树
决策树是一种分类和回归方法,是基于各种情况发生的所需条件构成决策树,以实现期望最大化的一种图解法。Hp−i1∑npilogpi条件熵HY∣X表示在已知随机变量X的条件下随机变量YHY∣Xi1∑npiHY∣Xxi当熵和条件熵中的概率有数据估计得到时,所对应的熵与条件熵分别称为经验熵和经验条件熵。(information gain)表示得知特征X的信息而使得类Y的信息不确定性减少的程度。gXYHY−H。
2025-01-12 20:34:09
1174
原创 机器学习:逻辑回归
逻辑回归通常用于解决分类问题。“分类”是应用逻辑回归的目的和结果,但中间过程依旧是“回归”。通过逻辑回归模型得到连续值,加上一个“阈值”,就成了分类。逻辑回归算法的拟合函数,叫做Sigmond函数(即形似S的函数。对率函数是Sigmoid的重要代表函数y1e−z1yβ0β1x1...βpxpYXβYy1y2...ynX1x11...x1p...1xn。
2025-01-08 16:05:53
1210
原创 机器学习:一元线性回归
一元线性回归(Simple Linear Regression)是一种统计方法,用于分析一个自变量(independent variable)和一个因变量(dependent variable)之间的线性关系。它是线性回归分析中最简单和最基本的形式。ywxb估计一元线性回归模型的最常用方法是,它是一种常用的参数估计方法,用于求解一元线性回归模型的斜率w和截距b。Lwbi1∑nyi−wxib2分别对w和bw∑xi−xˉ2∑。
2025-01-06 20:30:17
967
原创 良好的代码提交风格
AngularJS的提交记录被广泛认可并被大家所引用。影响的范围,比如数据层、控制层、视图层等等,视项目不同而不同。是一个撰写合格"Commit message"的工具,使用良好的代码提交风格,可以提高工作效率。是提交的简短描述,不超过50个字符。遵循Angular的提交规范。
2024-12-18 04:33:08
263
基于python Streamlit库的机器学习可视化展示
2023-04-10
Python Turtle 绘图基础知识
2023-04-10
蓝桥杯常用函数algorithm
2023-04-10
C语言大作业,贪吃蛇项目
2023-04-10
C语言大作业,ktv点歌系统
2023-04-10
C语言大作业,简易KTV点歌系统
2023-04-10
C语言大作业,模拟KTV点歌系统
2023-04-10
基于公交车环境的密接人员排查系统的设计与实现
2023-04-10
C语言多项式加减乘除实验
2023-04-10
vscode如何插入winmm.lib
2022-06-03
C语言用mmsystem播放音乐
2022-06-02
在vscode上如何用C创建项目
2022-05-28
动态规划 lcs 打印序列
2022-02-08
运行结果及报错内容,如何解决?
2022-01-07
动态二维数组与循环问题
2022-01-02
TA创建的收藏夹 TA关注的收藏夹
TA关注的人