自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 机器学习实验七--SVM垃圾邮件分类器

支持向量机(Support Vector Machine, SVM)是一种监督学习算法,主要用于分类和回归分析。它的核心思想是找到一个最优的超平面,将不同类别的数据分隔开来,同时最大化两类数据之间的间隔(margin)。可以处理高维数据通过核技巧(kernel trick)可以解决非线性分类问题在小样本数据集上表现优异对噪声数据有较强的鲁棒性本实验成功实现了一个基于SVM的垃圾邮件分类器,通过精心设计的预处理流程和特征提取方法,在测试集上达到了98.9%的准确率。

2025-06-01 00:07:39 338

原创 矩阵乘法--Python

实验初期,我先通过数学理论复习了矩阵乘法的定义——只有当第一个矩阵的列数等于第二个矩阵的行数时,乘法才有意义,结果矩阵的行列数分别取两个矩阵的行数和列数。在代码实现环节,我掌握了用三重循环实现矩阵乘法的核心逻辑:外层循环遍历结果矩阵的行,中层循环遍历列,内层循环完成点积运算。实验过程中,我特别注意到输入处理的重要性。然后先后输入A和B两个矩阵,A矩阵n行m列,B矩阵m行k列,矩阵中每个元素的绝对值不会大于5000。第一行为n, m, k,表示A矩阵是n行m列,B矩阵是m行k列,n, m, k均小于20。

2025-05-24 21:29:55 657

原创 从单链表 list 中删除第 i 个元素--Python

通过本次单链表删除元素的实验,我深入理解了链表数据结构的基本原理和操作方法。在实验过程中,我掌握了头插法创建链表的技巧,认识到这种插入方式能够实现O(1)时间复杂度的插入操作,但会使元素顺序与输入顺序相反。在删除指定位置节点时,我学会了如何通过遍历找到目标节点的前驱节点,这是链表操作中的关键技巧。实验中遇到的难点主要是边界条件的处理。当删除位置不合法时,需要给出明确的错误提示,这让我意识到健壮的程序必须考虑所有可能的异常情况。

2025-05-22 20:49:38 765

原创 机器学习实验六--逻辑回归算法

逻辑回归是一种统计方法,用于分析一组自变量与二元因变量之间的关系。它通过逻辑函数(也称为sigmoid函数)将线性回归的输出映射到0和1之间,从而可以解释为概率。与线性回归不同,逻辑回归不是预测连续值,而是预测某个事件发生的概率。例如:• 邮件是垃圾邮件的概率• 客户会购买产品的概率• 患者患有某种疾病的概率。

2025-05-19 18:47:14 481

原创 猜数字问题--Python

在编写代码的过程中,我更加熟悉了列表操作、循环结构和条件判断,同时也巩固了整数除法和绝对值运算的使用。此外,我认识到边界条件的重要性,例如题目保证赢家唯一,避免了平局处理的复杂性,这提醒我在实际编程中要仔细阅读题目要求,确保逻辑的严谨性。这次实验不仅增强了我的编程实践技能,还让我体会到算法设计在解决实际问题中的关键作用,为今后学习更复杂的数据结构和算法打下了坚实基础。随后 N 行,每行给出一个玩家的名字(由不超过8个英文字母组成的字符串)和其猜的正整数(≤ 100)。题目保证赢家是唯一的。

2025-05-15 19:21:42 270

原创 网红点打卡攻略问题--Python

通过本次实验,我深入理解了图论算法在实际问题中的应用,特别是如何利用邻接矩阵高效存储和查询路径信息。实验要求从众多旅游攻略中筛选出最优路线,这让我掌握了如何将现实问题抽象为图论模型,并通过算法验证路径的有效性。在实现过程中,我学会了合理设计数据结构,比如使用邻接矩阵存储路径费用,既节省了空间又提高了查询效率。同时,我也更加熟悉了输入数据的处理技巧,特别是面对复杂格式时如何高效解析。在验证攻略时,我通过标记数组来检查重复访问,确保每个网红点仅打卡一次,这让我对算法细节的把控更加严谨。

2025-05-12 20:22:11 777

原创 分书问题的递归枚举算法

通过本次实验,我深入理解了回溯算法在解决组合优化问题中的应用。实验以分书问题为载体,让我亲身体验了如何将实际问题转化为递归搜索模型。在实现过程中,我学会了如何设计递归函数的终止条件和回溯逻辑,特别是掌握了通过标记数组来避免重复选择的关键技巧。当遇到输出结果顺序不符合要求的情况时,我通过分析比较规则,理解了字典序的本质,最终采用预排序方案解决了输出顺序问题。调试过程中出现的重复分配错误让我意识到状态恢复的重要性,这加深了我对回溯算法中"尝试-撤销"这一核心思想的理解。

2025-05-10 19:16:57 771

原创 树状数组的操作问题--Python

通过本次实验,我深入理解了树状数组的原理与应用。在实现过程中,我最初对lowbit操作的理解仅停留在公式层面,但通过手动模拟更新和查询过程,逐渐掌握了其本质——通过二进制位的跳转高效维护前缀信息。当首次看到树状数组的存储内容输出时,我发现它并非简单存储原数组,而是通过巧妙的层次结构组织数据。在调试前缀和计算时,曾因索引从1开始的特性导致错误,这个教训让我意识到边界条件的重要性。相比暴力计算前缀和,树状数组的O(logn)时间复杂度优势在多次操作时尤为明显,这使我对算法优化的价值有了更直观的认识。

2025-05-08 20:51:44 979

原创 找鞍点问题--Python

一开始我对于如何同时满足行最大和列最小的条件感到困惑,但通过仔细分析问题,我意识到可以分两步进行验证:首先检查当前元素是否为所在行的最大值,然后再验证它是否为所在列的最小值。在调试过程中,我遇到了下标越界和逻辑判断不严谨的问题,这让我更加重视边界条件的处理和循环终止条件的设置。通过反复测试不同规模的矩阵,包括1×1的特殊情况和所有元素相同的极端情况,我增强了程序的鲁棒性。在编写程序的过程中,我学会了如何通过双重循环遍历矩阵中的每一个元素,并针对每个元素进行行和列的条件判断。

2025-05-06 19:58:12 697

原创 树的同构问题--Python

通过本次实验,我对树的同构问题有了更深入的理解。在解决问题的过程中,我学会了如何从实际问题出发,将抽象的树结构转化为具体的代码实现。实验初期,我一度困惑于如何判断两棵树是否同构,但通过仔细分析题目示例,我逐渐认识到关键在于递归地比较节点的值及其子树结构。在实现过程中,我掌握了处理树形结构输入的有效方法,特别是如何通过标记父节点来准确找到树的根节点。这次实验让我深刻体会到递归思想在解决树结构问题中的强大作用,通过将大问题分解为相同性质的子问题,可以优雅地解决看似复杂的结构匹配问题。

2025-05-02 22:22:21 938

原创 病毒溯源问题--Python

通过这次实验,我深刻理解了树形结构在实际问题中的应用价值。在解决病毒溯源问题时,我首先需要将杂乱的变异关系抽象为清晰的树形结构,这让我意识到数据建模能力的重要性。在实现过程中,我遇到了递归深度限制的挑战,通过调整系统递归限制参数解决了这个问题,这让我明白实际编程中需要考虑系统环境的限制。在路径选择算法设计上,我学会了如何通过排序子节点来保证字典序最小,这种细节处理能力对解决实际问题至关重要。通过反复调试和优化,我不仅掌握了DFS遍历树的技巧,更学会了如何根据具体需求调整算法策略。

2025-05-01 20:46:29 1042

原创 修理牧场问题--Python

通过本次实验,我深刻理解了如何利用优先队列(最小堆)来高效解决最优合并问题。最初面对题目时,我误以为应该像切木棒问题那样从最大段开始分割,但在模拟计算过程中发现这种策略会导致总费用偏高。通过反复尝试和分析示例数据,我意识到这个问题本质上与哈夫曼编码的构建过程高度相似,关键在于每次都要选择当前最小的两个元素进行合并。在实现过程中,我学会了如何正确使用Python的heapq模块来维护最小堆结构,特别是掌握了heappop和heappush这两个关键操作的实际应用。

2025-04-29 22:06:59 669

原创 朋友圈问题--Python

实验中,我学会了如何通过路径压缩和按秩合并优化并查集的操作。最初对find函数中的递归路径压缩感到困惑,但通过手动模拟示例(如输入样例中1→2→3的合并过程),我理解了如何通过parent[i] = find(parent[i])将节点直接指向根节点,从而将查找时间从O(log n)降至接近O(1)。将现实中的朋友圈关系抽象为图论中的连通分量问题,是本次实验的核心。我学会了如何将俱乐部成员列表转化为并查集的合并操作,例如处理第二个俱乐部时,只需将成员4与第一个俱乐部的根节点1合并,无需重复操作所有成员。

2025-04-26 21:49:14 666

原创 红色警报问题--python

在解决"红色警报"这一问题的过程中,我深刻体会到图论算法在实际问题中的应用价值。最初面对题目时,最困扰我的是如何准确判断城市被攻占对国家连通性的影响。通过分析,我意识到关键在于动态维护图的连通分量数量,这需要将图论知识与实际问题建立联系。在实现过程中,选择BFS而非DFS来计算连通分量,不仅避免了递归可能带来的栈溢出问题,也更符合直观的层级遍历思想。调试阶段遇到的一个典型问题是初始连通分量的计算。最初我忽略了国家可能本来就不完全连通的情况,导致警报判断逻辑出现偏差。

2025-04-23 21:35:08 797

原创 机器学习实验五--朴素贝叶斯实现西瓜分类

在这次朴素贝叶斯西瓜分类实验中,我深刻体会到了机器学习理论与实践结合的奇妙之处。最初接触朴素贝叶斯时,那些数学公式和概率计算总让我觉得抽象难懂,但通过亲手实现这个西瓜分类器,那些概念突然变得鲜活起来。特别是在处理离散特征时,当看到某些特征组合在训练集中从未出现导致概率为零时,我才真正理解拉普拉斯平滑的必要性。对于连续特征,实验采用高斯分布假设,虽然含糖率特征因测试值偏离训练集范围导致概率密度较低,但整体分类结果仍保持稳定。

2025-04-22 20:15:56 871

原创 车厢重排问题-java

车厢重排问题是一个经典的栈排序应用场景,考察对缓冲轨(栈结构)的灵活运用能力。该问题的核心在于如何利用有限的缓冲轨资源,将随机入轨的车厢重新排列成有序序列。通过分析,我们得出以下关键要点:首先,算法采用贪心策略处理缓冲轨选择,优先将车厢放入队尾编号最大的缓冲轨。这种策略能最大化保留后续车厢的放置选择空间,是解决问题的关键所在。当车厢编号恰好是下一个待输出编号时,立即输出并触发缓冲轨的连锁检查机制,确保不会错过任何可输出的车厢。

2025-04-19 19:30:21 845

原创 垃圾箱选址问题的最短路径解法

这个问题考察了最短路径算法的应用和复杂条件的处理。通过将每个垃圾箱候选点作为起点执行SPFA(或Dijkstra)算法,我们能够系统性地计算到所有居民点的最短距离,进而评估每个候选点的适用性。然后根据题目要求的优先级(最大最小距离→平均距离→编号)选择最优解。正确构建图结构,处理居民点和垃圾箱点的编号使用高效的最短路径算法(这里选择了SPFA)按照题目要求的优先级顺序进行比较和选择注意边界条件和无解情况的处理。

2025-04-17 21:27:45 873

原创 机器学习--贝叶斯算法

假设现在有一个装了7块石头的罐子,其中3块是灰色的, 4块是黑色的。如果从罐子中随机取出一块石头,那么是灰色石头的可能性是多少?由于取石头有7种可能,其中3种为灰色,所以取出灰色石头的概率为3/7。那么取到黑色石头的概率又是多少呢?很显然,是4/7。我们使用P(gray)来表示取到灰色石头的概率,其概率值可以通过灰色石头数目除以总的石头数目来得到。如果这7块石头放在两个桶中,那么上述概率应该如何计算?要计算P(gray)或者P(black),事先得知道石头所在桶的信息会不会改变结果?

2025-04-15 22:13:30 1215

原创 数据库学习--存储过程及游标

通过本次实验,我掌握了存储过程的基本语法和创建方法,通过DELIMITER命令修改结束符、使用DECLARE定义局部变量等实践,使我对存储过程的语法规范有了更准确的认识。通过创建、打开、遍历和关闭游标的完整流程,我理解了游标作为结果集指针的工作原理。学会了如何在MySQL中使用加密函数保护敏感数据,通过实践加深了对数据库事务处理的理解,认识到存储过程在提高数据库操作效率和安全性方面的重要作用。通过本实验,我不仅掌握了具体的技术实现方法,更重要的是培养了数据库安全意识和性能优化思维。

2025-04-12 20:25:10 311

原创 机器学习--构建决策树

决策树(DecisionTree),又称判断树,它是一种以树形数据结构来展示决策规则和分类结果的模型,作为一种归纳学习算法,其重点是将看似无序、杂乱的已知实例,通过某种技术手段将它们转化成可以预测未知实例的树状模型,每一条从根结点(对最终分类结果贡献最大的属性)到叶子结点(最终分类结果)的路径都代表一条决策的规则。通过本次决策树实验,我对ID3和CART这两种经典机器学习算法有了系统性的认识。在理论层面,我深入理解了信息熵和基尼系数作为特征选择标准的核心原理;

2025-04-10 09:22:12 1046

原创 数据库系统学习--数据依赖的公理系统

求出了A+,发现 B 是冗余的。求出 B+,B 不是冗余的。在学习数据库系统的过程中,数据依赖的公理系统(Armstrong公理系统)是理解关系数据库规范化理论的核心基础。通过这一部分的学习,我深刻体会到公理系统在数据库设计中的重要性,它不仅为数据依赖的推理提供了严谨的数学工具,还为数据库的规范化奠定了理论基础。Armstrong公理系统的三条基本公理(自反律、增广律、传递律)看似简单,但通过它们可以推导出更多的推理规则,如合并规则、分解规则和伪传递规则。

2025-04-08 20:24:36 391

原创 数据库系统学习——关系数据理论(规范化)

数据依赖是完整性约束的一种表现形式,是通过一个关系中属性间值的相等与否体现出来的数据间的相互关系。

2025-04-05 20:40:19 1040

原创 模型评估方法--基于KNN算法绘制ROC曲线和PR曲线

实验表明,KNN算法在该合成数据集上表现良好,ROC曲线和PR曲线均反映出较强的分类能力。通过本次基于KNN算法的ROC与PR曲线绘制实验,我对机器学习模型的评估方法有了更深入的理解。在实验过程中,我特别注意到KNN算法虽然原理简单直观,但其性能表现与数据预处理、参数选择等环节密切相关。标准化处理对KNN尤为重要,因为距离度量对特征尺度非常敏感。在绘制ROC和PR曲线时,我深刻体会到不同评估指标的侧重点:ROC曲线更全面展示模型的整体分类能力,而PR曲线在类别不平衡时更具参考价值。

2025-04-03 22:14:35 1051

原创 基于K近邻算法的分类器的实现

KNN算法在该问题上表现良好,能够有效分类约会对象的类别。通过归一化处理,解决了特征取值范围差异过大的问题,确保了每个特征对距离计算的贡献相等。通过本次实验,深入理解了KNN算法的原理和实现过程,包括距离计算、K值选择、多数投票等关键步骤。

2025-03-24 13:11:30 810

原创 【如何安装Anaconda】

Anaconda就是可以便捷获取包且对包能够进行管理,同时对环境可以统一管理的发行版本。Anaconda包含了conda、Python在内的超过180个科学包及其依赖项。以上就是今天要讲的内容,本文仅仅简单介绍了Anaconda的下载和安装。

2025-03-09 21:07:31 291

空空如也

空空如也

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

TA关注的人

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