- 博客(132)
- 收藏
- 关注
原创 一文吃透朴素贝叶斯:原理、实现与实战
本文全面介绍了朴素贝叶斯分类算法的原理与应用。首先解析贝叶斯定理的核心概念(先验概率、似然、后验概率),阐明其"朴素"特征条件独立性假设的简化作用。重点讲解了Scikit-learn中4种朴素贝叶斯实现:CategoricalNB(离散分类特征)、BernoulliNB(二元特征)、MultinomialNB(离散计数特征)和GaussianNB(连续特征),并给出代码示例。文章还总结了朴素贝叶斯在文本分类等场景的应用优势,以及计算高效但独立性假设可能影响准确性的特点。通过理论解析和代码
2025-12-30 22:27:16
827
原创 KNN实战进阶:模型评估、Scikit-learn实现与Numpy手动编码
本文系统介绍了KNN算法的实战应用,包括模型评估、交叉验证和工程实现。主要内容涵盖:1) 分类/回归任务的核心评估指标及其适用场景;2) 三种交叉验证方法的原理与实现;3) Scikit-learn快速实现KNN分类的完整流程;4) 通过Numpy手动实现KNN的进阶作业要求。文章特别强调了样本不平衡时准确率的局限性,以及如何利用精确率、召回率等指标进行补充评估,并提供了大模型辅助编程的具体技巧和验证方法。全文从理论到实践,为KNN算法的应用提供了全面指导。
2025-12-24 13:59:45
614
原创 深入浅出K近邻法(KNN):原理、实现与Scikit-learn实战
摘要:K近邻法(KNN)是一种基于相似度的监督学习算法,通过"邻里投票"机制实现预测。本文详细解析了KNN的核心原理、三要素(距离度量、k值选择和特征缩放)以及高效实现方法KD树,并展示了Scikit-learn中的实战应用。KNN无需显式训练,适用于分类和回归任务,其相似度匹配思想是现代推荐系统和图像搜索的基础。文章通过offer预测案例生动展示了KNN的工作机制,并提供了参数调优建议和代码实现。
2025-12-24 13:15:52
1054
1
原创 机器学习入门:从概念到实战,轻松解锁AI技能
你是否好奇ChatGPT如何精准回应需求?AI如何快速生成穿搭照片、证件照甚至动态视频?这些看似神奇的"AI魔法",背后的核心驱动力正是机器学习。机器学习是第四次工业革命的核心引擎,它依托数据、算力与算法的三重爆发,构建了全新的编程范式。传统编程是"规则+数据→答案",而机器学习则颠覆为"数据+答案→规则"——让计算机从海量数据中自主学习规律,形成能预测未来的"模型"。从垃圾邮件过滤到医疗影像诊断,从房价预测到自动驾驶,机器学习已渗透到生活的方方面面,成为不可或缺的技术力量。
2025-12-22 22:39:53
1069
原创 如何分割训练集、验证集、测试集
机器学习数据集划分方法总结:首先明确训练集(用于模型训练)、验证集(用于调参)和测试集(用于最终评估)的职责,测试集必须严格隔离。数据划分比例根据数据量大小调整,小样本(1k-10k)常用6:2:2,中等规模(10k-100k)用8:1:1,大规模数据可98:1:1。划分方法包括随机划分(i.i.d.假设)、分层抽样(分类任务必备)、时间切分(时序数据)、分组划分(防止信息泄露)和交叉验证(小样本)。文中提供了Python/scikit-learn、PyTorch和TensorFlow的代码实现模板。
2025-12-22 16:18:24
304
原创 如何借助Zotero批量下载只有参考文献格式的论文
本文介绍了使用Zotero管理文献的完整流程:首先通过anystyle.io网站转换参考文献格式为BibTex并导入Zotero;然后下载适配插件,批量获取文献DOI;接着创建bat启动文件设置代理;最后批量下载PDF全文,未成功的文献需单独在谷歌学术搜索。该流程涵盖了从文献导入到全文获取的全套操作方法。
2025-12-18 17:15:34
246
原创 如何给整个文件夹/项目配置conda环境
本文简要介绍了如何为Python项目配置Conda环境作为解释器。首先进入设置,找到当前项目文件夹菜单;然后选择Python Interpreter并点击添加解释器;接着选择本地解释器(Add Local Interpreter),指向已建立的Conda环境。文中还提供了关于如何创建Conda环境的博客链接供参考。
2025-12-18 16:47:34
327
原创 Conda与Pip混用导致的“幽灵包”现象
混用 Conda 和 Pip 确实是 Python 环境管理中的大忌,尤其是在 Windows 上搞深度学习开发时。以下是为什么,以及。
2025-11-20 20:20:35
385
原创 ImportError: DLL load failed while importing _pywrap_tensorflow_internal: 找不到指定的模块。
TensorFlow 加载底层的 C++ 库()时失败了。
2025-11-20 20:13:02
411
1
原创 MySQL如何快速删除数据库中所有表数据
首先运行下面指令生成TRUNCATE TABLE语句。OK 数据库的所有表数据都被清空~~~最后运行下面指令启用外键关联检查。再运行下面指令禁用外键关联检查。运行第一步生成的语句。
2025-05-19 16:07:18
339
原创 Python 中方法命名中下划线的使用规则
Python 中方法命名中下划线的使用规则:单下划线开头 _method:双下划线开头 __method:
2025-05-09 17:25:52
389
1
原创 StableDiffusionPipeline原理解读——引导尺度是如何调整噪声残差的
引导尺度(Guidance Scale)在分类器自由引导(Classifier-Free Guidance, CFG)中起着关键作用,用于调整噪声残差,从而在生成过程中平衡无条件生成和有条件生成的影响。
2025-04-24 14:53:39
617
原创 Django连接mysql数据库报错ModuleNotFoundError: No module named ‘MySQLdb‘
是不是很诧异明明pymysql库也安装了,setting.py文件也配置好了为啥报错。
2024-12-19 10:57:41
781
原创 python如何操控mysql
搜索说是需要 pip install cryptography。每次都需要commit太麻烦了,可以在建立连接时自动提交。
2024-12-18 18:25:04
667
原创 如何用anaconda管理python环境
当我们想学习某项技术或编写某程序时可能会用到不同的python版本,那么可以在这里创建新环境 ,命令为。比如我创建一个name为pytorch的环境,里面的Python版本是3.12。单击打开 Anaconda Prompt,可以看到以下画面,默认环境是base。看到激活后左边括号里的环境名变成了刚刚创建的pytorch环境。创建成功后激活环境也就是选择该环境,命令如下。然后写项目的时候就可以选择conda里的环境。关于conda的更多命令请看我的另一篇博客~安装好后可以看到有这些文件。
2024-12-18 18:20:46
593
原创 如何修改anaconda中新建环境abc的Python版本,创建环境abc时指定的是3.12现在想换成3.10
再找到该环境下的python.exe,鼠标静置在上面查看版本。我原有环境pyspark的Python版本如下。与命令行检查一致,成功!在该环境下,执行下列代码。再次检查Python版本。
2024-11-25 15:09:10
489
原创 协同过滤——当前推荐技术和算法中使用最广泛和认可度最高的算法之一
协同过滤指的是根据与某个人(或商品)的相似物的分析,来判断此人(或商品)的特点、价值和潜在属性。简单来说就是它给A推荐与A兴趣相似的人的东西,或与A喜欢的物品相似的其他物品。
2024-11-05 21:57:42
817
原创 复合函数求导你还不会?
复合函数定义h(x)=f(g(x))首先给出其求导公式h'(x)=f'(g(x))g'(x)看着是不是很懵,先别管跟我步骤走~~~
2024-10-15 19:25:42
1717
原创 什么是联邦学习
联邦学习就是一种在保护隐私的前提下,通过合作学习来提高模型性能的方法。它允许我们在不直接分享数据的情况下,共同构建出更强大、更准确的模型。
2024-10-14 20:17:49
533
1
原创 关于Integer和int的拆箱和装箱
Integer称为包装类,所以自动装箱自然是相对于int来说,转化为Integer。相反,拆箱就是Integer转int。
2024-10-11 17:46:02
467
原创 ArrayList<List<Integer>> lists=new ArrayList<List<Integer>>();怎么转成int[][]
stream流,思路就是先把lists里面的每个list转成array,之前的方法list.stream().mapToInt(Integer::intValue).toArray() 然后再整体转成array。
2024-10-10 22:08:10
205
原创 用IntStream生成0到n的流,并找出不在numSet中的数字列表
看完后,你发现直接把findFirst()后面的删掉,转成数组,再通过stream流把数组转为列表就欧克。中的数字,并以数组的形式返回结果。先看这题低配版的逻辑。
2024-10-10 19:21:25
229
原创 Boyer-Moore摩尔投票法
remove的时候注意remove有2种参数,一种是下标,一种是元素。因为元素类型正好是Integer,所以不管填下标或是元素都会默认成下标。正好符合我们的需求。若你需要删除元素,看我这篇文章。的元素,直到投票过程无法继续,此时数组为空或者数组中剩下的元素都相等。如果数组为空,则数组中不存在主要元素(数组中占比超过一半的元素);如果数组中剩下的元素都相等,则数组中剩下的元素可能为主要元素。在每一轮投票过程中,从数组中删除。
2024-10-10 18:51:31
592
原创 用IntStream生成0到n的流,并找出不在numSet中的数字
n代表的是nums的长度,并从流中过滤出(就是找到)不在numSet中的数字,num指的是流中的元素。首先将nums转化为HashSet,这里也可以不一定是HashSet,是ArrayList也可以。巧妙利用stream流,不得不说stream真厉害!这个范围内没有出现在数组中的那个数。再用IntStream生成0到n的流。整体思路就是标题说的那样。
2024-10-09 18:11:09
325
原创 Java增强for循环遍历集合删除指定值不安全问题
在这里因为remove方法有两种参数,一种是对象(删除此元素),一种是Integer (删除此下标对应的元素)。恰好我对象类型就是Integer,所以或默认为删除下标对应元素,造成下标越界不安全。可以把list转化成Iterator,如下。
2024-10-01 15:48:11
396
1
原创 HashMap中常用的函数
3、如果key为a的键不存在,则存入键值对(a,1),存在则返回value。2、返回key为a的value,若没有该key返回0。2、如果key为a的键不存在,则存入键值对(a,1)2、判断是否有value为1的键值对。判断是否存在某key或value。1、判断是否有key为a的键值对。1、返回key为a的value。1、新增键值对(a,1)
2024-09-07 21:22:24
538
原创 查找算法你知道哪些?
表示斐波那契数列中的第k个数)。如果数组长度本身就是斐波那契数,则直接使用;如果不是,则选择第一个大于或等于数组长度的斐波那契数。:由于斐波那契数列中的数可能大于数组的实际长度,算法通常会在原数组末尾添加一些与数组最大元素相同的值,直到数组长度等于。时,查找失败,返回-1。但在实际实现中,由于扩展了数组,如果最后。指向了扩展部分的某个位置,也需要返回-1或进行相应调整。:在返回结果之前,需要移除扩展部分的元素,恢复原数组。:首先,需要确定斐波那契数列中第一个>=数组长度的数。
2024-09-06 20:44:32
1143
原创 快速幂算法——求解大指数幂
快速幂算法(Fast Exponentiation)是一种高效的计算幂的方法,特别适用于计算形如 a^b的表达式,其中a 是底数,b 是指数,且 b 可能非常大。
2024-09-05 00:15:00
805
原创 Java如何计算一个数的阶乘末尾有多少个零?
文章有点长,请耐心看完~~~这个问题涉及到阶乘(factorial)的一个有趣特性,即阶乘结果末尾零的数量。要理解这一点,我们首先要知道什么情况下一个数的末尾会产生零。
2024-09-04 11:34:44
711
原创 error: local variables referenced from a lambda expression must be final or effectively final
在拉姆达表达式中操作外部定义的局部变量时报错,因为外部定义的局部变量flag不是常量。循环(也称为 "for-each" 循环)来遍历。中的条目(即键值对)。
2024-08-16 21:07:52
851
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅