- 博客(18)
- 收藏
- 关注
原创 ML 朴素贝叶斯算法 --分类
KNN算法会直接得到分类的结果,假如有ABC三个类别,数据X经过KNN直接得到A,朴素贝叶斯会得到X分别为ABC的概率值(56%, 24%, 20%)。
2024-09-09 17:38:32 261
原创 LeetCode 647 回文子串
这题和第五题最长回文子串的解法类似,首先明确的点是对于回文子串来说,掐头去尾也是回文子串,因此可以使用动态规划的思路来解,注意的点是要使用逆向dp判断i-j是否是回文子串,状态转移方程分为三种情况,第一种是 i=j,单个字符肯定是,j - i <= 2 and s[j] == s[i],两个字符或者三个字符的判断,最后一种就是 s[j] == s[i] and dp[i+1][j-1] == True。
2024-09-06 10:35:37 183
原创 LeetCode 27 括号生成
首先明确不是有效括号的情况,即任意一个子前缀中右括号数量大于左括号数量因此这题可以按照递归的思路去做,逐步生成括号代码。
2024-09-05 18:01:23 244 1
原创 快速排序dj
step1: 任取待排序元素序列中的某元素作为基准值,step2:按照该基准值将待排序集合分割成两子序列,左子序列中所有元素均小于基准值,右子序列中所有元素均大于等于基准值step3:然后左右子序列重复该过程。
2024-09-05 11:15:50 204
原创 Leet Code 55 跳跃游戏
需要定义一个变量L,记作当前可以跳到的最大下标遍历数组,如果当前元素下标大于最大下标,说明跳不到这里,返回false如果当前元素下标小于最大下标,检查是否可以更新最大下标。
2024-09-02 14:48:36 187
原创 Leetcode 5 最长回文子串 dp
首先,要理解回文子串的一个特点就是掐头去尾仍然是回文子串然后,就可以知道s[i:j+1]是否是回文子串取决于s[i+1:j]是否是回文子串(状态转移)最后,可以使用二维dp来解决这题,第一步,明确状态转移方程第二步,这题要使用逆向递归的思路,因为正向递归无法知道i+1的状态,
2024-09-01 22:42:03 166
原创 Leet Code 57 插入区间
因为原区间已经排好序了,如果按照合并区间的思路,将新数组加入进去然后对区间排序,之后在遍历,时间复杂度为O(nlogn),这样就。因此,这是可以利用二分的特性,先找到新数组的插入位置,然后在遍历数组,这样时间复杂度为O(n)。没有很好利用原区间已经排好序的特性。
2024-09-01 21:28:41 113
原创 IP 割平面
求解整数规划问题,常用的方法是分支定界,分支定界框架中每个节点都需要求解对应的线性规划松弛问题(Relaxation),假设我们现在有100个0-1变量的IP问题,尽管线性松弛问题是多项式时间可解的,但是最坏情况下,我们需要求解2^n个线性松弛问题,这个工作量也是巨大的。因此,我们希望在每次求解线性松弛问题时尽量获得一个更好的界(更紧的界)。增加或加强整数规划模型的约束条件有时可以大幅加强其线性松弛的界,因此也就引入了割平面方法(加割等于加约束)
2024-08-30 10:06:47 209
原创 leetcode 56 合并区间
step1:先对intervals进行排序step2:新建结果数组res,将intervals中第一个元素加入到到res中step3:遍历intervals,对比元素和res中最后一个元素,观察是否可以合并。
2024-08-29 16:14:56 217 4
原创 leetcode 54 59螺旋数组
这题主要在于上下边界的处理,假设上下左右四个边界为step1:从左边界遍历到右边界,依次记录元素;遍历结束之后,上边界 up += 1;判断up是否大于down,大于退出循环step2:从上边界遍历到下边界,依次记录元素;遍历结束之后,右边界 right -= 1;判断left是否大于right,大于就退出循环然后,是右边界到左边界的遍历,下边界到上边界的遍历,直到边界冲突,退出循环。
2024-08-29 14:53:15 238
原创 数据分析 pandas - DataFrame结构
Pandas中的DataFrame是一种二维标签化数据结构,可以被看作是一个表格型数据结构,其中会有列名和行号索引,如下表所示,索引[0,0]元素是man,也就是说列名和行号不会构成DataFrame中的元素man12woman24man34。
2024-08-29 10:22:49 321
原创 运筹优化 拉格朗日松弛和对偶理论
由于大规模混合整数规划问题/整数规划问题往往是NP-hard的,所以我们直接对这些问题求解,每当遇到这些复杂问题的时候,一个基本思想就是对复杂的优化问题进行分解(decomposition),关于整数规划问题的分解主流包括三种方法1 BD (主要思路是行生成+割平面)2 DW分解 (主要思想就是列生成)3 Lagrangian decomposition (主要思想就是LR)前两种方法不是今天的主角,下面主要介绍LR。
2024-08-28 14:06:02 342
原创 机器学习 特征工程
特征工程是使用专业背景知识和技巧处理数据,使得特征能在机器学习算法上发挥更好的作用的过程将任意数据(文本或图像)转换为可用于机器学习的数字特征(特征提取是为了计算机更好的去理解数据)
2024-08-27 14:20:53 898
原创 ML 回归-非线性回归
1. scaler会记录测试数据集的mean和std所以当有新的测试数据时,可以直接scaler.transfer(new_data)就可以完成数据转换2. 因为是多项式回归拟合,poly_features会扩大特征的维数,因此对测试数据进行转换特征,因此后面也就是变成了只与参数有关的线性回归,因此后面也就直接建立的线性回归模型。3. 一旦使用线性回归模型训练了数据,可以通过coef_属性来获得特征的系数(即参数值),截距值可以通过intercept_属性获得。
2024-08-26 17:31:26 273
原创 ML 线性回归-过拟合-正则化
L1正则化适用小样本、解释性需求高、特征选择的情况,而L2适用大样本,解释性需求不高,且需要保持模型复杂度的情况。
2024-08-26 12:29:01 1166
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人