- 博客(57)
- 收藏
- 关注
原创 中心差商法【python,算法】
中心差商法(Central Difference Method)是一种数值方法,用于求解导数的近似值。在数值分析中,当我们无法获得函数的解析形式或解析形式过于复杂时,常常使用差商法来估计导数。中心差商法是差商法中的一种,它通过计算函数在某些离散点上的值来近似求解导数。趋近于 0 时,中心差商公式将趋近于真实的导数值。然而,在实际应用中,也不能太大,否则可能会因为函数的局部变化而引入较大的近似误差。不能太小,否则会因为计算机的浮点数精度限制而产生误差。点左右两侧的函数值,从而提供了一个关于。
2024-07-06 23:41:02
600
原创 拉格朗日插值法【python,算法】
拉格朗日插值是一种在数值分析中用来构建通过一系列已知数据点的多项式插值的方法。这种方法以 18 世纪的法国数学家约瑟夫·拉格朗日命名。当给定一组离散的数据点。是唯一的,拉格朗日插值法能够找到一个最高次幂为。
2024-07-06 16:48:32
426
原创 牛顿插值法【python,算法】
牛顿插值法是一种构建插值多项式的方法,它利用一系列已知的数据点来估算区间内任意点的函数值。这种方法的特点是通过计算差商(divided differences)来逐步构建插值多项式,具有较好的计算效率和承袭性,即在添加或删除数据点时,可以基于已有计算结果进行调整,无需完全重新计算。
2024-07-06 09:35:21
1156
原创 匈牙利算法【python,算法】
在原矩阵中标记出算法选择的元素,即标记 0 元素的位置所对应的元素。库的算法进行对比,可以发现手动实现的算法与库函数实现是等效的。下面通过手撕代码实现了匈牙利算法,并与。,标记 0 元素的个数为。
2024-07-05 18:53:43
408
原创 二分类问题中的性能指标【python,机器学习,算法】
平均绝对误差(Mean Absolute Error, MAE)是衡量模型预测误差的一种方法,通常用于回归分析。它表示的是预测值与真实值之间差的绝对值的平均数。MAEN1i1∑N∣yi−y∣其中yi表示第i个数据的预测值,y表示第i个数据的真实值。MAE通常用于评估模型在预测连续值时的性能,例如在天气预报、股票价格预测等领域。
2024-06-25 22:32:40
760
原创 轮廓系数【python,机器学习,算法】
假设样本集合为Sa1a2a3anSa1a2a3...an,该样划分成 4 个聚类G1G2G3G4G1G2G3G4,对于每个样本aia_iai计算aia_iai样本到aia_iai所在聚类G1G_1G1中的每个样本的距离,然后取平均值Gaiˉ\bar{Ga_i}Gaiˉ。分别计算aia_iai到其他聚类的平均距离,取最小的平均值G。
2024-06-23 18:35:56
1139
原创 孤立森林【python,机器学习,算法】
先简单解释一下什么是孤立森林: 「假设我们用一个随机超平面来切割(split)数据空间(data space), 切一次可以生成两个子空间(想象拿刀切蛋糕一分为二)。这个示例实现了孤立森林算法,并将实现的算法与第三方库实现的算法进行可视化的比较展示,从结果可以看出,该手撕代码实现与生产结果差异并不大。直观上来讲,我们可以发现那些密度很高的簇是可以被切很多次才会停止切割,但是那些密度很低的点很容易很早的就停到一个子空间里了」。哪些很容易被切分出去的点就会被定义为异常点。
2024-06-14 23:03:49
474
原创 聚类层次【python,机器学习,算法】
层次聚类算法(Hierarchical Clustering Algorithm)是一种常用的无监督学习算法,用于将数据集划分成多个不同层次的簇。与K均值聚类不同,层次聚类不需要预先指定聚类数量,而是通过计算样本之间的相似度或距离来构建一个层次结构。自上而下的分解(Divisive)。
2024-06-07 22:36:41
1062
原创 三步问题【python,算法,leetcode】
注意:题目源自 leetcode,链接为 https://leetcode.cn/problems/three-steps-problem-lcci/description/爬楼梯问题:小明一次可以爬 1 个楼梯、2 个楼梯、3 楼梯,问要爬上 n 阶楼梯,小明可以有多少中爬法?解决方案:使用矩阵的幂次方可以快速计算出爬 n 阶楼梯总共有多少种爬法。根据这个公式我们用 Python 进行代码实现。次幂还有很多方法,你可以根据实际需要进行修改。阶楼梯总共的方案数,其中。
2024-06-06 23:19:57
887
原创 KNN 算法【python,机器学习,算法】
KNN(K-Nearest Neighbors)算法是一种基本的、易于理解的机器学习算法,用于分类和回归问题。在 KNN 中,一个对象的分类或值是基于其k个最近邻居的多数投票或平均值来决定的。
2024-06-05 22:19:18
667
原创 DBSCAN 算法【python,机器学习,算法】
一般情况下,最小数据点数取数据维度值的 2 倍数,最小取 3。该参数越大,可能的噪声点会被聚类,同样的邻域半径越小,噪声点也会被分类。DBSCAN 即 Density of Based Spatial Clustering of Applications with。上述代码实现了一个简单的 DBSCAN 算法。注意,在实际应用中,你需要根据实际情况调整邻域半径参数和核心点周围最小数据点数。Noise,带噪声的基于空间密度聚类算法。
2024-06-05 22:13:39
388
原创 均值漂移算法(Mean Shift)【python,机器学习,算法】
均值偏移(Mean shift)算法是在特征空间中应用核密度估计的爬山算法,其算法思想是假设不同簇类的数据集符合不同的概率密度分布,找到任一样本点密度增大的最快方向(可以通过Mean shift计算得到),样本密度高的区域对应该簇类的中心所在,这样样本点最终会在局部密度最大处收敛,且收敛到相同的局部最大值的样本点被认为是同一簇类的成员。这段代码实现了一个均值漂移(Mean Shift)算法的简化版本,可以用于数据的聚类计算。以上步骤会计算出簇的质心,以及每个簇中统计到数据点的频数。
2024-06-04 22:23:28
582
原创 SMV 算法【python,机器学习,算法】
支持向量机(Support Vector Machine, SVM)是一类按监督学习(supervisedlearning)方式对数据进行二元分类的广义线性分类器(generalized linear classifier),其决策边界是对学习样本求解的最大边距超平面(maximum-margin hyperplane)。SVM 使用铰链损失函数(hinge loss)计算经验风险(empirical risk)并在求解系统中加入了正则化项以优化结构风险。
2024-06-02 21:17:55
831
原创 逻辑回归【python,机器学习,算法】
逻辑回归是一种有监督的学习分类算法,用于预测目标变量的概率。目标或因变量的性质是二分法的,这意味着将只有两个可能的类。主要解决二分类问题。进行逻辑回归模型训练以及预测。上述代码演示了如何使用。
2024-05-30 08:19:31
537
原创 线性回归【python,机器学习,算法】
ab线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,运用十分广泛。其表达形式为y = w’x+e,e为误差服从均值为 0 的正态分布。回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析。回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归分析。下面以一元线性回归为例进行分析。yaxbabab。
2024-05-30 08:17:59
607
原创 NBM 算法【python,算法,机器学习】
朴素贝叶斯法(Naive Bayes model)是基于贝叶斯定理与特征条件独立假设的分类方法。
2024-05-28 07:25:32
980
1
原创 GBDT 算法【python,机器学习,算法】
GBDT 即 Gradient Boosting Decision Tree 梯度提升树, 是一种迭代的决策树算法,又叫 MART(Multiple Additive Regression Tree),它通过构造一组弱的学习器(树),然后把多棵决策树的结果累加起来作为最终的预测输出。该算法将决策树与集成思想进行了有效的结合。上面的代码演示了基学习器的数量对 GBDT 性能的影响。你可以根据实际需要对代码中的数据进行调整以适应不同的测试需要。你可以根据实际需要对代码中的数据进行调整以适应不同的测试需要。
2024-05-28 07:19:22
393
原创 Adaboost 算法【python,机器学习,算法】
初始化样本数据,样本数据集大小为N,每个样本的权重设置为1/N。相关公式:D1w11w12w13w14...w1i...w1Nw1iN1i1234...N其中D1表示,第一次迭代每个样本的权值。w11表示,第1次迭代时的第一个样本的权值。迭代。根据前一个分类器分类结果,对样本进行加权处理(分类正确的样本权重减小,分类错误的样本权重增加)。按照新的权重,对当前样本进行重新训练,得到一个新的弱分类器。
2024-05-28 07:15:41
924
原创 CART 算法【python,机器学习,算法】
CART(Classification and Regression Tree)分类回归树。使用基尼指数计算得到树的节点。基尼指数表示系统整体的不确定性,不确定性越大,基尼指数越大,所以在决策树中,将加权基尼系数最小的特征作为树的决策节点。
2024-05-28 07:12:39
1104
原创 随机森林【python,算法,机器学习】
上述代码仅仅使用了 6 条数据进行模型训练。进攻参考,实际应用中的数据会是大量的。构造多棵决策树,形成森林。
2024-05-20 20:28:20
233
原创 利用梯度下降算法求罗宾逊函数的最小值【python,算法,机器学习】
梯度下降法是一种优化算法,用于寻找函数的局部最小值。该方法的核心思想是:从函数的某个初始点出发,沿着函数梯度的反方向进行迭代搜索。函数接受初始点、学习率、最大迭代次数和容忍度作为参数,在实际应用中,你需要根据需求调整这些参数便于获得更好的结果。函数及其梯度,并实现了梯度下降法来找到函数的最小值。以下是根据上述思路提供的使用梯度下降法寻找。以下是使用梯度下降法来找。
2024-05-16 22:36:50
534
原创 梯度下降算法的实现【python,算法,机器学习】
上述代码中,巧妙的利用矩阵乘法规则实现了求和计算,这样使得梯度计算更加简便,最后计算得出的(\theta0, \theta1)便是所求直线的参数。然后对这个代价函数求偏导数,根据偏导公式,进行迭代计算,当梯度下降到一定程度,完成计算,获取最后的。场景是一个简单的线性回归的例子:假设现在我们有一系列的点,我们将用梯度下降法来拟合出这条直线!首先,我们需要定义一个代价函数,在此我们选用均方误差代价函数。表示实测的数据集,你可以根据实际情况进行替换。
2024-05-16 22:32:24
520
原创 俄罗斯方块【python,小游戏】
俄罗斯方块(Tetris)是一款经典的俄罗斯益智游戏,游戏的核心玩法是通过移动、旋转和放置不同形状的方块,使它们在游戏界面的底部形成完整的水平线。一旦水平线填满,就会被清除,为新的方块腾出空间。是游戏的入口,运行代码,你就可以得到一个简单的俄罗斯方块游戏。在 Python 中可以使用第三方库。前需确保其已经安装。来实现简单的俄罗斯方块游戏,使用。类将游戏功能进行了封装,
2024-05-15 07:21:32
428
原创 K-means 算法【python,算法,机器学习】
表示有 3 个簇,样本数据的第一个点距离这三个质点的距离分别为 1、2、3,第二个点距离三个质点的距离分别为 2、3、1,后边的数据依次类推。K-means 算法试图将数据集中的样本划分为若干个子集,每个子集称为一个簇,通过该算法使得每个聚类内的数据点尽可能相似(即距离该聚类的中心点最近),而不同聚类之间的数据点尽可能不相似。需要注意的是,K-means 算法虽然有效,但是容易受到初始簇质心的情况而影响,有可能陷入局部最优解。根据质心点循环进行计算分类。当质心点不发生变化时,结束循环,返回最终的质心点。
2024-05-15 06:46:27
462
原创 huffman编码【python,编码,算法】
哈夫曼编码(Huffman Coding),又称霍夫曼编码,是一种编码方式,哈夫曼编码是可变字长编码(VLC)的一种。该方法完全依据字符出现概率来构造整体平均长度最短的码字,有时称之为最佳编码,一般就叫做Huffman编码(有时也称为霍夫曼编码)。函数用于对文本进行霍夫曼编码,函数返回编码的字符串和霍夫曼编码字典。注意,你可以根据实际情况替换上述代码中的测试数据。用于对编码字符串进行解码。
2024-05-13 23:43:17
241
原创 【Python-tools】输入年份计算干支
用 Python 写一个函数,完成干支计算。输入:年份数字,如果是公元前多少年,则用负数表示。例如公元前1年,则输入 -1。输出:输出对应年份的干支表示。例如输入 -1,则输出庚申,表示公元前1年是庚申年。
2024-04-28 20:47:16
264
1
原创 【linux】sed的用法
主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。可依照脚本的指令来处理、编辑文本文件。的语法由两部分组成,参数和动作。命令是利用脚本来处理文本文件。
2024-04-03 22:28:19
280
原创 【linux】join命令
命令用于将两个文件中,指定栏位内容相同的行连接起来。找出两个文件中,指定栏位内容相同的行,并加以合并,再输出到标准输出设备。表示先输出合并后相同部分内容,然后再输出文件 1 或者文件 2 中独有的内容(即,没法合并的内容)。上述命令将会输出文件 1 中没有匹配的行。表示链接文件 1 或者文件 2 的栏位。对输出部分进行缺省值填充。按照指定的格式来显示结果。显示没有相同栏位的内容。指定文件的分割符号。
2024-04-03 21:43:44
201
原创 【linux】grep 命令
Linux grep (global regular expression) 命令用于查找文件里符合条件的字符串或正则表达式。grep指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为,则grep指令会从标准输入设备读取数据。
2024-03-20 22:33:57
597
原创 【linux】egrep 命令
egrep命令是用于在文本文件中搜索匹配某个模式的行的工具。它是基于正则表达式引擎的grep命令的扩展版本,支持更多的正则表达式语法。
2024-03-19 20:37:24
505
原创 【markdown】数学常用的公式符号
1. 基本规则在文本中呈现公式用$...$框起来。若作为公式单独呈现,用$$...$$框起来,使用\mathtt{A}可以居中随机变量。一般规定随机变量用大写黑体、粗体,有特定数学意义。普通字母直接打出来就好啦。2. 常用表达2.1 求和代码样例描述$\sum$∑\sum∑求和公式$\sum_{i=0}^n$∑i=0n\sum_{i=0}^n∑i=0n求和上下标(右上角和右下角)$\sum\limits_{i=0}^n$∑i=0n\sum\l
2024-03-11 19:02:51
891
原创 【数据解构】KMP 算法
当在 2 位置时匹配失败,那么应该回到 0 位置继续匹配,但 0 位置的字符与 2 位置的字符相同, 那么移动到 0 位置比较,肯定也不匹配,这时需要继续移动,所以可以直接将 2 位置的的值更新为 -1,相当于回溯位置的值如果与当前位置的字符相同,那么就可以将回溯值直接调整到回溯位置的。| 字符 | a | b | a | b | a | a | a | b |当使用模式串去匹配时,字符不匹配时,应该将模式串匹配的位置回溯到某个位置。中的每个元素的值是相等前后缀的最长长度。,所以总的时间复杂度为。
2024-03-07 22:35:02
803
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人