自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 资源 (1)
  • 收藏
  • 关注

原创 【超详细】支持向量机(SVM)数学推导

SVM是一种无监督机器学习方法,常用于二分类问题。其相较于逻辑回归,引入了核函数的概念,对非线性关系有更好的分类效果;同时由于对偶问题的引入,使得计算的复杂性由维度的大小转变为样本的数量,避免了维度爆炸。但是由于SVM的本质是二次规划问题,样本数量大的时候,需要占用大量的存储空间和时间,不容易实现;同时SVM解决多分类问题存在一定困难。一、硬间隔SVM(Hard Margin SVM)硬间隔SVM是一个二次凸规划问题,其形式为:其推导过程为:(1)列出原始目标函数和约束条件。目标函数

2022-04-12 23:54:51 8866 2

原创 KMP算法及其实现

KMP算法是一种字符串匹配算法,它通过next数组的定义,优化了暴力匹配的时间复杂度。KMP算法的时间复杂度是O(M+N).目录一、算法原理1. 计算next数组2. 字符匹配过程二、算法实现三、算法复杂度分析一、算法原理1. 计算next数组next[j]的计算方式为next[1~j]中的非平凡前缀和非平凡后缀元素一致的长度。next数组的实现过程为:i指针从1开始,j指针从0开始。每次索引元素时,用s[i]和s[j+1],这样做的好处是降低写代码的

2022-05-13 13:28:02 638

原创 Acwing802.区间和问题

题目描述假定有一个无限长的数轴,数轴上每个坐标上的数都是 00。现在,我们首先进行 nn 次操作,每次操作将某一位置 xx 上的数加 cc。接下来,进行 mm 次询问,每个询问包含两个整数 ll 和 rr,你需要求出在区间 [l,r][l,r] 之间的所有数的和。输入格式第一行包含两个整数 nn 和 mm。接下来 nn 行,每行包含两个整数 xx 和 cc。再接下来 mm 行,每行包含两个整数 ll 和 rr。输出格式共 mm 行,每行输出一个询问中所求的区间内数字和。

2022-04-13 20:39:46 658

原创 前缀和算法+实现

目录1.前缀和算法2.前缀和实现Leetcode 303:区域和检索 - 数组不可变Leetcode 304:二维区间和检索 - 数组不可变Leetcode 560:和为K的子数组3.总结1.前缀和算法前缀和的定义:数组从开始至某特定位置处的总和。通过前缀和问题,我们可以计算数组的在某个区间的数值总和。其步骤如下:(1)建立vector,用于存储前缀,并通过一定计算方式(如何计算见后续例题)计算每个位置处的前缀和。(2)通过一定计算方式(如何计算见后续例题)计

2022-03-30 20:37:46 3810

原创 高精度运算原理+实现(加减乘除)

高精度运算指的是进行运算的数据过大,超出了存储范围。这时就需要使用高精度运算目录1.高精度加法2.高精度减法3.高精度乘法4.高精度除法总结1.高精度加法题目要求:给定两个整数,输出他们的和算法:(1)扫描a,b;将a,b逆序放入vector中(逆序是为了更方便的进行运算)(2)进行求和运算①从末位向前位逐位求和,注意进位。即结果 = (a[i]+b[i]+进位)%10;进位 = 结果/10. 只有i小于对应数组的长度的时候才能取该位进行加法运算。

2022-03-23 23:18:52 800

原创 随机网格搜索的原理和实现【极简】

基本原理相较于枚举网格搜索,随机网格搜索的计算量更低。随机网格搜索放弃原本的搜索中的全域超参数空间,改为挑选出部分参数组合,构造超参数子空间,并只在子空间中搜索。以下图的二维空间为例,假设n_estimator的取值为[50,100,150,200,250,300],max_depth的取值为[2,3,4,5,6],则枚举网格搜索必须对30种参数组合都进行搜索;而随机网格搜索只需要抽样橙色的点作为参数组合进行搜索。这样,整体搜索的计算量就大大下降了。枚举网络搜索需要30次,而随机网格搜索仅需要8次。

2022-03-19 19:45:28 2066

原创 桶排序算法及其实现

桶排序算法在leetcode中,桶排序经常被使用以对元素出现的频率进行排序。其过程为:(1)创建一个unordered_map,key为元素,value为出现次数。遍历所有元素,每遍历一个元素,该元素的value++,同时比较当前元素的value和当前最大的value,以得到最大出现次数n。(2)根据最大出现次数n,创建有n+1个元素的vector(vector的下标是元素出现的次数),vector中的每个value也是一个vector,用于记录特定出现次数的元素。遍历(1)中创建的unorde

2022-03-16 00:01:24 1654

原创 Leetcode215 第K大的元素

本题是快速排序的变形题目。题目描述如下:本题的基本思想如下:在快排每次划分区间的过程中,计算比枢轴元素大的元素个数sr,即sr = nums.size()-j-1. 然后将sr与k作对比:若k<=sr,则取右半边进行递归;否则取左半边进行递归。注意边界条件是left==right,此时返回nums[left].class Solution {public: int findKthLargest(vector<int&gt...

2022-03-14 23:17:16 687

吴恩达机器学习笔记完整版

吴恩达机器学习笔记完整版

2022-03-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除