- 博客(11)
- 问答 (3)
- 收藏
- 关注
原创 KMP基础(C++)
其中n为文本串长度,m为模式串长度,因为在匹配的过程中,根据前缀表不断调整匹配的位置,可以看出匹配的过程是O(n),之前还要单独生成next数组,时间复杂度是O(m)。如果len % (len - (next[len - 1] + 1)) == 0 ,则说明数组的长度正好可以被 (数组长度-最长相等前后缀的长度) 整除 ,说明该字符串有重复的子字符串。因为字符串s的最长相同前后缀的长度一定是不包含s本身,所以 最长相同前后缀长度必然是m * x,而且 n - m = 1,(这里如果不懂,看上面的推理)
2023-02-10 21:39:37
302
原创 栈和队列基础(C++版)
首先, 栈的顺序是先进后出如图所示:栈会提供push 、pop 等诸多接口,所有元素必须符合先进先出,所以栈不提供走访功能,也不提供迭代功能。不像是set或者map那样有迭代器iterator可以遍历所有元素C++中的stack是容器吗?栈和队列是C++ 中的两个数据结构。而栈通常在C++中并不是被归类为容器,他被归类为容器适配器(container adapter)
2023-02-07 15:22:41
242
2
原创 使用sklearn库进行数据标准化处理
min-max 归一化的手段是一种线性的归一化方法,它的特点是不会对数据分布产生影响。无量纲化的处理可以在以梯度和矩阵为核心的算法应用中提高算法的求解速度,尤其是在使用了梯度下降的方法时。当数据(x)按均值(μ)中心化后,再按标准差(σ)缩放,数据就会服从均值为0,方差为1的正态分布(即标准正态分布),这个过程叫做数据标准化。这就是均值方差归一化,这样处理后的数据将符合标准正态分布,常用在一些通过距离得出相似度的聚类算法中,比如 K-means。数据的无量纲化可以是线性的也可以是非线性的。
2022-09-29 10:39:09
2214
1
原创 kaggle实战初体验记录Facebook location
本次赛题中在数据处理的环节我尝试了代码段中使用的范围和1.5~3.0的范围,两种不同的处理方式产生的差异是极其显著的,首先是数据处理速度,两种方法的运行速度是可以被明显感受到的不同,使用范围更大的数据运行时间几乎达到了范围更小的数据的一倍之多。与此同时,对于最终的预测结果也产生了非常大的影响。算法选择较为通用的KNN算法,KNN算法有着高精度和噪声,异常值不敏感的特性,比较适合新手入门时接触,但是与此同时他的时间和空间复杂度都比较高,一般来说他肯定不会是最优的算法,还有很大的优化空间。
2022-09-29 09:48:24
196
原创 kaggle实战初体验记录Facebook location(二)算法(KNN)
KNN算法的核心思想是未标记样本的类别,由距离其最近的k个邻居投票来决定。KNN的原理是,计算待标记样本和数据集中每个样本的距离,取距离最近的k个样本。待标记的样本所属类别就由这k个距离最近的样本投票产生,也即是这几个样本中数量最多的类别就被认定为该待标记样本的类别。以二维坐标为例如果说欧氏距离是坐标轴上两点间的直线距离的话,曼哈顿距离就是当你只能沿平行于x轴或是y轴的方向前进的距离,直观来看,欧式距离是两点间连线的长度,可以是一条斜线,而曼哈顿距离则只能是折线段的长度,其轨迹不可能出现斜线。
2022-09-29 09:38:46
555
原创 kaggle实战初体验记录Facebook location(一)数据处理
例如本次赛题中在数据处理的环节我尝试了代码段中使用的范围和1.5~3.0的范围,两种不同的处理方式产生的差异是极其显著的,首先是数据处理速度,两种方法的运行速度是可以被明显感受到的不同,使用范围更大的数据运行时间几乎达到了范围更小的数据的一倍之多。我们将他的数据集读入之后可以发现他的time这一列中都是六位数的数字而并非是我们常见的年月日或是时分秒的表达方式,这里一开始我是没看明白什么意思的。处理完数据之后,可以观察他的数据有什么样的特征,有没有明显的异常数据需要排除,然后再选择自己的算法。
2022-09-29 07:29:02
471
原创 广播机制(numpy)
数组在进行矢量化运算时,通常会要求两个数组的形状是相等的,但是我们平时仍然难以避免出现两个形状不相等的数组进行矢量化运算的情况。这个时候这两个就会触发所谓的广播机制。广播机制通常出现在numpy和pytorch的使用中。这里,以numpy来举例,说明广播机制到底是如何运算的。
2022-09-28 22:50:09
860
原创 相比list,使用numpy存储数据的优势
Numpy(Numerical Python)是一个开源的Python科学计算库,用于快速处理任意维度的数组。支持常见的数组和矩阵操作。对于同样的数值计算任务,使用Numpy比直接使用Python要简洁的多。
2022-09-18 21:10:22
919
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人