![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
经典算法练习
文章平均质量分 71
啥都鼓捣的小yao
这个作者很懒,什么都没留下…
展开
-
Python大数据分析——K近邻模型(KNN)
那么解决方法就是,一种是设置k近邻样本的投票权重,使用KNN算法进行分类或预测时设置的k值比较大,担心模型发生欠拟合的现象,一个简单有效的处理办法就是设置近邻样本的投票权重,如果已知样本距离未知样本比较远,则对应的权重就设置得低一些,否则权重就高一些,通常可以将权重设置为距离的倒数。对于连续型的因变量来说,则是将k个最近的已知样本均值用作未知样本的预测。还有一种方法是,采用多重交叉验证法,该方法是目前比较流行的方案,其核心就是将k取不同的值,然后在每种值下执行m重的交叉验证,最后选出平均误差最小的k值。原创 2024-07-11 21:12:54 · 986 阅读 · 0 评论 -
Python大数据分析——决策树和随机森林
对于已知的事件A来说,事件D的信息增益就是D的信息熵与A事件下D的条件熵之差,事件A对事件D的影响越大,条件熵H(D|A)就会越小(在事件A的影响下,事件D被划分得越“纯净”),体现在信息增益上就是差值越大,进而说明事件D的信息熵下降得越多。与信息增益类似,还需要考虑自变量对因变量的影响程度,即因变量的基尼指数下降速度的快慢,下降得越快,自变量对因变量的影响就越强。为了克服信息增益指标的缺点,提出了信息增益率的概念,"它的思想很简单,就是在信息增益的基础上进行相应的惩罚。浅色的椭圆表示树的中间节点;原创 2024-07-09 22:36:04 · 862 阅读 · 0 评论 -
Python大数据分析——Logistic回归模型
x轴叫阈值,图中的两条折线分别代表各分位点下的正例覆盖率和1-负例覆盖率,通过两条曲线很难对模型的好坏做评估,一般会选用最大的KS值作为衡量指标。通常绘制ROC曲线,不仅仅是得到左侧的图形,更重要的是计算折线下的面积,即图中的阴影部分,这个面积称为AUC。其中,α为学习率,也称为参数βj变化的步长,通常步长可以取0.1,0.05,0.01等。所以,性别变量的发生比率为e** β1,表示男性患癌的发生比约为女性患癌发生比的e**β1倍。正例命中率:表示正确预测的正例数在预测正例数中的比例,即D/(C+D),原创 2024-05-11 21:41:26 · 1457 阅读 · 1 评论 -
Python大数据分析——岭回归和LASSO回归模型
因为根据线性回归模型的参数估计公式β=(X’X)-1X’y可知,得到β的前提是矩阵X’X可逆,但在实际应用中,可能会出现自变量个数多于样本量或者自变量间存在多重共线性的情况,即X’X的行列式为0。岭回归模型解决线性回归模型中矩阵X’X不可逆的办法是添加l2正则的惩罚项,但缺陷在于始终保留建模时的所有变量,首先将数据集拆分成k个样本量大体相当的数据组(如图中的第一行),并且每个数据组与其他组都没有重叠的观测;然后从k组数据中挑选k-1组数据用于模型的训练,剩下的一组数据用于模型的测试(如图中的第二行);原创 2024-04-18 03:18:58 · 1127 阅读 · 0 评论 -
Python大数据分析——一元与多元线性回归模型
从返回的结果可知,只有截距项Intercept和研发成本RD Spend对应的p值小于0.05,其余变量都没有通过系数的显著性检验,即在模型中这些变量不是影响利润的重要因素。我们发现,计算出来的F统计量值174.64远远大于F分布的理论值2.50,所以应当拒绝原假设,即认为多元线性回归模型是显著的,也就是说回归模型的偏回归系数都不全为0。对于一元线性回归模型来说,其反映的是单个自变量对因变量的影响,然而实际情况中,影响因变量的自变量往往不止一个,从而需要将一元线性回归模型扩展到多元线性回归模型。原创 2024-04-14 21:33:59 · 1378 阅读 · 0 评论 -
Python字符串处理
Python字符串处理str1="12345678abcdefghi"print(str1) #输出:12345678abcdefghiprint(str1[3]) #输出:4print(str1[2:5]) #输出:345 截取一部分,左闭右开print(str1[:5]) #输出:12345print(str1[2:]) #输出:345678abcdefghiprint(len(str1)) #输出字符串长度: 17str2="***"str3="abc原创 2022-04-06 11:03:23 · 1631 阅读 · 0 评论 -
枚举法(暴力法)
枚举法概念42 点问题题目描述:样例:运行限制:代码:组合型枚举代码:公平抽签题目描述:样例:运行限制:题目解析:代码:排列型枚举代码:座次问题题目描述:样例:运行限制:代码:概念将问题的所有可能成为答案的解一一列举,然后根据问题所给出的条件判断此解是否合适,如果合适就保留,反之则舍弃。42 点问题题目描述:众所周知在扑克牌中,有一个老掉牙的游戏叫做24点,选取4张牌进行加减乘除,看是否能得出24这个答案。现在小蓝同学发明了一个新游戏,他从扑克牌中依次抽出6张牌,注意不是一次抽出,进行计算,看是原创 2022-03-31 17:46:11 · 746 阅读 · 0 评论 -
递推法与递归法
递推法与递归法递推算法递归算法斐波纳契数列 fibonacci 问题题目描述:样例:运行限制:题目解析:代码:数字三角形问题题目描述:样例:运行限制:题目解析:代码:递推算法一个问题的求解需要大量重复计算,在已知的条件和所求问题之间总存在着某种相互联系的关系,在计算时,我们需要找到这种关系,进行计算(递推关系式)。即递推法的关键,就是找到递推关系式,这种处理方式能够将复杂的计算过程,转化为若干步骤的简单重复运送,充分利用计算机运行程序时的时间局部性和空间局部性。递归算法递归算法是一种从自顶向下的算原创 2022-03-30 10:46:49 · 423 阅读 · 0 评论 -
二分法(又称二分查找算法)
二分法二分查找算法讲解分巧克力题目描述:输入描述:输出描述:题目分析:代码:M 次方根题目描述:输入描述:输出描述:题目分析代码:一元三次方程求解代码:二分查找算法讲解枚举查找也就是顺序查找。实现原理就是逐个比较 a[0:n-1] 中的元素,直到找出元素 x 或搜索遍整个数组后确定 x 不在其中,或者说符合要求的元素在不在数组中。最坏的情况下需要比较 N 次,时间复杂度是 O(n) 线性阶。二分查找也就是折半查找。折半查找是将 N 个元素分成大致相同的两部分。选取中间元素与查找的的元素比较,或者与原创 2022-03-30 10:10:17 · 2998 阅读 · 0 评论 -
打表法和模拟法——按照意思去模拟
算式问题题目描述:本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。看这个算式:☆☆☆ + ☆☆☆ = ☆☆☆如果每个五角星代表 1 ~ 9 的不同的数字。这个算式有多少种可能的正确填写方法?173 + 286 = 459295 + 173 = 468173 + 295 = 468183 + 492 = 675以上都是正确的填写法!注意:111+222=333 是错误的填写法!因为每个数字必须是不同的!也就是说:1 ~ 9 中的所有数字,每个必须出现且仅出现一次!原创 2022-03-28 15:40:04 · 417 阅读 · 0 评论 -
思维与模拟——编程的逻辑推理
思维与模拟——编程的逻辑推理分数解析代码星期一代码乘积尾零代码付账问题解析代码平方和代码数列求值代码分数解析首先肯定要通分一下,或者用等比数列求和,这样才能将原式化简。然后通过位运算或者幂次运算计算分子、分母,再除掉二者最大公约数。代码b = 0a = 1for i in range(0,20): b += a a *= 2 print('%d/%d'%(b,a/2))星期一代码法一:利用datetime功能包from datetime import *原创 2022-03-28 13:57:22 · 524 阅读 · 0 评论 -
利用Python解决时间显示的问题
蓝桥杯之时间显示题目描述输入描述输出描述示例解析代码题目描述小蓝要和朋友合作开发一个时间显示的网站。在服务器上,朋友已经获取了当前的时间,用一个整数表示,值为从 1970年 11 月 11 日 00:00:00 到当前时刻经过的毫秒数。现在,小蓝要在客户端显示出这个时间。小蓝不用显示出年月日,只需要显示出时分秒即可,毫秒也不用显示,直接舍去即可。给定一个用整数表示的时间,请将这个时间对应的时分秒输出。输入描述输入一行包含一个整数,表示时间。输出描述输出时分秒表示的当前时间,格式形如 HH:原创 2022-03-16 17:38:16 · 745 阅读 · 0 评论 -
利用Python解决最短路径问题
利用Python解决最短路径问题题意运行限制解题思路代码法一(基于最短路径长度递增):法二(基于图论中的最短路径算法):题意一图由 2021 个结点组成,依次编号 1 至 2021。对于两个不同的结点 a, b,如果 a 和 b 的差的绝对值大于 21,则两个结点之间没有边相连;如果 a 和 b 的差的绝对值小于等于 21,则两个点之间有一条 长度为 a 和 b 的最小公倍数的无向边相连。例如:结点 1 和结点 23 之间没有边相连;结点 3 和结点 24 之间有一条无向边,长度为 24;结点 15原创 2022-03-16 11:26:59 · 3529 阅读 · 0 评论 -
Python解答《阶乘之和》
Python解答《阶乘之和》题目描述输入描述输出描述题目描述用高精度计算出 S=1!+2!+3!+⋯+n!(n≤50)。其中“!”表示阶乘,例如:5!=5×4×3×2×1。输入描述输入一个正整数 n。输出描述输出一个正整数 S,表示计算结果。n = int(input()) s = 1 ans = 0for i in range(1,n+1,1): s *= i ans += s print(ans)...原创 2022-03-10 15:35:19 · 2612 阅读 · 0 评论 -
利用深度优先搜索解决《货物摆放》问题
利用深度优先搜索解决《货物摆放》问题题目描述运行限制解析代码题目描述小蓝有一个超大的仓库,可以摆放很多货物。现在,小蓝有 n 箱货物要摆放在仓库,每箱货物都是规则的正方体。小蓝规定了长、宽、高三个互相垂直的方向,每箱货物的边都必须严格平行于长、宽、高。小蓝希望所有的货物最终摆成一个大的长方体。即在长、宽、高的方向上分别堆 L、W、H 的货物,满足 n =L×W×H。给定 n,请问有多少种堆放货物的方案满足要求。例如,当 n = 4 时,有以下 6 种方案:1×1×4、1×2×2、1×4×1、2×原创 2022-03-10 15:05:50 · 454 阅读 · 0 评论 -
蓝桥杯真题 ——《卡片》
《卡片》题目描述运行限制解析代码方法一:方法二:题目描述小蓝有很多数字卡片,每张卡片上都是数字 0到 9。 小蓝准备用这些卡片来拼一些数,他想从 1开始拼出正整数,每拼一个, 就保存起来,卡片就不能用来拼其它数了。 小蓝想知道自己能从 1 拼到多少。 例如,当小蓝有 30 张卡片,其中 0 到 9 各 3 张,则小蓝可以拼出 1到 10, 但是拼 11 时卡片 11 已经只有一张了,不够拼出 11。 现在小蓝手里有 0 到 9 的卡片各 2021张,共 20210 张,请问小蓝可以从 1 拼到多少?运原创 2022-03-08 20:22:13 · 480 阅读 · 0 评论 -
蓝桥杯真题 ——《直线》
《直线》题目描述运行限制解析代码题目描述在平面直角坐标系中,两点可以确定一条直线。如果有多点在一条直线上, 那么这些点中任意两点确定的直线是同一条。给定平面上 2 × 3 个整点{(x, y)|0 ≤ x < 2, 0 ≤ y < 3, x ∈ Z, y ∈ Z}(x,y)∣0≤x<2,0≤y<3,x∈Z,y∈Z,即横坐标 是 00 到 11 (包含 0 和 1) 之间的整数、纵坐标是 0 到 2 (包含 0 和 2) 之间的整数 的点。这些点一共确定了 11 条不同的直线。原创 2022-03-08 20:16:30 · 757 阅读 · 1 评论 -
斐波那契数列
斐波那契数列资源限制时间限制:1.0s 内存限制:256.0MB问题描述输入格式输入包含一个整数n。输出格式输出一行,包含一个整数,表示Fn除以10007的余数。n = int(input()) # 构造有n项的斐波那契数列F = [1, 1] # 斐波那契数列前两个值是固定的if n <=2: #数只是前两项时,余数始终是1 print(1)else: #当数大于2时 for item in range(n - 2): #进行循环 result原创 2021-11-02 12:43:03 · 125 阅读 · 0 评论