
python_算法学习
文章平均质量分 78
集中于python的算法学习
高山莫衣
律己如高山般崇高品德,无需华丽衣服装饰。
展开
-
为什么选择平滑样条?
如果目标是提取数据的整体趋势,而不是逐点插值,平滑样条是最佳选择。如果需要计算曲线的二阶导数(如曲率相关分析),可以继续调用。在平滑样条的代码基础上,计算样本点的梯度相对简单,因为。,可以直接获得平滑样条的导数函数。这会返回二阶导数的值,可以用来分析曲率或加速度等特性。平滑样条的目标是最小化以下目标函数。平滑样条通过引入平滑参数。使用平滑样条拟合原始数据。原创 2025-01-11 20:48:00 · 1170 阅读 · 0 评论 -
遗传算法python案例
遗传算法(Genetic Algorithm,GA)是一种模拟自然选择和遗传学原理的优化算法。它属于进化算法的一种,广泛应用于各种优化问题中。遗传算法的基本思想是通过模拟生物的自然进化过程,通过选择、交叉、变异等操作来逐步优化解,直到达到一个近似最优解。初始化种群:随机生成一组个体(解决方案),称为初始种群。适应度评估:对每个个体计算适应度,适应度反映了该个体解的优劣。选择操作:根据适应度选择个体,选择优秀个体作为父代,常见的选择方法包括轮盘赌选择、锦标赛选择等。交叉操作。原创 2024-11-16 15:31:06 · 832 阅读 · 0 评论 -
高斯混合模型回归(Gaussian Mixture Model Regression,GMM回归)
高斯混合模型(GMM)是一种概率模型,它假设数据是由多个高斯分布的混合组成的。GMM回归不仅能捕捉数据的聚类结构,还能进行回归预测,适用于处理具有复杂分布的数据。下面是一个简单的高斯混合模型回归(GMM回归)的Python示例。在这个示例中,我们将使用模型进行数据的聚类,然后在每个聚类中使用线性回归进行回归预测。原创 2024-11-16 15:28:21 · 1511 阅读 · 0 评论 -
利用字典对归一化后的数据0误差还原
思路:x = [3, 4, 5, 1, 2, 3],先排序,然后用scaler = StandardScaler()这种方法归一化得到结果, 然后采用1个字典,能存储归一化之后的值:归一化之前的值,这种字典,以及归一化之前的值:归一化之后的值这种字典。首先,将x数组排序并使用进行归一化。原创 2024-11-02 22:43:08 · 491 阅读 · 0 评论 -
为什么画置信区间就只有回归线?
为什么置信区间设置为100%的置信度时,直接没有置信区间,就只有回归线?在设置置信区间时,选择100%的置信水平意味着您希望包含所有可能的样本点。但在统计意义上,100%的置信水平是不可实现的,因为要包含所有可能的数据点,置信区间的范围会趋向于无穷大。计算的是 100% 的分位数(即 1.0)。在t分布中,这种情况下t值会趋向于无穷大,因为在 100% 置信水平下,理论上需要包含所有可能的样本,因此无法计算有限的区间宽度。原创 2024-11-02 19:52:13 · 454 阅读 · 0 评论 -
RANSAC(随机抽样一致性算法)
RANSAC(随机抽样一致性算法)是一种用于估计数学模型参数的迭代方法,尤其适用于包含大量异常值的数据。使用 RANSAC,我们可以找到一个最优的线性拟合,同时最大限度地减少对异常值的影响。接下来,我将给出一个使用 RANSAC 进行线性回归的 Python 示例,并绘制散点、回归线及回归线的置信区间。原创 2024-11-02 16:28:16 · 771 阅读 · 0 评论 -
分段线性回归
分段线性回归是一种简单的方式,尤其当数据的弧度变化不大但有多个不同趋势段时。可以将数据分为多个区间,每个区间内拟合一条直线。中设置不同的区间来拟合特定区段的数据,并忽略不需要拟合的区间。我们可以手动筛选出所需区间的数据,例如在区间。更复的情况是,在1-4之间能拟合,在7以上也能拟合另一个线性,但是在4-7之间不存在线性关系,不需要拟合。分段线性回归是一种分段拟合的方法,用于捕捉数据中不同区段的线性变化趋势。以下代码实现了该思路,并绘制数据、分段线性回归线和置信区间。进行线性拟合,而对区间。原创 2024-11-02 16:16:10 · 2023 阅读 · 0 评论 -
半参数模型
半参数模型结合了参数化和非参数化的方法。可以在整体上采用线性回归,但在局部允许非线性变化。这样做的目的是在保持模型的线性解释性的同时,捕捉细微的弧度趋势。半参数模型结合了线性成分和非线性成分,既可以捕捉数据中的线性趋势,也可以处理局部的非线性变化。在 Python 中,我们可以使用。以下是一个半参数模型的 Python 示例。代码会生成数据、拟合半参数模型,并绘制数据散点、回归线以及置信区间。这种方法既保持了全局的线性趋势,又允许局部的平滑变化。是一个非参数化函数,例如平滑样条,可以捕捉数据的局部弧度。原创 2024-11-02 16:08:42 · 1505 阅读 · 0 评论 -
广义加性模型
广义加性模型(Generalized Additive Model, GAM)是一种灵活的回归方法,用于捕捉数据的非线性关系。GAM 在每个特征上使用平滑函数,从而可以适应复杂的非线性数据。广义加性模型可以视为线性和非线性回归的折中,适合捕捉非线性但“接近线性”的趋势。它允许将回归结果视为线性和非线性成分的叠加。可以是一个平滑函数(例如 B样条函数),它在整体上保持趋势为“直线”,但允许局部轻微弯曲。库来实现 GAM 回归,并绘制数据散点、回归曲线以及置信区间。在 GAM 中,可以将响应变量。原创 2024-11-02 16:05:57 · 1026 阅读 · 0 评论 -
局部加权回归
局部加权回归是一种非参数回归方法,可以自适应地拟合数据的弧度。它对每个点应用加权回归,以根据数据的局部趋势产生一条平滑曲线。这种方法特别适合捕捉数据中较小的曲率变化。局部加权回归(Lowess 或 Loess)是一种非参数方法,它能够捕捉数据中的局部非线性趋势,适合于观察数据的平滑变化。以下代码示例展示了如何使用 Lowess 对数据进行回归,并绘制回归曲线及其置信区间。原创 2024-11-02 16:01:17 · 1027 阅读 · 0 评论 -
多项式回归 案例
在数据具有轻微的非线性趋势时。虽然线性回归可以拟合主要的线性趋势,但在数据存在微弱的弯曲时,多项式回归可以在保持线性模型的简单性和解释性的同时,允许模型捕捉到微小的非线性趋势。原创 2024-11-02 15:55:29 · 977 阅读 · 0 评论 -
词袋(Bag of Words, BoW)
词袋模型是一种简单且有效的文本表示方法,常用于文本分类、文本聚类等任务中。通过sklearn中的,可以轻松实现词袋模型,并将文档转化为机器学习模型所需的特征向量。原创 2024-10-01 17:06:50 · 619 阅读 · 0 评论 -
Python生成模拟数据、随机文本-Faker库
Faker是一个用于生成虚假数据的Python库,它提供了一种简单而强大的方式来生成各种类型的随机数据,包括姓名、地址、电子邮件、文本、日期、数字等。这对于进行测试、填充数据库或者生成模拟数据是非常有用的。原创 2024-02-03 21:21:18 · 1113 阅读 · 1 评论 -
AttributeError: cannot assign module before Module.__init__() call 解决方法
方法之外对模块中的某些成员进行了初始化或赋值操作,导致模块还没有被完全初始化就已经被调用了。为了解决这个问题,需要将所有的初始化或赋值操作移到。方法中进行所有的初始化和赋值操作,确保模块中的所有成员都在。方法内被正确初始化后再进行调用即可避免出现。,并且想要在其中定义一个类变量。例如,如果有一个自定义模块。这个错误通常是由于在。原创 2023-12-06 13:07:36 · 2522 阅读 · 0 评论 -
jieba分词有哪些模式?
jieba分词库提供了三种分词模式:精确模式、全模式和搜索引擎模式。原创 2023-12-01 20:05:03 · 5538 阅读 · 0 评论 -
质量分测试
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:撤销:Ctrl/Command + Z重做:Ctrl/Command + Y加粗:Ctrl/Command + B斜体:Ctrl/Command + I标题:Ctrl/Command + S原创 2023-08-02 17:54:22 · 138 阅读 · 0 评论 -
完全去中心化的学习(Fully Decentralized Learning)
完全去中心化的学习是一种使用区块链技术实现的机器学习方法,其中参与者可以在不需要信任中心的情况下共同训练模型。数据隐私性更好:传统的集中式学习方法中,数据会被集中在一个地方,容易遭受黑客攻击或数据泄露,而完全去中心化的学习可以使数据分散存储在多个节点上,提高了数据隐私性。模型的收敛速度较慢:完全去中心化的学习需要多个节点共同训练模型,从而可能导致模型的收敛速度较慢。不需要信任中心:完全去中心化的学习没有信任中心,每个节点都是平等的,从而避免了单点故障的风险。原创 2023-04-25 21:04:36 · 851 阅读 · 0 评论 -
去中心化联邦学习-Python实现的2个案例
随着人工智能技术的发展,越来越多的数据被收集和使用。然而,这些数据通常分散在不同的设备上,例如移动设备、传感器等。联邦学习(Federated Learning)是一种解决这个问题的方法,它允许在不将数据传输到中央服务器的情况下进行模型训练。但是,联邦学习也存在一些问题,例如数据隐私保护、通信效率等,并且有些应用场景需要更高的安全性和去中心化的特性。因此,出现了去中心化的联邦学习(Decentralized Federated Learning)。原创 2023-03-23 09:04:08 · 2408 阅读 · 8 评论 -
自编码器-变分自编码器-python案例
自编码器通过将数据压缩成低维表示并重建原始数据来实现降维和去噪声等任务,而变分自编码器则使用潜在空间中的高斯分布进行更加精细的压缩和解压缩,并可以生成新的样本。变分自编码器是一种基于概率的自编码器,它使用潜在空间中的高斯分布来实现更加精细的压缩和解压缩。与普通的自编码器不同,它不仅学习如何对数据进行编码和解码,还会学习如何生成新的样本。生成新样本时,需要先从高斯分布中采样一个潜在变量,再通过解码器将其映射回数据空间中进行图像生成,但生成的结果有时会存在一些不连续的情况,需要注意调整采样和解码器的参数。原创 2023-03-30 09:44:16 · 1124 阅读 · 3 评论 -
小梯度抽样(low-gradient sampling)思想和python案例
其核心思想是在寻找最优解的过程中,不仅考虑当前位置的梯度信息,还考虑之前位置的梯度信息。然后,我们使用小梯度抽样的方法计算出当前位置的低梯度(即考虑之前位置的梯度信息)。最后,我们根据当前位置的低梯度和学习率来更新当前位置,并将当前梯度信息保存下来,以备下一次迭代使用。通过使用前一次迭代的梯度信息和当前梯度信息的加权平均值,我们可以更好地控制梯度信息的变化,从而避免算法陷入局部最优解。这份代码的实现是基于机器学习中的优化算法,其中小梯度抽样是其中一种常见的技术之一。原创 2023-03-23 02:02:43 · 311 阅读 · 0 评论 -
PyTorch中的9种常见梯度下降算法与案例
Adam是一种融合了动量梯度下降和自适应学习率的优化算法,在更新参数时既考虑历史梯度的加权平均又考虑历史梯度平方的加权平均。小批量梯度下降是介于批量梯度下降和随机梯度下降之间的梯度下降算法,即每次更新时选取一定数量的样本进行梯度计算和参数更新。RMSprop是一种自适应学习率的优化算法,在更新参数时根据历史梯度平方的加权平均来动态调整每个参数的学习率。批量梯度下降是最基础的梯度下降算法,通过使用全部训练数据计算损失函数的梯度来更新参数。在PyTorch中,可以通过定义损失函数和优化器来实现批量梯度下降。原创 2023-03-27 13:34:29 · 1977 阅读 · 0 评论 -
从样本中抽样的Python技术
在数据分析和机器学习中,我们经常需要从给定的样本中进行随机抽样。Python提供了多种方法来执行此操作,下面将介绍其中的几种方法。简单随机抽样是指从总体中随机地选取一些个体组成样本,每个个体被选中的概率相等。在Python中,可以使用random.sample()函数实现简单随机抽样。例如,从数值列表[1, 2, 3, 4, 5]中随机抽取3个数:输出:2. 分层随机抽样在某些情况下,我们希望从不同层次的群体中进行抽样,这就需要用到分层随机抽样。在Python中,可以使用pandas.DataFram原创 2023-03-27 13:12:49 · 2675 阅读 · 0 评论 -
Python算法学习[12]—小游开发&算法实现
如果猜测的数字太低,函数会打印出“Too low”的消息,否则打印出“Too high”的消息,并提示用户再次猜测。本文介绍了如何使用Python语言来创建一个简单的小游戏——猜数字游戏,并提供了Python代码来实现这个游戏。猜数字游戏是一种简单而有趣的游戏。游戏规则很简单:玩家需要猜一个随机生成的数字,如果猜对了,就胜利了。如果没有猜对,游戏会提示玩家他们猜的数字是太高还是太低,并允许他们继续猜测,直到猜对为止。从结果中,我们可以看到猜数字游戏的实现能够正确地工作,玩家成功地猜到了随机生成的数字。原创 2023-03-23 02:03:24 · 1059 阅读 · 0 评论 -
Python算法学习[11]—图像问题&问题描述与实现
本文介绍了两个常见的图像问题:图像旋转和图像缩放,并提供了Python代码来实现这些问题的解决方案。图像旋转是指将图像按照一定角度进行旋转,使得图像中的物体或者场景能够呈现出不同的角度和视角。在计算机视觉中,图像处理是一个重要的领域。本文将介绍两个常见的图像问题:图像旋转和图像缩放,并提供Python代码来实现这些问题的解决方案。图像缩放是指改变图像的大小,通常用于调整图像的分辨率或适应不同的显示设备。从结果中,我们可以看到这些图像问题的实现能够正确地工作,原始图像被旋转了45度,并且被缩小了50%。原创 2023-03-23 02:05:48 · 220 阅读 · 0 评论 -
Python算法学习[10]—经典算法问题的解决&算法分析与实现
反之,如果中间项小于目标值,则说明目标值可能存在于数组的右半部分,因此low变量将被更新为mid + 1。随后,它将列表拆分为两个更小的子列表:一个子列表包含所有比枢轴小的元素,另一个子列表包含所有大于或等于枢轴的元素。对于每个未访问的相邻节点,它计算到该节点的费用,并将其加入堆队列中。本文介绍了三个经典的算法问题:快速排序、最短路径和二分查找,并提供了Python代码来实现这些问题的解决方案。本文将介绍三个经典的算法问题:快速排序、最短路径和二分查找,并提供Python代码来实现这些问题的解决方案。原创 2023-03-23 02:06:02 · 237 阅读 · 0 评论 -
Python算法学习[9]—常见典型的数学问题&代码求解
本文介绍了三个常见的数学问题:质数判断、斐波那契数列和最大公约数,并提供了Python代码来实现这些问题的解决方案。它使用一个while循环,反复将较小的数字作为被除数,将余数作为除数,直到余数为零。然后,它遍历从2到数字平方根之间的所有数字,并检查它们是否能够整除该数字。在计算机科学中,数学问题是一种经典的编程问题。本文将介绍三个常见的数学问题:质数判断、斐波那契数列和最大公约数,并提供Python代码来实现这些问题的解决方案。该函数通过填充前两个数字(1, 1),并迭代添加后续数字来生成斐波那契数列。原创 2023-03-23 02:04:10 · 745 阅读 · 0 评论 -
Python算法学习[8]—经典数据结构问题&具体实现
本文介绍了三种经典的数据结构问题:栈、队列和链表,并提供了Python代码来实现这些问题的解决方案。这些数据结构在计算机科学中有着广泛的应用,具有较高的效率和可扩展性。希望通过本文的介绍,您能够更好地理解和掌握这些数据结构的原理和实现方法。原创 2023-03-22 00:08:37 · 154 阅读 · 0 评论 -
Python算法学习[7]—内部排序算法&技术解惑
接下来,使用一个for循环遍历数组中的每一个元素,并将小于等于pivot的元素与大于pivot的元素分别放置在左右两侧,并将i逐步向右移动。本文将介绍四种常见的内部排序算法:冒泡排序、选择排序、插入排序和快速排序,并提供Python代码来实现这些算法。在上述代码中,我们使用一个for循环来遍历整个数组,并使用一个while循环来将未排序的元素插入到已排序的部分中。插入排序是一种简单的排序算法,它将未排序的元素依次插入到已排序的部分中,从而逐步构建有序序列。原创 2023-03-22 00:10:00 · 206 阅读 · 0 评论 -
Python算法学习[6]—查找算法:表、树、散列、斐波那契查找算法&实践操作
在上述代码中,我们定义了一个fibonacci_search()函数,接收两个参数:arr表示待查找的数组,x表示要查找的元素。然后,设置offset初值为-1,并在while循环中继续查找元素,每次根据目标元素与当前位置的大小关系,选择左半部分或右半部分继续查找。本文介绍了四种常见的查找算法:表查找算法、树查找算法、散列查找算法和斐波那契查找算法,并提供了Python代码来实现和测试这些算法。在上述代码中,linear_search()函数接收两个参数:arr表示待查找的数组,x表示要查找的元素。原创 2023-03-22 00:09:45 · 403 阅读 · 0 评论 -
Python算法学习[5]—图、遍历、连通、最短路径&代码演练
如果该顶点未被访问,则将其加入visited集合,并遍历与该顶点相邻的顶点,更新其距离值并加入队列中等待遍历。然后,进入循环,每次从队列中取出一个顶点并进行判断,如果该顶点未被访问,则加入visited集合,并输出该顶点。Dijkstra算法是一种贪心算法,其思路是从起始顶点开始,选择当前距离该顶点最近的未访问过的顶点,并更新与该顶点相邻的顶点的距离值。广度优先搜索(BFS)是一种迭代方式的图遍历算法,其思路是从起始顶点开始,按层次逐步扩展,先遍历与起始顶点相邻的所有顶点,然后遍历与这些。原创 2023-03-21 13:46:09 · 1903 阅读 · 1 评论 -
Python算法学习[3]—线性表、队列和栈&实践演练
is_empty()方法用来检查队列是否为空,enqueue()方法用来在队尾添加元素,dequeue()方法用来从队首删除元素,peek()方法用来获取队首元素但不删除,size()方法用来获取队列中元素的数量。is_empty()方法用来检查栈是否为空,push()方法用来在栈顶添加元素,pop()方法用来从栈顶删除元素,peek()方法用来获取栈顶元素但不删除,size()方法用来获取栈中元素的数量。例如,对于字符串"(((([[]])))))",我们可以通过栈来实现括号匹配检查。原创 2023-03-21 13:35:58 · 274 阅读 · 0 评论 -
Python算法学习[4]—树、二叉树、霍夫曼树&算法实现
然后不断从堆中弹出两个权值最小的节点,将它们合并成一个新的节点,并将该节点再次插入堆中,直到只剩一个节点为止。该树的构建过程是将权值最小的叶子节点不断合并,直到所有节点都合并为根节点为止。通常情况下,频繁出现的字符会被赋予较短的编码,而不常用的字符则会被赋予较长的编码。在上述代码中,BinaryTreeNode类表示二叉树的节点,其中包含该节点的值、左子节点和右子节点。在上述代码中,Node类表示树的节点,其中包含该节点的值和子节点列表。二叉树和霍夫曼树是树的两个变种,也是常用的算法和数据结构。原创 2023-03-21 13:29:09 · 297 阅读 · 0 评论 -
基于Brat标注数据集的python包network网络构建和搜索
在知识图谱的文本标注任务中,需要将数据按照事先决定的标注规则进行人工标注。Brat是一种比较著名的标注工具,但是目前不支持Windows系统,你可以安装虚拟机使用该工具。本文已经完成了一项基于Windows、Python3.7的标注软件制作工作,你可以点击实体关系文本标注工具进行查看。倘若你是使用的Brat标注工具, 并且对于Neo4j图数据库不是很熟悉,那你可以考虑使用Python中的network第三方库,在初步学习阶段实现demo,在下一篇文章中,将会介绍Neo4j的使用案例。原创 2023-03-12 16:37:10 · 716 阅读 · 1 评论 -
联邦学习算法介绍-FedAvg详细案例-Python代码获取
在DP-FedSGD中,被选中的参与方使用全局模型参数对局部模型进行初始化,通过批梯度下降法进行多轮梯度下降,计算梯度更新量。而在DP-FedAVG中,是利用一个批次的数据进行一次梯度下降,计算梯度更新量。由服务端收集各客户端的梯度信息,通过聚合计算后再分发给各客户端,从而实现多个客户端联合训练模型,且“原始数据不出岛”,从而保护了客户端数据隐私。假设中心方是好奇的,那么客户端通过某种规则向其他客户端广播梯度信息,收到梯度信息的客户端聚合参数并训练,将新的梯度信息广播。面向神经网络模型, 假设网络总共有。原创 2023-03-12 10:36:34 · 24845 阅读 · 172 评论 -
从0开始学pytorch【2】——手写数字集案例
在整个数据集上迭代3次,且数据集划分了batch,每用一个batch就更新一次梯度,这就是小批量梯度下降法。在学习pytorch之前,本文通过手写数字集简单案例介绍pytorch深度网络基本流程,即先加载数据、建立模型, 然后模型训练和测试。,那么一种有12批数据,前11批数据都有batch_size那么多的样本,最后一批数据只有一个样本,它是样本数据的互斥完备划分。,是否为训练集,是则为训练集60k数据,否则为测试集10k数据;,如此循环迭代直至结束。每次计算出的新的参数,都会替代原先的参数,或者。原创 2023-03-11 22:15:41 · 383 阅读 · 2 评论 -
从0开始学pytorch【1】--线性函数的梯度下降
在正式学习pytorch深度框架之前,假设你已经掌握了机器学习、深度学习的梯度下降算法基础理论,但是编程技术还不够熟练,于是本文将使用python演示如何利用梯度下降法求解一元线性回归中的参数。分别为5.015464和2.77148,这总体设置的5和3很接近。前提是我们并不知道参数真实值为5和3,于是就用参数估计值5.015464和2.77148去替代总体参数。设置初始参数均为0,学习率为0.0001,迭代40000次,最后输出结果。可以对比看迭代前后的损失,设置初始参数,并输出迭代后的参数估计值。原创 2023-03-11 21:00:01 · 486 阅读 · 2 评论 -
Python算法学习[2]—算法思想&实践演练
算法思想有很多,例如枚举、递归、分治、贪心、试探法、动态迭代和模拟等。本文将详细讲解常用的算法思想的基本知识以及实践演练,从而理解并掌握这些算法思想的基本用法和核心知识。原创 2021-04-18 23:46:25 · 564 阅读 · 0 评论 -
Python算法学习[1]—算法简介&数据结构
本文简单介绍了算法的含义以及数据结构的三种类型,并用代码进行演示。算法是一系列解决问题的清晰指示,数据结构的作用是保存项目中的数据信息。原创 2021-04-16 18:43:22 · 1848 阅读 · 11 评论