
代码实现
清纯世纪
知识的搬运工
展开
-
kennard-stone算法实现样本集划分(ks算法)
KS算法原理:把所有的样本都看作训练集候选样本,依次从中挑选样本进训练集。首先选择欧氏距离最远的两个样本进入训练集,其后通过计算剩下的每一个样品到训练集内每一个已知样品的欧式距离,找到距已选样本最远以及最近的两个样本,并将这两个样本选入训练集,重复上述步骤直到样本数量达到要求。Kennard-Stone算法作用:用于数据集的划分,使用算法,将输入的数据集划分为训练集、测试集,并同时输出训练集和测试集在原样本集中的编号信息,方便样本的查找。Xp,Xq表示两个不同的样本,N代表样本的光谱波点数量。原创 2023-12-08 19:20:28 · 3659 阅读 · 0 评论 -
利用python加速视屏
【代码】利用python加速视屏。原创 2023-11-10 09:06:34 · 357 阅读 · 0 评论 -
图片批量缩放
【代码】图片批量缩放。原创 2023-07-09 17:53:28 · 198 阅读 · 0 评论 -
Python获取指定路径下所有文件的绝对路径
【代码】Python获取指定路径下所有文件的绝对路径。原创 2023-07-09 17:00:44 · 774 阅读 · 0 评论 -
基于python的决策树原理及其实现
决策树是一种基于树形结构的分类和回归算法,它通过对数据进行分层,从而构建一棵决策树,每个节点代表一个特征,每个分支代表该特征的一个取值,叶子节点代表一个预测结果。具体地,对于当前的节点,根据特征选择的标准找到最佳的划分特征,将该节点划分成若干个子节点,然后对每个子节点递归地执行相同的过程,直到满足终止条件为止。具体地,我们可以通过设定一个阈值,对决策树进行后剪枝,将一些叶子节点合并成一个节点,从而降低决策树的复杂度。决策树的构建过程可以分为三个步骤:特征选择、决策树的生成和决策树的剪枝。原创 2023-04-08 10:15:58 · 245 阅读 · 0 评论 -
基于python的极限学习机的原理及其实现
与传统神经网络不同,ELM的参数可以在训练之前随机初始化,因此ELM的训练过程非常快速。ELM的基本原理是将输入数据通过一个随机生成的权重矩阵进行线性变换,然后通过一个非线性激活函数进行处理,最终得到输出。在训练时,只需要对输出层的权重进行简单的线性回归,即可得到模型的最终参数。总的来说,ELM的优点是训练速度快,可以处理大量数据,且不需要对权重进行反向传播算法进行更新,因此可以避免梯度消失等问题。将输入数据通过权重矩阵进行线性变换,然后通过一个非线性激活函数进行处理。使用训练好的ELM模型进行预测。原创 2023-04-08 09:39:41 · 931 阅读 · 0 评论 -
基于python的Adaboost算法原理及实现
Adaboost(Adaptive Boosting)是一种用于分类和回归问题的机器学习算法,其原理基于集成学习的思想,即通过结合多个弱分类器来构建一个强分类器。Adaboost 算法的核心思想是迭代地训练一系列弱分类器,并在每次迭代中调整样本权重,使得之前被错误分类的样本在下一轮训练中得到更多的关注,从而提高整体分类性能。调整每个样本的权重,被错误分类的样本权重会增加,而被正确分类的样本权重会减少。计算基础分类器的权重,其中分类误差率越小的基础分类器权重越大。初始化训练数据的权重,使每个样本的权重相等。原创 2023-04-07 21:27:20 · 610 阅读 · 0 评论 -
基于python的XGboost原理及其实现
具体来说,它采用梯度提升的思想,每次迭代都在拟合一个新的弱学习器,以尽量减少上一轮迭代的残差(误差),从而不断提升整体模型的性能。防止过拟合:XGBoost使用L1和L2正则化来控制模型的复杂度,同时还可以设置学习率(learning rate)和每个树的最大深度等参数,以防止过拟合。生成新的树:每次生成新的树时,XGBoost会计算每个样本的权重,以及每个特征的重要性,并根据这些信息来生成新的树。分裂节点选择:对于每个节点,XGBoost会尝试所有可能的特征进行分裂,并选择最优的特征和分裂点。原创 2023-04-07 21:25:06 · 473 阅读 · 0 评论 -
基于sklearn的局部线性嵌入(LLE)原理及其实现
具体来说,我们要找到一个低维嵌入,使得在该嵌入下,每个数据点与其最近邻之间的距离在高维空间中被保持不变。这可以通过最小化重构误差来实现,其中重构误差定义为每个数据点在低维嵌入中与其最近邻之间的距离与在高维空间中的距离之间的平方差的总和。具体来说,对于每个数据点,我们找到其最近邻,并使用线性回归来计算该点与其最近邻之间的线性关系。LLE的基本思想是通过保持每个数据点与其最近邻之间的线性关系来描述数据的局部几何结构。对于每个数据点,通过计算该点与其他所有数据点之间的距离来确定它的最近邻。原创 2023-04-07 21:19:20 · 625 阅读 · 0 评论 -
基于sklearn的核主成分分析(KPCA)原理及其实现
核主成分分析(KPCA)是主成分分析(PCA)的一种扩展形式,它通过非线性映射将数据转换到高维空间中,然后在高维空间中进行PCA分析。KPCA可以在非线性数据上提取主成分,是一种有效的非线性降维方法。选取前k个特征向量,将原始数据映射到低维空间中。选择一个合适的核函数(如高斯核函数、多项式核函数等),将原始数据映射到高维空间中。在高维空间中计算数据的协方差矩阵或者Gram矩阵,这个矩阵的维度通常很高。对协方差矩阵或Gram矩阵进行特征值分解,得到每个特征向量和对应的特征值。原创 2023-04-07 21:16:27 · 2108 阅读 · 0 评论 -
基于sklearn的线性判别分析(LDA)原理及其实现
线性判别分析(LDA)是一种经典的线性降维方法,它通过将高维数据投影到低维空间中,同时最大化类别间的距离,最小化类别内的距离,以实现降维的目的。LDA是一种有监督的降维方法,它可以有效地提高分类器的性能。将广义特征向量按照对应的广义特征值大小排序,选择前k个特征向量作为新的投影方向。计算广义矩阵的逆矩阵,然后计算广义特征值和广义特征向量。将原始数据投影到新的投影方向上,得到新的低维数据表示。对每个类别计算均值向量和类内散度矩阵。计算总体均值向量和总体散度矩阵。原创 2023-04-07 21:12:09 · 899 阅读 · 0 评论 -
基于python的BP神经网络实现从0到1
每一层都由一组神经元(或称节点)组成。节点接收来自前一层的输入,并将它们通过一种激活函数进行非线性变换,然后将输出传递到下一层。在输入层,节点接收输入向量,而在输出层,节点输出网络的输出向量。BP神经网络通过调整权重来最小化网络的误差,从而使网络能够学习输入和输出之间的映射关系。训练过程中,反向传播算法计算网络误差的梯度,并使用梯度下降算法来更新每个节点的权重,以最小化误差。这些框架提供了各种层类型和优化算法的实现,同时也提供了高效的计算和并行化的支持,使得开发人员可以轻松地构建和训练BP神经网络模型。原创 2023-04-07 20:39:46 · 297 阅读 · 0 评论 -
基于python的KNN原理及实现
对于分类问题,统计这K个样本所属的类别,将测试样本分类为出现次数最多的类别。对于回归问题,计算这K个样本的平均值,将测试样本预测为这些值的平均值。在分类问题中,对于K个最近邻样本,统计它们所属的类别,并将测试样本归属于出现次数最多的类别。计算测试样本与训练集中所有样本之间的距离,可以使用欧几里得距离、曼哈顿距离等距离度量方式。在回归问题中,对于K个最近邻样本,计算它们的平均值,并将测试样本预测为这些值的平均值。选取与测试样本距离最近的K个样本,这些样本称为最近邻样本。根据距离大小对训练集中的样本进行排序。原创 2023-04-07 20:39:06 · 641 阅读 · 0 评论 -
基于python的主成分分析原理及其实现
主成分分析(Principal Component Analysis,简称PCA)是一种常用的无监督学习算法,用于降低数据维度并发现数据中的隐藏结构。它的主要思想是将原始数据投影到一个新的坐标系中,使得投影后的数据具有最大的方差,从而尽可能保留原始数据的信息。特征向量是新坐标系的基向量,特征值表示数据在该方向上的方差。根据特征值的大小,选择最大的k个特征向量作为新的坐标系的基向量。计算数据的协方差矩阵。对原始数据进行中心化,即减去均值,使得数据的平均值为0。将原始数据投影到新的坐标系中,得到降维后的数据。原创 2023-04-07 20:37:59 · 564 阅读 · 0 评论