- 博客(31)
- 收藏
- 关注
原创 集成学习(2)
AdaBoostAdaBoost基本概念(Adaptive Boosting,自适应增强),其自适应在于:前一个基本分类器分错的样本会得到加强,加权后的全体样本再次被用来训练下一个基本分类器。同时,在每一轮中加入一个新的弱分类器,直到达到某个预定的足够小的错误率或达到预先指定的最大迭代次数。• 初始化训练样本的权值分布,每个样本具有相同权重;• 训练弱分类器,如果样本分类正确,则在构造下一个训练集中,它的权值就会被降低;反之提高。用更新过的样本集去训练下一个分类器;
2024-10-31 16:45:22
1033
原创 决策树——集成学习(1)
集成学习方法概述对于决策树的构建主要分为两类方法,即深度优先(损失更小,与广度优先相比,在leaf数目相同时树根深,因此容易造成过拟合,但是构建过程更加灵活且容易在大规模数据集上使用)和广度优先(树的构建更加平衡,但是精度较差),决策树通过“分而治之”的思想将样本进行分类。
2024-10-29 13:26:11
1518
原创 决策树(2)
划分标准的差异:ID3 使用信息增益偏向特征值多的特征,C4.5 使用信息增益率克服信息增益的缺点,偏向于特征值小的特征,CART 使用基尼指数克服 C4.5 需要求 log 的巨大计算量,偏向于特征值较多的特征。使用场景的差异:ID3 和 C4.5 都只能用于分类问题,CART 可以用于分类和回归问题;ID3 和 C4.5 是多叉树,速度较慢,CART 是二叉树,计算速度很快;样本数据的差异:ID3 只能处理离散数据且缺失值敏感,C4.5 和 CART 可以处理连续性数据且有多种方式处理缺失值;
2024-10-22 16:00:22
940
原创 贪心算法(5)
因为我们需要满足尽可能多的孩子,因此我们针对当前胃口最小的孩子,遍历s 挑选饼干:能满足,直接投喂该饼干;假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。虽然你有两块小饼干,由于他们的尺寸都是 1,你只能让胃口值是 1 的孩子满足。你的目标是满足尽可能多的孩子,并输出这个最大数值。我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。你有三个孩子和两块小饼干,3 个孩子的胃口值分别是:1,2,3。你有两个孩子和三块小饼干,2 个孩子的胃口值分别是 1,2。
2024-10-16 09:18:52
721
原创 决策树(1)
决策树属于判别模型。决策树算法属于监督学习方法。决策树是一种树状结构,通过做出一系列决策(选择)来对数据进行划分,这类似于针对一系列问题进行选择。决策树的决策过程就是从根节点开始,测试待分类项中对应的特征属性,并按照其值选择输出分支,直到叶子节点,将叶子节点的存放的类别作为决策结果。决策树算法是一种归纳分类算法,它通过对训练集的学习,挖掘出有用的规则,用于对新数据进行预测。决策树归纳的基本算法是贪心算法,自顶向下来构建决策树。在决策树的生成过程中,分割方法即属性选择的度量是关键。
2024-10-15 17:32:38
933
原创 动态规划(4)——简单多状态Ⅱ
dp[i][2]表示,第i天处于刚卖完股票的状态所能达到的最大利润。随后,在第 7 天(股票价格 = 1)的时候买入,在第 8 天 (股票价格 = 4)的时候卖出,这笔交易所能获得利润 = 4-1 = 3。在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4。在第 4 天(股票价格 = 0)的时候买入,在第 6 天(股票价格 = 3)的时候卖出,这笔交易所能获得利润 = 3-0 = 3。设计一个算法计算出最大利润。
2024-10-14 20:09:03
780
原创 贪心算法(4)
由于我们希望数组的和尽可能大,因此除非万不得已,我们应当总是修改负数,并且优先修改值最小的负数。因为将负数 −x 修改成 x 会使得数组的和增加 2x,所以这样的贪心操作是最优的。选择下标 (1, 2, 2) ,nums 变为 [3,1,0,2]。选择下标 (1, 4) ,nums 变为 [2,3,-1,5,4]。需要注意的是,nums2的调用方式 nums2[index2[i]]。选择下标 1 ,nums 变为 [4,-2,3]。3.根据下标数组排序后的结果,找到原数组的信息。
2024-09-25 15:43:56
1478
原创 朴素贝叶斯(1)
抽象一点说,朴素贝叶斯分类器会单独考量每一维度特征被分类的条件概率,进而综合这些概率并对其所在的特征向量做出分类预测。朴素贝叶斯只适用于特征之间是条件独立的情况下,否则分类效果不好,这里的朴素指的就是条件独立。朴素贝叶斯主要被广泛地使用在文档分类中,如互联网新闻的分类、垃圾邮件的筛选等。1、朴素贝叶斯模型有稳定的分类效率。2、对小规模的数据表现很好,能处理多分类任务,适合增量式训练,尤其是数据量超出内存时,可以一批批的去增量训练。3、对缺失数据不太敏感,算法也比较简单,常用于文本分类。
2024-09-24 17:29:38
505
原创 动态规划(3)——dp多状态问题Ⅰ
但是,若是数值出现了中断,如 [2,2,3,3,3,5],先转化成 [2+2,3+3+3,5],我们发现取“3”只妨碍我们取“2”、“4”,并不妨碍我们取“5”。此题和上题的不同仅在于,此题是环形的,即nums[0]的情况会影响到nums[n-1]。因此我们先考虑nums[0]的情况:a.偷 —>考虑[2,n-2]位置上的线性结构 b.不偷,[1,n-1]的线性结构。可以得到状态转移方程:f[i] = g[i - 1] + nums[i],g[i] = max(f[i - 1], g[i - 1])
2024-09-24 10:07:05
1500
原创 数据结构(3)
一组非负整常数四则运算表达式,每个表达式输入一行,长度不超过1024个字符,每对括号内一定包含数字。若为#,计算结束,若为括号,则弹出运算符,执行步骤E3。,由于它们的优先级较高,程序需要在推入当前操作符之前,检查栈中是否已经有相同或更高优先级的操作符。负责将输入字符串(表达式)转换为后缀表达式,并计算其值。循环读取用户输入的表达式,检查括号匹配,若不匹配则输出“error”。,处理逻辑类似于乘法和除法,但需要注意的是,加法和减法的优先级较低。只要遇到操作符,就弹出所有在栈中的操作符,直到遇到左括号为止。
2024-09-23 19:51:57
634
原创 贪心算法(3)
随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6 - 3 = 3。在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4。在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5。尽管 [1,3,5,7] 也是升序的子序列, 但它不是连续的,因为 5 和 7 在原数组里被 4 隔开。
2024-09-21 13:42:06
808
原创 数据结构题解(2)
给定一个括号字符串,请回答其中有多少对括号是匹配的,并且将未匹配的剩余字符按原顺序输出。(),[],{} 各视为1对匹配的括号;([]) 视为2对匹配的括号;)(, [} 均视为不匹配的括号。多组数据输入每组数据,输入一行,包含一个字符串S(1≤|S|≤105) 仅包含 ( ) [ ] { }输出格式对于每一组数据输出两行第一行输出一个数代表有多少对括号是匹配的第二行输出剩余未匹配的字符串(可以是空白的)22{[}]
2024-09-20 13:13:35
554
原创 贪心算法(2)
利用示例2分析,解释中长度为7的序列有 [1, 17, 10, 13, 10, 16, 8]。自然想到,将非极值点的替换成极值点 [1, 17, 5, 15, 5, 16, 8],可以发现仍是摆动序列,且摆动幅度更大。考虑一下初始化问题,对于 i = 0的情况,除非nums[0] = nums[1] = ...,别的时候nums[0]都可以作为序列的一元,即ret=1。其中一个是 [1, 17, 10, 13, 10, 16, 8] ,各元素之间的差值为 (16, -7, 3, -3, 6, -8)。
2024-09-15 15:50:11
893
原创 动态规划(1)
动态规划:1.状态表示 2.状态转移方程 3.初始化 4.填表顺序状态表示:dp表里面的值所表示的含义(题目要求、经验+题目要求、分析问题 发现重复子问题)状态转移方程:dp[i]等于什么初始化:填表的时候不越界。填表顺序:为了填写当前状态的时候,所需状态已经计算过了。返回值:题目要求 + 状态表示虚拟节点里面的值要保证后面的填表是正确的映射关系。
2024-09-13 16:03:04
1122
原创 贪心算法(1)
nums 的和减小了 33 - 14.75 = 18.25 ,减小的部分超过了初始数组和的一半,18.25 >= 33/2 = 16.5。nums 的和减小了 31 - 14.5 = 16.5 ,减小的部分超过了初始数组和的一半, 16.5 >= 31/2 = 15.5。但是,如何找到数组中的最大的那个数决定了这个题的难易复杂程度。,它的使用场景很多,它底层是用大小根堆实现的,可以用log(n)的时间动态地维护数据的有序性。第 5 位顾客那里,我们找还一张 10 美元的钞票和一张 5 美元的钞票。
2024-09-12 17:27:29
826
原创 机器学习基础——回归(1)
回归分析是指一种预测性的建模技术,主要是研究自变量和因变量的关系。通常使用线/曲线来拟合数据点,然后研究如何使曲线到数据点的距离差异最小。
2024-09-11 16:16:22
469
原创 解决警告:onvergenceWarning: Liblinear failed to converge, increase the number of iterations.
翻译一下:用LinearSVC训练模型时,遇到以下问题:Liblinear 无法收敛,请增加迭代次数。当n_samples> n_features时,首选dual = False。在调用LinearSVC时,出现了如下的警告…方法一:增大参数max_iter的值,这个值默认是1000。方法二:改动参数dual。
2023-10-09 17:37:45
741
1
原创 图论中回路与圈的概念区分
迹是边不重复的通路,但是顶点可以重复。回路是首尾顶点相同的迹。路是顶点不重复的迹,即边和顶点都不重复的通路,但是首尾顶点可以相同。圈是首尾顶点相同的路。回路:起点终点相同简单通路:起点到终点所经过的边不同(对应上述的 迹)简单回路:起点到终点所经过的边不同+回路 (对应上述的回路)初级通路:起点到终点所经过的顶点各异+简单通路 (即上述的路)初级回路/圈:起点到终点所经过的顶点除起点终点相同外,其余顶点各异+简单回路初级通路是每个结点只经过一次,简单通路是边只经过一次。
2023-10-05 15:13:42
3116
原创 Kmeans错误
错误:UserWarning: KMeans is known to have a memory leak on Windows with MKL, when there are less chunks than available threads. You can avoid it by setting the environment variable OMP_NUM_THREADS=15.由于可能是数据量太大,然后出现这个情况,但是数据量很少的时候也会出现这个警告。sklearn 1.4版更新。
2023-10-04 15:52:43
4450
1
原创 Pandas数据结构
Series是一维容器,表示DataFrame的每一列。在DataFrame中,每一列的数据类型都必须相同,可以把DataFrame看作由Series组成的字典,每个键是列名,值是Series。
2023-10-03 22:44:17
81
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人