- 博客(42)
- 收藏
- 关注
原创 [基本功]决策树
缺点:有些分支当前划分虽不能提升泛化性能,但在其基础上的后续划分却有可能导致性能显著提高,预剪枝基于贪心本质,带来了欠拟合风险。噪音数据可能影响决策树,在数据带有噪声的情况下,通过剪枝可将决策树的泛化性能提高25%预剪枝,若当前节点的划分不能带来泛化性能提升,则停止划分并将当前结点标记为叶结点。与离散属性不同,若当前结点划分属性为连续属性,该属性还可作为其后代结点的划分属性。后剪枝,生成决策树后,自底向上对非叶节点考察,用单一叶结点代替整个子树。对连续属性a,可考察包含n-1个元素的候选划分点集合。
2023-12-21 14:29:42
846
原创 [leetcode]二叉树的遍历(python)
文章目录深度优先遍历dfs前序遍历递归迭代中序遍历递归迭代后序遍历递归迭代宽度优先遍历bfs迭代递归扩展深度优先遍历dfs前序遍历递归def preorderTraversal(root): res = [] def traverse(root): if not root: return res.append(root.val) traverse(root.left) traverse(root.
2022-04-09 17:35:54
1300
原创 [leetcode]排列&组合&子集(python)
文章目录排列全排列不重复,T46排列有重复不可复选,T47排列无重复可复选组合组合不重复不可复选,T77组合总和有重复不可复选,T40组合总和无重复可复选,T39子集子集不重复不可复选,T78子集有重复不可复选,T90排列全排列不重复,T46def permute(nums): def backtrack(path): if len(path) == n: res.append(path[:]) for num in nums:
2022-04-09 14:42:46
409
原创 [leetcode]归并&快排&堆思想题(python)
文章目录数组中的第K个最大元素自己实现最小堆堆排序快速排序归并排序数据流的中位数寻找两个正序数组的中位数数组中的逆序对数组中的第K个最大元素法1:用堆API做def kthmaxnum(nums, k): heap = [] for num in nums: heapq.heappush(heap, num) if len(heap) > k: heapq.heappop(heap) return heap[0]
2022-04-03 19:02:14
549
原创 [leetcode]旋转数组相关问题集锦(python)
文章目录旋转数组(无重复)的最小值,T153旋转数组的最大值旋转降序数组的最小值旋转数组(有重复)的最小值,剑指offer11,T154先升序再降序的最大值索引,T852搜索旋转数组(无重复)(返回索引),T33搜索旋转数组(有重复)(返回True/False),T81搜索旋转数组(有重复)(返回最小索引),面试题10.03旋转数组,T189颠倒字符串中的单词,T151旋转数组(无重复)的最小值,T153题目要点:nums元素值互不相同,请返回旋转数组中的最小元素。class Solution:
2022-03-24 17:11:19
1671
原创 [leetcode]原地哈希/数组常见易混淆问题(python)
文章目录寻找重复数1-n,不修改数组,T2871-n,可修改数组,T4420-(n-1),可修改数组,剑指offer03寻找缺失数所有缺失数,T448缺失的第一个正数,T41寻找重复数对于该类问题,如果要求常量的额外空间,一般可考虑原地哈希,如果要求不修改数组,就要考虑别的方法了。1-n,不修改数组,T287题目:给定一个包含n+1个整数的数组nums,数字都在**[1,n]范围内,假设只有一个**重复的整数,返回这个重复的数。要求:不修改nums,只用O(1)的额外空间。求解:如果包含重
2022-03-23 21:17:20
921
原创 [leetcode]编辑距离——python版本
Leetcode之编辑距离题目:递归定义dp函数:dp(i,j)表示word1[0…i]转成word2[0…j]的最少操作数def minDistance(word1,word2): def dp(i,j): #递归的终点 #word1走到头,要将word2剩余的字符插入 if i == -1: return j + 1 #word2走到头,要将word1剩余的字符删除 if j ==
2022-02-25 17:11:19
671
原创 [基本功]Adaboost简介
基本概念强可学习:在概率近似正确学习(PAC)的框架中,一个概念(类),如果存在一个多项式的算法能够学习它,并且正确率很高,则称这个概念是强可学习的。弱可学习:一个概念(类),如果存在一个多项式学习算法能够学习它,学习的正确率仅比随即猜测略好,则称这个概念是弱可学习的。在PAC学习的框架下,强可学习和弱可学习互为充分必要条件。Adaboost算法(分类)输入:训练数据集T=(x1,y1),(x2,y2),...,(xN,yN)T={(x_1,y_1),(x_2,y_2),...,(x_N,y_
2022-02-24 12:59:23
954
原创 [基本功]xgboost简介
简介XGBoost(eXtreme Gradient Boosting):极致梯度提升1、原理一堆CART树的集合,将每棵树的预测值加在一起得到最后的预测值。xgboost利用了损失函数二阶导的信息,并在目标函数之外加入了正则项,避免过拟合。2、优点高效、灵活、轻便在传统boosting的基础上,利用cpu的多线程,引入正则化项,控制了模型的复杂度。并且xgb可并行处理,并能对缺失值处理,还内置交叉验证。基础——GBDTXGBoost和GBDT的基本思想相同,但做出了一些优化,故先介绍GBD
2022-02-23 13:17:40
946
原创 [基本功]RFM模型
1、作用:根据客户活跃程度和交易金额的贡献,进行客户价值细分的一种方法。它能够识别优质客户;定制个性化的沟通和营销服务,为更多的营销决策提供有力支持;能够衡量客户价值和客户利润创收的能力。2、RFM解释:R(Recency):最近一次交易时间间隔F(Frequency):客户在最近一段时间内交易次数M(Monetray):客户在最近一段时间内交易金额3、如何建模:对于R\F\M三个维度,分别设定一个阈值,用来划分客户在该维度的价值是高还是低。这个阈值可以用中位数、平均数或经验数等等。令每个维度
2022-02-21 19:37:52
1165
原创 [基本功]pytorch基本操作教程
文章目录数据加载DatasetDataloader可视化——TensorBoardTransformToTensorNomalizeResizeRandomCroptorch.nn:神经网络的基本架构Module:所有神经网络的基本类Convolution LayersPooling Layers非线性激活正则化层Recurrent LayersTransformer LayersLinear LayersDropout LayersSparse LayersDistance FunctionsLoss F
2022-02-15 14:26:03
1530
原创 [Leetcode]其它经典面试题——python版本
本篇文章根据labuladong的算法小抄介绍部分经典面试题,采用python3实现文章目录快速选择算法数组中的第K个最大元素,T215分治算法归并排序添加括号的所有方式,T241区间问题删除被覆盖区间,T1288区间合并,T56区间交集,T986字符串乘法字符串相乘,T43二分查找高效判定子序列判断子序列,T392判断子序列列表最长回文子串最长回文子串,T5接雨水接雨水,T42盛最多水的容器,T11括号相关问题有效的括号,T20使括号有效的最少添加,T921平衡括号字符串的最少插入次数,T1541括号生
2022-01-12 17:28:37
612
原创 [Leetcode]数学运算技巧——python版本
本篇文章根据labuladong的算法小抄介绍有关数学运算技巧的常见算法,采用python3实现文章目录常用的位操作计算汉明权重,T191判断整数是否为2的幂次方,T231查找只出现一次的数字,T136阶乘阶乘后的0阶乘后的k个0素数计数质数,T204模幂超级次方,T372如何高效求幂缺失元素丢失的数字,T268缺失和重复元素错误的集合,T645重复元素原地删除有序数组的重复项,T26原地删除有序链表的重复项,T83移除元素,T27移动零,T283随机抽取元素链表随机节点,T382脑筋急转弯Nim游戏,T
2022-01-10 16:27:52
720
原创 [Leetcode]BFS广度优先搜索——python版本
本篇文章根据labuladong的算法小抄介绍BFS的常见算法,采用python3实现文章目录简介二叉树的最小深度,T111解开密码锁的最小次数,T752双向BFS优化简介BFS框架:把问题抽象成图,从一个点开始向四周扩散。一般用队列这种数据结构,每次将一个节点周围的所有节点加入队列。对二叉树而言,BFS实际上就是层级遍历。DFS框架:就是回溯算法。区别:BFS找到的路径一定是最短的,但代价是空间复杂度可能比DFS大很多。一般在找最短路径时用BFS,其他时候还是用DFS多。BFS的应用:在一幅图
2022-01-08 18:31:00
520
原创 [Leetcode]数据结构之数组——python版本
本篇文章根据labuladong的算法小抄汇总数组的常见算法,采用python3实现文章目录前缀和技巧一维数组中的前缀和区域和检索——数组不可变,T303二维数组中的前缀和二维区域和检索——矩阵不可变,T304和为k的子数组,T560差分数组技巧区间加法,T370航班预定统计,T1109拼车,T1094双指针技巧总结快慢指针判定链表中是否有环,T141返回链表中环的起始位置,T142寻找链表中点,T876寻找链表的倒数第n个结点,T19左右指针二分查找两数之和Ⅱ,T167反转数组,T344滑动窗口算法最小
2022-01-08 13:36:17
782
原创 [Leetcode]数据结构之自己设计数据结构——python版本
本篇文章根据labuladong的算法小抄汇总自己设计数据结构的常见算法,采用python3实现文章目录LRU算法LRU缓存机制,T146单调栈结构单调栈模板下一个更大元素Ⅰ,T496每日温度,T739[循环数组],下一个更大元素Ⅱ,T503单调队列滑动窗口最大值,T239二叉堆实现优先级队列二叉堆优先级队列实现上浮swim和下沉sink实现delMax和insert队列实现栈,T225栈实现队列,T232LRU算法LRU(Least Recently Used)算法是一种缓存淘汰机制。计算机的缓存容
2022-01-05 14:49:08
510
原创 [Leetcode]数据结构之图——python版本
本篇文章根据labuladong的算法小抄汇总图的常见算法,采用python3实现文章目录图论基础所有可能路径,T797(课程表)判断有向图是否存在环,T207(课程表)拓扑排序,T210二分图判断二分图DFS判断二分图,T785BFS判断二分图,T785可能的二分法,T886Union-Find并查集算法动态连通性DFS的替代方案被围绕的区域,T130等式方程的可满足性,T990Kruskal最小生成树算法以图判树,T261最低成本联通所有城市,T1135连接所有点的最小费用,T1584Dijkstra
2022-01-04 14:46:40
1019
原创 [Leetcode]数据结构之链表——python版本
本篇文章根据labuladong的算法小抄汇总链表的常见算法,采用python3实现文章目录单链表基本技巧合并两个有序链表合并k个有序链表单链表的倒数第k个结点删除链表的倒数第N个结点单链表的中点判断链表是否包含环返回链表入环的第一个结点两个链表是否相交反转链表迭代反转整个链表递归反转整个链表递归反转链表前N个结点递归反转一部分链表迭代反转一部分链表K个一组反转链表判断单链表是否回文单链表基本技巧合并两个有序链表class ListNode: def __init__(self,val=0,
2021-12-29 16:21:14
918
原创 [Leetcode]动态规划之游戏&贪心问题——python版本
本篇文章根据labuladong的算法小抄汇总动态规划(游戏和贪心问题)的常见算法,采用python3实现文章目录一、用动态规划玩游戏最小路径和K站中转内最便宜的航班高楼扔鸡蛋打家劫舍1打家劫舍2打家劫舍3实现strStr()四键键盘石子游戏构造回文的最小插入次数买卖股票的最佳时机只买卖一次股票买卖的最佳时机不限次数股票买卖的最佳时机含冷冻期不限次数股票买卖的最近时机含手续费不限次数股票买卖问题的最佳时机最多买卖两次股票买卖的最佳时机限制k次二、贪心类型问题区间调度问题无重叠区间,435用最少数量的箭引爆
2021-12-28 11:38:06
2123
原创 [基本功]卡方分布、卡方检验、卡方分箱
一、卡方分布定义:k个独立的标准正态随机变量的平方和服从自由度为k的卡方分布二、卡方检验:χk2=∑(A−E)2E,A为实际频数,E为期望频数\chi_k^2=\sum\frac{(A-E)^2}{E},A为实际频数,E为期望频数χk2=∑E(A−E)2,A为实际频数,E为期望频数拟合优度检验用来检验观测数与依照某种假设或分布模型计算得到的理论数之间一致性的假设检验。计算分类变量中各类别的期望频数与观察频数对比,判断是否有显著差异。独立性检验(列联分析)分析两个分类变量是否独立
2021-12-23 18:08:33
1060
原创 [基本功]分类模型评价标准
混淆矩阵:预测阳性预测阴性总计实际阳性TPFNP实际阴性FPTNN总计XYntotaln_{total}ntotal准确率(accuracy)TP+TNntotal=TP+TNTP+TN+FP+FN\frac{TP+TN}{n_{total}}=\frac{TP+TN}{TP+TN+FP+FN}ntotalTP+TN=TP+TN+FP+FNTP+TN缺点:无法应对样本不均衡情况。当负样本占99%时,吧所有样本预测为负样本也能获
2021-12-22 19:18:25
540
原创 [基本功]回归模型评价标准
均方误差(MSE, Mean Square Error)预测值与真实值偏差的平方和的平均数。MSE(y,y^)=1n∑i=1n(yi−y^i)2MSE(y,\hat y)=\frac1n\sum_{i=1}^n(y_i-\hat y_i)^2MSE(y,y^)=n1i=1∑n(yi−y^i)2均方根误差(RMSE, Root Mean Squared Error)MSE的平方根。数量级与真实值相同。RMSE(y,y^)=1n∑i=1n(yi−y^i)2RMSE(y,\ha..
2021-12-22 17:56:42
613
原创 [基本功]SVM如何优化拉格朗日乘子——SMO算法
问题:在SVM原问题转化为对偶问题后,如何由下式求得最优解α∗\alpha^*α∗minα12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)−∑i=1Nαis.t. αi>=0 , ∑i=1Nαiyi=0 min_{\alpha}\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i·x_j)-\sum_{i=1}^N\alpha_i\\s.t.\;\alpha_i>=0\;,\;\\\sum_{i=1}^N\a
2021-12-22 11:21:40
461
原创 [基本功]辛普森悖论
辛普森悖论是指什么现象?当人们尝试探究两种变量(比如新生录取率与性别)是否具有相关性时,会分别对之进行分组研究。然而,在分组比较中都占优势的一方,在总评中有时反而是失势的一方。上表中,商学院女生录取率为49%<男生录取率75%,法学院女生录取率5%<男生录取率10%,但总体录取率女生42%>男生21%。因为实际上女生总体录取率的42%=49%∗100120+5%∗2012042\%=49\%*\frac{100}{120}+5\%*\frac{20}{120}42%=49%∗12..
2021-12-22 10:58:03
578
原创 [基本功]聚类方法:层次聚类&k均值聚类
本文参考李航的《统计学习方法》撰写文章目录一、聚类基本概念1.1 距离&相似度1.2 类&簇1.3 类与类的距离(连接)二、层次聚类2.1 聚合(自下而上)2.2 分裂(自上而下)三、k均值聚类一、聚类基本概念1.1 距离&相似度假设样本集合为矩阵X=[Xij]m∗nX=[X_{ij}]_{m*n}X=[Xij]m∗n,第i行表示第i个属性,第j列表示第j个样本。闵可夫斯基距离dij=(∑k=1m∣xki−xkj∣p)1p,p>=1d_{ij}=(\sum
2021-12-21 21:29:59
1077
原创 [基本功]A/B test简要介绍
A/B test的含义含义:也称为分割测试或桶测试,是一种将网页或应用程序的两个版本相互比较以确定哪个版本的性能更好的方法。A/B test本质上是一个实验,其中页面的两个或多个变体随机显示给用户,统计分析确定哪个变体对于给定的目标效果更好操作:对同一个页面创建两个版本,一半流量显示页面原始版本(控件),一半流量显示页面修改版本(变体)目的:让个人、团队和公司通过用户行为结果数据不断对其用户体验进行仔细更改。举例:为提高销售质量和数量,尝试对标题、可视图像、表单字段、号召性用于和页面
2021-12-21 18:39:26
685
原创 [基本功]假设检验概念&统计量一览
基础概念第Ⅰ类错误:弃真错误,原假设是真的,但却被我们拒绝了,α\alphaα第Ⅱ类错误:取伪错误,原假设是假的,但却被我们接受了,β\betaβ显著性水平:当原假设正确时,检验统计量落在拒绝域的概率,也就是犯弃真错误的概率,事先确定好,一般取0.01,0.05,0.1等双侧检验:原假设形式为“≠”单侧检验:备择假设为“<”称为左侧检验,备择假设为“>”称为右侧检验双侧检验拒绝域:左侧检验拒绝域:右侧检验拒绝域:大样本:样本量>=30小样本:样本量<30一个总
2021-12-21 18:17:58
3196
1
原创 [基本功]逻辑回归(LR)理论知识
文章目录一、logistic分布二、二项逻辑斯蒂回归模型模型简介模型参数估计三、多项逻辑斯蒂回归模型一、logistic分布逻辑斯蒂分布分布函数:F(x)=P(X<=x)=11+e−(x−μ)/γF(x)=P(X<=x)=\frac{1}{1+e^{-(x-\mu)/\gamma}}F(x)=P(X<=x)=1+e−(x−μ)/γ1逻辑斯蒂分布密度函数:f(x)=F′(x)=e−(x−μ)/γγ(1+e−(x−μ)/γ)2f(x)=F'(x)=\frac{e^{-
2021-12-20 14:52:12
461
原创 [基本功]支持向量机(SVM)理论知识
本文参考李航的《统计学习方法》撰写文章目录SVM的主要特征硬间隔SVM(线性可分支持向量机)训练目标对偶算法进行学习软间隔SVM(线性支持向量机)训练目标对偶算法进行学习合页损失函数非线性SVM(线性不可分支持向量机)简要介绍常用核函数训练算法SVM的主要特征二分类模型定义在特征空间上的间隔最大的线性分类器(间隔最大使它有别于感知机)判别模型,与概率无关SVM有三宝,间隔、对偶、核技巧核技巧可以使SVM成为实质上的非线性分类器硬间隔SVM(线性可分支持向量机)训练目标假设给定一个训练
2021-12-17 17:09:02
719
1
原创 [Leetcode]动态规划之基本技巧&子序列问题&背包问题——python版本
本篇文章根据labuladong的算法小抄汇总动态规划(子序列问题和背包问题)的常见算法,采用python3实现文章目录一、动态规划基本技巧斐波那契数列零钱兑换下降路径最小和二、子序列类型问题编辑距离最长递增子序列俄罗斯套娃信封问题最大子序和最长公共子序列(LCS)两个字符串的删除操作两个字符串的最小ASCII删除和子序列解题模板思路一:一维dp数组思路二:二维dp数组最长回文子序列三、背包类型问题0-1背包问题子集背包问题:分割等和子集完全背包问题:零钱兑换目标和一、动态规划基本技巧一般形式:求
2021-12-16 16:58:32
1323
原创 [论文精读]讽刺识别/挖苦识别综述
目录一、研究背景二、早期研究三、基于单个语句的方法四、结合语境的深度学习方法:FigLang2020五、可融入的其他特征六、最新方法一、研究背景二、早期研究三、基于单个语句的方法四、结合语境的深度学习方法:FigLang2020五、可融入的其他特征六、最新方法...
2021-12-16 11:23:28
2754
2
原创 [基本功]jieba分词基本操作集合
jieba分词分词模式精确模式试图将句子最精确地切开,适合文本分析全模式把句子中所有可以成词的词语扫描出来,速度快,不能解决歧义搜索引擎模式在精确模式基础上,对长词再次切分,提高召回率,适合搜索引擎分词paddle模式利用PaddlePaddle深度学习框架,训练序列标注网络模型实现分词。支持词性标注pip install paddlepaddle-tiny==1.6.1jieba.enable_paddle()主要功能分词jieba.cut需要
2021-12-15 10:56:56
1452
原创 [基本功]MySQL基本操作集合
MySQL启动与停止计算机右击,管理,服务和应用程序,服务,mysql,右击可改手动改停止以管理员身份打开cmdnet stop mysql:停止net start mysql:启动登录与退出mysql自带客户端只适用root用户cmd管理员mysql -h localhost -P3306 -u root -p-h主机-P端口号-u用户-p输入密码mysql -u root -p连接本机退出exit或ctrl+c退出语法
2021-12-14 12:11:46
550
原创 [Leetcode]回溯算法——python版本
本篇文章根据labuladong的算法小抄汇总回溯算法的相关常见算法,采用python3实现回溯算法框架(DFS)回溯算法就是DFS算法(depth first searc,深度优先搜索算法),本质上是一种暴力穷举算法回溯问题实际上就是决策树的遍历过程:1、路径:已经做出的选择2、选择列表:当前可以做的选择3、结束条件:到达决策树底层,无法再做选择的条件回溯算法的框架result = []def backtrack(路径,选择列表): if 满足结束条件:
2021-12-13 20:33:10
2011
原创 [Leetcode]二叉树&二叉搜索树——python版本
二叉树翻转二叉树class TreeNode: def __init__(self,val=0,left=None,right=None): self.val = val self.left = left self.right = rightclass Solution: def invertTree(self,root): if root is None: return None
2021-12-11 20:09:12
989
原创 [基本功]模型评估方法
模型评估1、准确率的局限性准确率Accuracy=ncorrect/ntotalAccuracy=n_{correct}/n_{total}Accuracy=ncorrect/ntotal,指分类正确的样本占总样本个数的比例缺点:当负样本占99%时,把所有样本都预测为负样本也可以获得99%的准确率。当不同类别的样本比例非常不均衡时,占比大的类别往往成为影响准确率的最主要因素。改进:平均准确率(每个类别下的样本准确率的算术平均)其它问题:评估指标的选择、过拟合或欠拟合、测试集
2021-12-10 21:00:52
1482
原创 [基本功]常见特征工程
特征工程1、为什么要对数值类型的特征做归一化?为了消除数据特征之间的量纲影响。常用方法:(1)线性函数归一化:Xnorm=(X−Xmin)/(Xmax−Xmin)X_{norm}=(X-X_{min})/(X_{max}-X_{min})Xnorm=(X−Xmin)/(Xmax−Xmin)特点:将结果映射到[0,1]范围,实现对原始数据的等比缩放(2)零均值归一化:z=(x−μ)/σz=(x-\mu)/\sigmaz=(x−μ)/σ特点:将原始数据映射到均值为0、标准差为1的分布上
2021-12-10 11:23:33
1245
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人