数学
文章平均质量分 54
摩天崖FuJunWANG
今天的你,要比昨天优秀。
展开
-
混合整数规划(MILP)通过修改目标函数提高运算速度by Gurobi
MILP问题通过目标设置优化时间原创 2022-09-24 12:05:49 · 2308 阅读 · 0 评论 -
Dijkstra与Bellman-Ford算法对比
Dijkstra与Bellman-Ford的对比原创 2022-09-14 17:45:14 · 2822 阅读 · 3 评论 -
DW分解的理解和使用过程
DW分解思想及流程主要写思想,细节之处需要的话细聊。原创 2021-11-25 00:29:07 · 1605 阅读 · 6 评论 -
列生成算法的python实现_gurobi求解器
问题:Cutting Stock Problem讲解列生成算法的标配问题。可以百度,一百度一大把。模型建立代码实现ref:改代码引用自gurobi官方示例。个人感觉这个实现结构还是非常优秀的。from gurobipy import *TypesDemand = [3, 7, 9, 16] # 需求长度QuantityDemand = [25, 30, 14, 8] # 需求的量LengthUsable = 20原创 2022-04-02 11:16:31 · 2091 阅读 · 0 评论 -
重新理解协方差与相关系数的关系
理解验证x与y的关系:Backend Qt5Agg is interactive backend. Turning interactive mode on.============================20================================nornalData的均值与标准差: 0.1555043129131784 , 0.6283846654021309[[ 0.41564978 -0.41564978] [-0.41564978 0.415649原创 2021-05-12 12:07:57 · 294 阅读 · 0 评论 -
pytorch用nn实现逻辑回归(logistic回归)
import torchimport torchvisionfrom torch import nnimport torchvision.transforms as transformsmnist_train = torchvision.datasets.FashionMNIST(root='~/Datasets/FashionMNIST', train=True, download=True, transform=transforms.ToTensor())mnist_test = torch.原创 2020-10-21 11:01:48 · 3748 阅读 · 0 评论 -
pytorch纯手工实现logistic回归
import torchimport matplotlib.pyplot as pltimport numpy as npn_data = torch.ones(50, 2)x1 = torch.normal(2 * n_data, 1)y1 = torch.zeros(50)x2 = torch.normal(-2 * n_data, 1)y2 = torch.ones(50)x = torch.cat((x1, x2), 0).type(torch.FloatTensor)y = .原创 2020-10-21 10:58:46 · 3212 阅读 · 0 评论 -
基于pytorch手动实现softmax回归
softmax回归的难点主要是对于交叉熵损失函数的设计和理解,可以看我的另一篇博客:(https://blog.csdn.net/weixin_41806489/article/details/109190353)。其他的就是流程作业了。import torchimport torchvisionfrom torch import nnimport numpy as npimport torchvision.transforms as transformsmnist_train = torchv原创 2020-10-20 22:25:15 · 3189 阅读 · 0 评论 -
信息量、信息熵、交叉熵、KL散度以及交叉损失函数的关系与理解
记事件ppp,在各个状态下xix_ixi 的概率为p(xi)p(x_i)p(xi) 。(假设共n个状态)1、 信息量:概率越大信息量越小。−log(p(xi))-log(p(x_i))−log(p(xi))2、 信息熵:信息量的期望值:H(p)=∑i=1np(xi)(−log(p(xi)))H(p) = \sum\limits_{i = 1}^n {p({x_i})} ( - log(p({x_i})))H(p)=i=1∑np(xi)(−log(p(xi)))3、 交叉熵:.原创 2020-10-20 22:08:54 · 2551 阅读 · 0 评论 -
20个数中任选4个数,要求任意2个不相邻,总共的组合数?
马原课上看到这道题,一时蒙了,百度了下,都说什么插空法?20个里面选出4个还剩16个数,能形成17个空,所以是C(7,4)…卧槽,看完评论越发的迷了。。。。是自己脑子不好使了?只能说很多评论抄来抄去吧,插~个鸡呀,我们要的是4个数,又不是一列数。最后自己终于想通这个问题了,由于这个问题是选出问题,所以先假设好这四个数的顺序,只要四个数不触碰到边界,这四个数是可以在一定幅度上任意调换的。换句话说,这个问题的等价问题就是,从1到17任意选4个,然后让第二个加1,第三个加2,第四个加3,新形成的数一定是彼此不.原创 2020-09-23 22:52:35 · 9790 阅读 · 0 评论 -
FCM模糊聚类算法python实现
FCM原理FCM隶属度矩阵以及聚类中心的更新关系可以参考这个文章,推倒过程已经很详细了,本博客在理论的基础上对公式进行解读和变换使之对应到相应的矩阵操作,并最终完成模糊聚类算法的编写。https://www.cnblogs.com/wxl845235800/p/11053261.html公式解读python实现import numpy as npimport pandas as pdimport copyfrom core.myviews.views import viewResult,v原创 2020-05-26 20:08:20 · 9159 阅读 · 16 评论 -
kemeas算法继续优化——elkan kmeas算法
题记:又是凌晨3点的夜elkan kmeans算法在我的上一篇博客《kmeans算法性能改进_kmeans++算法+kmeans++优化算法+距离计算优化》中,在一般kmeans算法的基础上,添加了对于初始条件和距离计算更上的一些优化技巧。这篇博客聊一聊elkan算法,其实也是对于kmeans运行速度的优化算法。主要作用与kmeans的距离计算过程。原理假如我们已经知道任意两个样本之间的距离,再假设我们已经知道了样本1与聚类中心1之间的距离,根据三角性两边之和大于第三边,c+d>a,所以如果原创 2020-05-17 02:44:56 · 6636 阅读 · 0 评论 -
kmeans算法性能改进_kmeans++算法+kmeans++优化算法+距离计算优化
***题记:*我一直在路上,害怕停下在我的另一篇博客里《读sklearn源码学机器学习——kmeans聚类算法》我详细的阐述了kmeans算法的工作过程。截至目前为止,还没有深入的刨析kmeans算法的工作原理(会用和知道怎么用,跟理解背后深刻的数学原理是有本质区别的,我对此深感敬畏)。今天站在工程应用的角度,刨析kmeans在应用过程的应用和优化。主要是弥补我上篇博客中没有说明白的两个函数(elativeDist,squaredNorna)和一个初始化。1、kmeans++算法kmeans++是D原创 2020-05-15 00:02:21 · 13673 阅读 · 0 评论 -
读sklearn源码学机器学习——kmeans聚类算法
题记:凌晨3点半的不眠,是这个时代太聒噪,还是内心的不安kmeans知识体系从代码中梳理知识体系sklearn中kmeans源码源码结构kmeans算法属于cluster包的k_means.py文件。使用的过程中通过from sklearn.cluster import Kmeans导入在使用常规(不含大批量数据的情况下)kmeans算法的实现过程如上图所示,Kmeans主类,包含若干的内部函数(紫色所示),若干的外部函数(蓝色所示)。函数之间的调用关系如上面箭头所示。最核心的函数有:_k原创 2020-05-13 03:48:45 · 12457 阅读 · 2 评论 -
dijkstra迪杰斯特算法邻接表加二叉堆实现python版
dijkstra迪杰斯特算法需要知道的点:1、属于贪心算法2、得到一点到其他各点的所有距离3、需要用到所有的信息4、图中不能有负数权重dijkstra算法过程今天不是铅笔加手写python+优先队列实现(这里用的时二叉堆)def showGraph(linkList): for vert in linkList: for n in v...原创 2020-05-06 23:46:57 · 8154 阅读 · 7 评论 -
PCA主成分分析最清晰推导证明过程!
写作目的最近看PCA,觉得各个机器学习书上的证明都不够详细,总感觉看推导的过程中有知识断层的情况,最近又重新梳理了一遍矩阵分析的知识,终于把整个过程都推导了清楚。知识预备主成分分析证明意义与目的证明过程结论所以对X的降维过程,就是要求X与X转置相乘矩阵的特征值与特征值对应的特征向量对应的正交矩阵。PCA过程这是西瓜书上的PCA过程,其实通过上面的推导我们也能很自然的得出...原创 2020-05-04 22:38:13 · 8537 阅读 · 0 评论 -
格雷码python实现解决——编码解码问题
格雷码问题百度百科上的定义:其实初次我接触格雷码的时候,头大的不行,这个东西的性质太多了,想要产生一个格雷码,好像也只有通过动态规划或者递归的方式实现,第一次做格雷编码解码问题的时候,只能跪倒在各位大佬面前,然后把它抛在了脑后,直到笔试快手又遇见了这道题,我决定,回来好好研究这道题,毕竟,又多吃了好几天的饭,今天的我已经不是昨天的我了(~~)上数学定理直接从百度百科上扒出来格雷码的解码编...原创 2020-04-28 22:28:45 · 11549 阅读 · 0 评论 -
快速幂、取余运算、快速幂取余、欧拉降幂
快速幂对于a的n次方,如果我们老老实实用a每次的结果乘以自身的话,那需要乘n次,在n很大的时候速度很慢,但是,如果我们将n用二进制表示,这样就可以将乘法次数降到log(n)次。def pickPow(a,b): s=1 while b>0: if b&1:s*=a a*=a b>>=1 retur...原创 2020-04-28 03:14:04 · 5868 阅读 · 0 评论 -
卢卡斯定理及python实现
卢卡斯定理最近接触到的一个大组合数求余方法,个人觉得推导过程比较晦涩难懂,但是在组合数比较大的时候性能的确是优秀,所以这里记录一下。卢卡斯定理的推导式如下(以如既往的铅笔加手写~剩下码公式的时间去板砖了我。。。):python实现这里给出一个递推的python实现方法class cmnModP: def __init__(self,p): self.p=p ...原创 2020-04-27 19:54:58 · 7638 阅读 · 0 评论 -
卡特兰数
1、卡特兰数卡特兰数又称卡塔兰数,卡特兰数是组合数学中一个常出现在各种计数问题中的数列。以比利时的数学家欧仁·查理·卡塔兰 (1814–1894)的名字来命名。卡特兰数Cn满足以下递推关系:应用:括号化矩阵连乘: P=a1×a2×a3×……×an,依据乘法结合律,不改变其顺序,只用括号表示成对的乘积,试问有几种括号化的方案?(h(n)种)出栈次序一个栈(无穷大)的进栈序列为1,2,...原创 2020-03-30 22:38:08 · 3519 阅读 · 0 评论