- 博客(27)
- 收藏
- 关注
原创 多核聚类算法
1.KKM基本思想:核函数将原样本的特征向量映射到一个更高维的特征空间中,然后在此空间中实现聚类。使为n个样本的集合,φ(·) :x ∈ X → H为核函数将样本特征空间映射到希尔伯特空间H当中,所以KKM算法最终要优化的目标函数即为分配矩阵x Z ∈ {0, 1}n×k上的平方和损失函数:此即为代表当前c类中共有多少个样本此即为当前c类所有样本特征均值,最终目标即优化此函数了。2.MKKM基本思想:将KKM推广到多核当中,更新相应的目标函数。未完待续……...
2022-01-21 19:45:54
1880
原创 核函数学习笔记
1.基本思想:通过将一个特定维度的向量映射到更高的维度上,便于在更高维度的特征空间对其进行聚类分类相关性等操作。2.定义将原始空间中的向量作为输入向量,并返回特征空间(转换后的数据空间,可能是高维)中向量的点积的函数称为核函数。使用内核,不需要显式地将数据嵌入到空间中,因为许多算法只需要图像向量之间的内积(内积是标量);在特征空间不需要数据的坐标。原文链接:https://blog.csdn.net/mengjizhiyou/article/details/103437423...
2022-01-21 16:49:13
749
原创 分类情况下处理缺失值方法综述
1.删除含有缺失值实例分为只要含有缺失值的即删除和关键值缺失的实例删除2.基于统计学计算1)使用均值填充使用在该部分不缺失的实例的均值填充使用同类在该部分不缺失的实例的均值填充2)回归计算线性回归计算和非线性回归计算3)Hot and cold deck imputationHot deck imputation 使用本数据集中在其他不缺失值方面最接近的实例在缺失特征上的值来替代Cold deck imputation 使用其他数据集的数据,余同Hot deck imputation。
2022-01-07 21:52:30
4024
原创 Contrastive Learning——对比学习
1.定义对比式学习着重于学习同类实例之间的共同特征,区分非同类实例之间的不同之处。与生成式学习比较,对比式学习不需要关注实例上繁琐的细节,只需要在抽象语义级别的特征空间上学会对数据的区分即可,因此模型以及其优化变得更加简单,且泛化能力更强。对比学习的目标是学习一个编码器,此编码器对同类数据进行相似的编码,并使不同类的数据的编码结果尽可能的不同。2.基本思想缩小正样本的距离,扩大与负样本之间的距离...
2022-01-06 16:03:02
334
原创 创建数据mysql库流程
在Django项目建好后,在setting.py中设置好mysql连接参数:DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'formtask',#数据库名称,此数据库要提前再mysql中创建好 'USER': 'root', 'PASSWORD': '123456', 'HOST': '127.0.0.1', }
2020-10-15 21:18:46
201
原创 java学习笔记——生成随机数
随机数的生成方式:1.Math.random()的方法,生成0.0-1.0之间的随机数,包含在java.util的包中。2.Random random=new Random();//以系统当前时间作为随机数生成的种子System.out.println(random.nextInt(max));//返回一个大于0且小于max的整数System.out.println(random.nextFloat()); //返回一个随机浮点型System.out.println(random.nextBool
2020-09-27 22:46:18
140
原创 动态规划专题——01背包问题
题目描述:且说上一周的故事里,小Hi和小Ho费劲心思终于拿到了茫茫多的奖券!而现在,终于到了小Ho领取奖励的时刻了!小Ho现在手上有M张奖券,而奖品区有N件奖品,分别标号为1到N,其中第i件奖品需要need(i)张奖券进行兑换,同时也只能兑换一次,为了使得辛苦得到的奖券不白白浪费,小Ho给每件奖品都评了分,其中第i件奖品的评分值为value(i),表示他对这件奖品的喜好值。现在他想知道,凭借他手上的这些奖券,可以换到哪些奖品,使得这些奖品的喜好值之和能够最大。题目输入:每个测试点(输入文件)有且仅有一组
2020-09-15 17:04:27
275
原创 分治递归——Red and Black
原题链接:POJ—1979题目大意:题目意思很简单,给出起始点"@",可以走的点为".",不可以走的点为"#",问所有能走的点有多少个。题目解法:水题,DFS递归解决就好了,注意递归条件的判断,以及比较坑的点就是输出的时候,看好什么时候用getchar(),来消enter。题目代码:#include<stdio.h>#include<string.h>int flag[25][25];char maps[25][25];int w,h;void DFS(int x,
2020-09-02 20:40:43
82
原创 分支递归——Fractal
原题链接:POJ—2083题目大意:题目大意是比较明显的,输入一个数n,按题目示意输出相应的图形。题目解法:分形,用DFS以及递归。输出图形的方式是最后一块输出,建立maps数组,然后更改maps数组,最后输出maps数组就可以了。首先计算一共有多少行列,初始化maps。然后我们可以把B(n)的图形分为五部分,分别是左上、右上、中心、左下、右下五部分,可以知道这五部分的图形都是B(n-1),所以递归就来了,我们在画B(n)图形的时候可以通过在这五部分画B(n-1)的图像来实现,同样在画B(n-1)的时候
2020-09-02 20:07:55
208
原创 贪心专题——今年暑假不AC
原题链接:HDU—2037题目大意:中文题目。题目解法:老题了,用各个节目的结束实践给各个数据排序,然后从第一个节目开始判断后一个节目的开始时间是否大于前一个可看节目结束时间,如果小于那么可看的节目加一,并更新目前最后一个可看节目的结束时间,否则继续判断下一个,其实很简单,不理解的可以自己代代数据做做试验就可以验证了。题目代码:#include<stdio.h>#include<algorithm>using namespace std;struct node{
2020-09-01 20:32:47
89
原创 贪心专题——Regular Bracket Sequence
原题链接:原题链接原题大意:你有a,b,c,d个"((","()",")(","))",问能否将这些字符串组成一个合法的括号序列。题目解法:其实这个题与贪心没有多大关系,只要通过分析就可以得到答案。显然“()”是不影响构成括号序列的,所以b的大小无所谓。")(“不改变左右括号的个数,所以只要”(("="))“即可,即a=d,但是有一种特殊情况就是没有”(("、"))"时,即当a=0时,c只能为0,因为若a=0且c!=0则一定会有一个左括号不能匹配。题目代码:#include<stdio.h&g
2020-09-01 20:08:10
160
原创 贪心专题——Yogurt factory
原题链接:POJ—2393原题大意:一个奶酪厂,在接下来的N个星期内需要生产奶酪,每周的奶酪的生产成本和需求量都在不断变化。在第i周每生产一单位的奶酪需要Ci元,奶酪的需求量为Si。此外工厂有一个仓库可以无限量的保存奶酪,且不会变质,每单位奶酪保存一周需要S元。问奶酪厂要想完成生产任务,最小的成本是多少?题目解法:贪心更新每周的生产成本即可,即从第二周开始逐个判断。即先判断C[0]+s<C[1]是否成立,若成立则说明在第一周先生产出来第二周的,再保存到第二周再卖的成本比较小,所以第二周的最小生产成
2020-08-31 20:39:44
236
原创 搜索专题——棋盘问题
原题链接:POJ—1321题目描述:在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。输入:输入含有多组测试数据。每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。 n <= 8 , k <= n当为-1 -1时表示输入结束。随后的n行描述了棋盘的形状:每行有n个字符,其中
2020-08-30 20:46:50
113
原创 搜索专题——迷宫寻宝
原题链接:FZU—2285题目描述:描述:洪尼玛今天准备去寻宝,在一个n*n (n行, n列)的迷宫中,存在着一个入口、一些墙壁以及一个宝藏。由于迷宫是四连通的,即在迷宫中的一个位置,只能走到与它直接相邻的其他四个位置(上、下、左、右)。现洪尼玛在迷宫的入口处,问他最少需要走几步才能拿到宝藏?若永远无法拿到宝藏,则输出-1。输入:多组测试数据。每组数据输入第一行为正整数n,表示迷宫大小。接下来n行,每行包括n个字符,其中字符’.‘表示该位置为空地,字符’#'表示该位置为墙壁,字符’S’表示该位置为入口
2020-08-30 20:09:01
170
原创 搜索专题-Catch That Cow
原题连接:poj-3278题目大意:农夫和牛都在数轴上,农夫位于起始点N处,牛位于K点处,农夫想要抓到牛。农夫有两种移动方式:1、从 X移动到 X-1或X+1 ,每次移动花费一分钟 2、从 X移动到 2*X ,每次移动花费一分钟 假设牛不动,农夫最短多长时间抓到牛?题目思路:BFS(广度优先搜索),建立队列,给节点分层,一层一层搜索下去,需要注意得就是要去重。题目代码:#include <stdio.h>#include <stdlib.h>#include<st
2020-08-27 20:23:38
95
原创 搜索专题-Counterfeit Dollar
原题连接:poj-1013题目大意:有12枚硬币,其中有且只有一枚假硬币,用A-L作为每个硬币的代号,假硬币可能略轻也可能略重,现根据三次天平称量的输入,来找出假硬币,并判断假硬币是略轻还是略重。解题思路:通过模拟来解的,首先给所有的硬币重量赋值0,默认正常硬币的重量是10,若称量结果是even,则说明天平两边的硬币都是真硬币,则天平两边的硬币重量都赋值10;若结果是up,则说明左边比右边重,可能是左边有重的假硬币同时也有可能是右边有轻的假硬币,所以左右都应该被怀疑,所以左边非确定真硬币的硬币的重量应该
2020-08-26 20:18:57
79
原创 查找专题-Factorial
原题连接:原题链接题目大意:给定一个数n,求最小的N,使得N!末尾有n个0;解题思路:有几个0,即看能分解出来几个5,所以用二分法查找能分解出来的5的个数。代码部分:#include<stdio.h>int searchs(long long mid){ int number=0; while(mid) { number+=mid/5; mid=mid/5; } return number;}int main
2020-08-25 20:39:36
92
原创 查找专题-Median
原题链接:原题连接题目大意:给n个数,输出这些数的所有差值的绝对值的中位数。题目解法:同样二分查找,因为是求差值绝对值的中位数,所以可以默认是大的数减去小的数,所以可以先对所有的数按从大到小排序,然后在0~a[n-1]-a[0]进行二分,每次通过判断小于等于a[i]+mid数的个数再进行调整。这里用到了upper_bound函数,具体功能介绍见第一篇文章。题目代码:#include<stdio.h>#include<stdlib.h>#include<math.h&
2020-08-25 20:20:04
104
原创 查找专题-River Hopscotch
原题连接:原题链接题目大意:河流的起点终点各有一块石头,然后这两个石头中间又有N块石头,问去点M块石头后最大的最小距离是多少。(即存在一种去除M块石头的方法,使在该情况下所有石头间的最小距离,在所有的去除M块石头的情况下的最小石头间距中最小)题目解法:这个题我是通过二分法来求解的,通过对总长L进行二分,然后判断mid(将距离小于mid的左侧石头全部去掉,最后判断剩下的石头是否比目标多),判断后再更新left或者right,因为这里全部是整数,所以直+1/-1就可以了。这个题目的关键在于,当判断mid时
2020-08-24 20:16:51
148
原创 查找专题-Cable master
原题链接:原题链接题目描述:首先输入电缆的个数n,和要分的等长份数k,然后分别输入n个电缆的长度length[i],最后要求输出分后电缆的最长长度。题目思路:这个题要求求最大长度,可以说是一个最值问题,可以用二分法来求。可以求得所有的电缆的总长度sum,所以大致的二分的范围即sum/k,因为如果分后电缆长度大于sum/k,那么k份电缆的总长度就会大于sum。可以在这个范围内对电缆长度进行二分得mid,然后判断按mid所分的份数number是否满足条件,即若所有的(int)(length[i]/mid)求
2020-08-22 20:14:22
98
原创 枚举专题-safecracker
原题连接题目大意:给定一个长度为5……12个不同字符组成的字符串,从中选取5个,设为v,w,x,y,z,要满足等式:v - w^2 + x^3 - y^4 + z^5 = target,现在给出字符串和target,求满足该条件的5个字符(字典序要最大)题目解法:这个题由于是在训练时的枚举板块做的,所以没多想使用的是暴力解法,首先将字母变为数字,然后qsort快排函数排序(目的是为了是暴力循环后的结果字典序是最大的),然后通过5重暴力求解。代码部分:(5重暴力求解)#include<stdio
2020-08-16 20:26:18
104
原创 枚举专题-水仙花数
原题连接题目大意:给出两个数,从小到大输出这两个数之间的水仙花数,如果没有直接输出no。题目解法:题意比较简单,直接读入两个数后枚举即可。#include<stdio.h>int fun(int a){ return a*a*a;}int main(){ int a,b; int number;//记录水仙花数的个数。 while(scanf("%d%d",&a,&b)!=EOF) { number=0; for(int i=a;i<=
2020-08-16 19:42:40
317
原创 C++学习笔记-名字空间及其引用
原文链接C++名字空间是一种描述逻辑分组的机制。也就是说,如果有一些声明按照某种准则在逻辑上属于同一个模块,就可以将它们放在同一个名字空间,以表明这个事实。名字空间对于模块化的程序设计有重要作用。例如:复制代码// x.hnamespace MyNamespace1{int i;void func();class CHello{public:void print();}};复制代码复制代码// y.hnamespace MyNamespace2{class CHell
2020-06-17 17:07:07
316
原创 UVA.12716 GCD XOR(数论学习笔记1-异或与最大公约数)
题目大意:题目意思很简单,给一个数n,求1-n中异或值和最大公约数相等的数对的个数。题目链接(https://www.cnblogs.com/pengwill/p/7367023.html)题目分析这个题一眼看去就是枚举,但是普通的枚举又不行,因为数据范围30000000,对于n^2肯定超时,所以我们要观察题目寻找题目特点。题目涉及异或与最大公约数,不妨设选出来的两个数就是a,b。据题意可知,即让gcd(a,b)=a xor b。不妨设gcd(a,b)=c,所以c因该为a的因子,即a=n*c,
2020-06-09 10:58:50
793
原创 C++学习笔记2-文件与数据库(1)
~析构函数析构函数与构造函数相对应,构造函数是每次创造类的时候自动执行,主要作用是对类内的元素进行初始化,函数名和类名完全相同;而析构函数是在每次删除所创建的对象时自动执行,即对象用完了后要销毁时自动执行,析构函数的名称与类的名称是完全相同的,只是在前面加了个波浪号(~)作为前缀,它不会返回任何值,也不能带有任何参数,从而也不能重载。析构函数有助于在跳出程序(比如关闭文件、释放内存等)前释放资源,例如类中打开文件时,可以用析构函数在最后关闭文件。string::npos查找没有成功to_string
2020-06-02 11:58:38
137
原创 Common Subsequence POJ(最长公共子序列+动态规划)
题意 题意非常的明显及求给定两个序列的最长公共子序列,值得一提的是这个题目是求最长公共子序列,并不要求所求得的序列连续(求最长公共子串是要求连续的,不知道大家什么感觉反正菜鸡的我经常把这个两个问题搞混);题目连接:原题连接解析最长公共子序列问题一般都是用动态规划来解题,当然动态规划的用途有很多,这只是其中之一。动态规划的解题关键就是寻找子问题,把大问题分解成子问题,可以通过子问题的结果进而来得到大问题的结果,说白了就是自底向上的求解问题的过程。首先我们将两个字符串分别设为"a0,a1…,an"以
2020-05-31 11:39:19
171
原创 C++学习摘要-字符串
getline()的学习lower_bound(),upper_bound()的学习lower_bound()&&upper_bound()lower_bound(首地址,末地址,所要查找的元素)该函数是用来求一个序列中第一个大于等于所要查找的元素的地址,同时返回这个地址,注意这里返回的是地址,如果要求其在序列中的位置的话需要减去首地址来获得位置(注意实际查找范围为首地址到末地址-1)。upper_bound()(首地址,末地址,所要查找的元素) 该函数是查找序列中第一个大于所要查找
2020-05-28 14:51:12
161
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人