
python学习笔记
文章平均质量分 90
西猫雷婶
专注数学物理方程数值仿真,CAE软件二次开发爱好者
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
scikit-learn/sklearn学习|线性回归解读
本文介绍了使用sklearn进行线性回归建模的完整流程。首先导入必要的模块(matplotlib、numpy、sklearn等),然后加载糖尿病数据集并处理数据特征,将数据划分为训练集和测试集。接着创建线性回归模型,用训练集拟合模型,并对测试集进行预测。最后输出回归系数、均方误差和决定系数等评估指标,并绘制预测值与实际值的对比图。通过这个实例,展示了如何使用sklearn进行数据预处理、模型训练和评估,为后续SVM等算法的学习打下基础。原创 2025-08-10 16:02:32 · 698 阅读 · 0 评论 -
python学智能算法(三十六)|SVM-拉格朗日函数求解(中)-软边界
本文详细推导了软间隔SVM的拉格朗日方程求解过程。首先建立包含松弛变量ξ的拉格朗日函数,然后通过分别对w、b和ξ_i求偏导,得到关键表达式:w可由样本线性表示、α与y的加权和为零、以及α_i的取值范围0≤α_i≤C。将这些结果代入原方程后,最终简化为仅含α_i的优化问题。整个推导过程清晰地展示了软间隔SVM的数学基础,为后续求解奠定了基础。原创 2025-08-09 22:10:24 · 1292 阅读 · 1 评论 -
python学智能算法(三十五)|SVM-软边界拉格朗日方程乘子非负性理解
本文讨论了SVM软边界模型中拉格朗日乘子非负性的数学原理。在构建拉格朗日方程时,通过分析KKT条件的要求,解释了为什么必须设置乘子α_i≥0和μ_i≥0。这种设置源于对距离函数和松弛变量非负性的约束处理,确保优化问题满足KKT条件。文章详细阐述了乘子非负性与约束条件之间的数学对应关系,说明了这种设置的必要性和合理性。原创 2025-08-08 22:00:02 · 1030 阅读 · 0 评论 -
python学智能算法(三十四)|SVM-KKT条件回顾
本文回顾了KKT条件在约束优化问题中的应用。KKT条件适用于目标函数最小化、带不等式和等式约束的优化问题,要求函数连续可微且满足约束规范条件。关键内容包括:1)梯度平衡条件,即目标函数与约束函数的梯度通过非负乘子线性组合为零;2)互补松弛条件,不等式约束乘子与约束函数值的乘积为零。文章通过图示说明了当约束为严格不等式时乘子为零,在约束边界时满足梯度平衡条件。KKT条件为判断约束优化问题极值点提供了必要准则。原创 2025-08-06 22:15:50 · 867 阅读 · 1 评论 -
python学智能算法(三十三)|SVM-构建软边界拉格朗日方程
本文在SVM软边界模型基础上,构建了对应的拉格朗日函数。首先分析了惩罚系数C>0的必要性:C>0时惩罚项与违反程度成正比,C≤0会导致约束失效或违反。然后引入拉格朗日乘子α和μ,分别对应距离函数和松弛变量约束,最终构建出完整的拉格朗日函数表达式。该函数包含距离最大化项、惩罚项以及两个约束条件的拉格朗日乘子项,为后续求解SVM软边界问题奠定了基础。原创 2025-08-05 21:06:17 · 791 阅读 · 0 评论 -
python学智能算法(三十二)|SVM-软边界理解
本文介绍了支持向量机(SVM)中软边界的定义与应用。当数据不完全线性可分时,通过引入松弛变量ξ_i来容忍分类错误,构建软边界优化目标函数:min(1/2||w||^2 + C∑ξ_i)。其中第一项保持最大间隔,第二项为错误惩罚项,常数C统一控制模型对错误的容忍度。这种处理方法简化了公式结构,便于构建拉格朗日函数和参数调优,使SVM能更好地处理实际应用中的非线性可分数据。原创 2025-08-05 06:50:31 · 885 阅读 · 0 评论 -
python学智能算法(三十一)|SVM-Slater条件理解
学习了拉格朗日函数、对偶函数、对偶问题、仿射函数、slater条件和它们之间的关联关系。原创 2025-08-03 18:56:14 · 790 阅读 · 0 评论 -
python学智能算法(三十)|SVM-KKT条件的数学理解
解析了KKT条件在约束优化问题中的应用。首先定义了带约束的最小优化问题,包括目标函数、不等式约束和等式约束。通过构造拉格朗日函数,详细阐述了KKT条件的五个关键要素:梯度为零条件、约束可行性(不等式和等式)、拉格朗日乘子非负性以及互补松弛条件。特别解释了乘子非负性的物理意义,将其比作阻止解进入非可行域的"推力",与目标函数的"拉力"形成平衡。最后指出互补松弛条件包含两种情况:约束不起作用时乘子为零,约束起作用时乘子非负。这些条件共同构成了约束优化问题最优解的判定标准。原创 2025-08-01 22:29:18 · 1135 阅读 · 0 评论 -
python学智能算法(二十九)|SVM-拉格朗日函数求解中-KKT条件理解
本文介绍了KKT条件在带约束优化问题中的应用原理。通过"力的平衡"类比,阐释了KKT五大规则:目标函数梯度与约束梯度加权和平衡(拉格朗日乘子权重);不等式约束条件的边界限制;拉格朗日乘子非负性保证方向正确;互补松弛性确保未激活约束不影响;等式约束严格成立。这些条件共同判断优化问题中既满足约束又无法改进的局部最优解。文章以直观的物理类比帮助理解数学优化条件,为后续应用奠定理论基础。原创 2025-07-31 22:25:28 · 711 阅读 · 0 评论 -
python学智能算法(二十八)|SVM-拉格朗日函数求解中-KKT条件
本文探讨了支持向量机(SVM)中的KKT条件应用。通过分析拉格朗日函数,证明了SVM优化问题属于凸优化问题,具有抛物线型目标函数和线性约束条件。重点阐述了KKT条件的四个组成部分:平稳性条件(梯度为0)、互补松弛条件(拉格朗日乘子与约束关系)、原问题可行条件(分类约束)和对偶可行条件(乘子非负)。KKT条件不仅是判断最优解存在的核心准则,还揭示了样本对超平面的影响机制:非零乘子对应支持向量。这些理论为SVM的最优分割超平面求解提供了数学基础。原创 2025-07-23 22:05:02 · 875 阅读 · 0 评论 -
python学智能算法(二十七)|SVM-拉格朗日函数求解上
本文介绍了支持向量机(SVM)拉格朗日函数的求解过程。首先给出原始的拉格朗日函数表达式,然后分别对权重向量w和偏置b求导并令导数为零,得到w的表达式和约束条件。将这些结果代回原函数后,通过展开和简化,最终得到优化后的拉格朗日函数表达式:L(α)=∑αi-1/2∑αiαjyiyjxiTxj。这一过程为后续求解SVM模型奠定了基础。原创 2025-07-21 11:26:27 · 719 阅读 · 0 评论 -
python学智能算法(二十六)|SVM-拉格朗日函数构造
本文介绍了如何运用拉格朗日乘数法求解SVM中的最佳超平面问题。首先将最小函数距离F调整为1,通过对比不同超平面调整后的权重矩阵w,选择使w最小的超平面作为最优解。在此基础上构建约束函数g,最终构造拉格朗日函数L(w,b,α),其中包含目标函数1/2||w||²和约束条件项。该函数为每个约束条件分配独立因子αi,确保所有约束同时满足以获得全局最优解。原创 2025-07-20 19:28:19 · 884 阅读 · 0 评论 -
python学智能算法(二十五)|SVM-拉格朗日乘数法理解
本文梳理了支持向量机中最佳超平面求解的核心概念与拉格朗日乘数法的应用。首先介绍了函数距离F与几何距离δ的关系(δ=F/||w||),指出寻找最佳超平面就是在所有最小几何距离中选取最大值的过程。通过将函数距离设为1,将问题转化为最小化||w||²/2的距离函数f。接着详细阐释了拉格朗日乘数法的原理:当目标函数f在约束条件g下取得极值时,其梯度向量平行(∇f=λ∇g)。通过分解梯度方向,说明了极值点处f在约束切向上无分量的几何意义,并辅以等高线图示帮助理解这一关键数学工具在优化问题中的应用。原创 2025-07-19 16:58:54 · 1010 阅读 · 0 评论 -
python学智能算法(二十四)|SVM-最优化几何距离的理解
本文回顾了几何距离δ的定义及其与函数距离F的关系,指出两者仅相差权重矩阵w的范数(δ=F/||w||)。通过调整w和b使F=1,可将最优超平面问题转化为最小化||w||的问题。最终提出将寻找最优超平面转化为求解最小化1/2||w||^2的优化问题。这一过程展示了从几何距离到优化问题的转化思路。原创 2025-07-18 21:23:20 · 1032 阅读 · 0 评论 -
python学智能算法(二十三)|SVM-几何距离
本文介绍了点与超平面距离的计算方法。首先回顾了基于函数间隔F的计算公式及Python实现,发现当权重向量w和偏置量b等比缩放时,F值也会等比变化,这影响了距离计算的稳定性。为此,文章提出了几何距离δ的计算方法,通过将权重向量归一化为单位向量,消除了比例变化的影响。文中给出了相应的Python代码实现,验证了在w和b等比缩放时,几何距离δ能保持稳定不变的结果。最终总结了几何距离的定义和计算方法,解决了函数间隔F的尺度敏感性问题。原创 2025-07-18 17:24:54 · 1302 阅读 · 0 评论 -
python学智能算法(二十二)|SVM-点与超平面的距离
本文探讨了点与超平面距离的计算方法。首先回顾超平面表达式w·x+b=0,定义β=w·x+b作为距离度量。指出直接使用β会出现分类错误,提出改进判别式F=min(y_i(w·x_i+b))。通过实例分析,当F>0时分类正确,F<0时分类错误。该方法能有效避免将最近点误判为最远点的问题,为SVM算法中选择最优分割超平面提供了理论基础。原创 2025-07-17 22:42:43 · 747 阅读 · 0 评论 -
python学智能算法(二十一)|SVM-感知机算法代码解读
本文详细解读了基于感知机算法实现数据分类的Python代码实例。整个案例完整演示了感知机算法从数据准备、模型训练到结果可视化的全过程,为理解这一经典机器学习算法提供了实践参考。原创 2025-07-16 18:41:52 · 999 阅读 · 0 评论 -
python学智能算法(二十)|SVM基础概念-感知机算法及代码
本文介绍了感知机的基本概念和实现方法。感知机是模拟生物神经网络的数学模型,当输入信号达到阈值时输出感应信号。文章展示了使用numpy的sign()函数实现感知机模型,并提供了一个完整的感知机分类项目代码示例。该代码通过随机权重初始化、预测函数和权重更新实现了二分类任务,最终可视化展示了分类结果和决策边界。项目使用了sklearn生成线性可分数据集,通过调整权重将样本分为两类,并用不同颜色标记分类区域。原创 2025-07-15 23:29:08 · 437 阅读 · 0 评论 -
python学智能算法(十九)|SVM基础概念-超平面
本文介绍了用向量点积表示超平面的基础知识。首先回顾了向量基本概念和二元/三元线性方程表达的几何形式,指出超平面是实现分类的点、线或面。文章详细推导了将直线方程y=kx+b转换为向量点积形式W·X+b=0的过程,并扩展到任意维度。进一步通过增加x0=1和w0=b构造增强向量,简化为W̄·X̄=0的简洁表达。这些内容为理解支持向量机的超平面分类原理奠定了基础。原创 2025-07-15 15:09:06 · 342 阅读 · 0 评论 -
python学智能算法(十八)|SVM基础概念-向量点积
本文介绍了向量点积的概念与计算方法。首先回顾了向量基础定义,随后重点阐述了二维及多维向量点积的通用公式u·v=∑(xiyi),并展示了使用Python numpy模块实现点积运算的代码示例。通过定义点积函数,演示了如何计算两个向量[3,5,8]和[5,6,10]的点积结果为125。文章完整呈现了向量点积的理论推导与编程实现过程,为读者理解向量运算提供了实用参考。原创 2025-07-14 22:43:52 · 279 阅读 · 0 评论 -
python学智能算法(十七)|SVM基础概念-向量的值和方向
本文介绍了SVM算法中关于向量的基础知识。向量可以理解为坐标轴上有方向的箭头,用坐标表示。向量的值(L2范数)计算公式为√(Σx_i²),可通过numpy的linalg.norm函数计算。方向向量是将向量除以自身范数得到的新向量,其值为1。文章通过具体示例(3,4)向量,展示了如何用Python计算向量值和方向向量。这些内容是理解SVM算法的重要数学基础。原创 2025-07-14 16:39:34 · 591 阅读 · 0 评论 -
python学智能算法(十六)|机器学习支持向量机简单示例
本文介绍了支持向量机(SVM)算法的一个Python实现示例。首先使用sklearn中的鸢尾花数据集,选取前两类线性可分样本进行训练测试集划分,并进行数据标准化处理。然后详细定义了一个SVM类,包括核函数选择、参数初始化、SMO优化算法实现以及预测方法。通过训练模型并评估测试集准确率,验证了算法的有效性。最后深入解析了sklearn中StandardScaler标准化函数的计算过程,对比了手动标准化与transform方法的结果一致性。该示例为理解SVM原理及其实现提供了清晰的技术路线。原创 2025-06-25 22:02:49 · 875 阅读 · 0 评论 -
python学智能算法(十五)|机器学习朴素贝叶斯方法进阶-CountVectorizer多文本处理
使用CountVectorizer进行多文本处理的方法。通过将多个文本输入到CountVectorizer中,可以生成词汇表和对应的词频向量。代码示例展示了如何对5个关于Python和数据科学的句子进行向量化处理,输出包括稀疏矩阵表示(显示每个词在文本中的位置和出现次数)、按字母排序的词汇表(共21个词)以及完整的向量表示(每行对应一个文本,包含21维的词频数据)。文章还解释了输出数据的含义,如"(0,14)1"表示第0行文本中第14号词(Python)出现1次。原创 2025-06-21 11:48:31 · 619 阅读 · 0 评论 -
python学智能算法(十四)|机器学习朴素贝叶斯方法进阶-CountVectorizer文本处理简单测试
本文介绍了使用sklearn库中的CountVectorizer进行文本向量化的基础操作原创 2025-06-19 22:12:55 · 1221 阅读 · 0 评论 -
python学智能算法(十三)|机器学习朴素贝叶斯方法进阶-简单二元分类
这篇文章介绍了朴素贝叶斯分类器在二元分类问题中的实现方法。主要内容包括: 理论基础:讲解了先验概率P(y)和条件概率P(xj|y)的计算公式,其中条件概率使用了拉普拉斯平滑技术来避免零概率问题。 对数后验概率的计算:详细说明了如何将先验概率和条件概率结合起来计算对数后验概率,并给出了具体示例。 Python实现:展示了一个NaiveBayes类的完整代码实现,包括: 初始化函数(init) 训练函数(fit) - 计算先验概率和条件概率 预测函数(predict) - 使用对数后验概率进行分类预测 代码特点原创 2025-06-19 09:18:43 · 1012 阅读 · 0 评论 -
pytorch基本运算-梯度运算:requires_grad_(True)和backward()
本文介绍了使用PyTorch进行自动微分和梯度计算的基本方法。主要内容包括:1)通过requires_grad_()标记需要求梯度的变量;2)定义函数(如2x²和sum函数)并使用backward()方法计算梯度;3)梯度清零操作的重要性,避免梯度叠加影响计算结果。文章通过具体代码示例展示了PyTorch的自动微分机制,包括乘法(MulBackward)和加法(SumBackward)的反向传播过程,并对比了梯度清零前后的不同计算结果。核心结论是:正确使用PyTorch的梯度计算功能需要变量标定、函数定义、原创 2025-06-14 12:02:15 · 860 阅读 · 0 评论 -
pytorch基本运算-导数和f-string
本文介绍了Python中f-string字符串格式化方法和PyTorch导数计算的基础应用。文章首先展示了f-string的使用方式,包括常规输出和精确控制小数位数输出的技巧。随后讲解了导数计算的基本原理,通过定义函数f(x)=3x²-3x及其数值导数计算,演示了随着步长h减小趋近于0时导数值的收敛过程。最后讨论了浮点数精度限制对计算结果的影响,指出当h过小时会出现数值计算误差。全文既涵盖了f-string的实用技巧,又通过具体案例展示了PyTorch中导数计算的基本实现方法。原创 2025-06-03 21:47:46 · 903 阅读 · 0 评论 -
pytorch基本运算-范数
本文介绍了PyTorch中L1和L2范数的计算方法。L2范数计算向量元素平方和的平方根,而L1范数则是向量元素绝对值的总和。文章通过代码示例展示了如何用torch.norm()计算L2范数,用torch.abs().sum()计算L1范数,并扩展到矩阵范数计算。在5×5全1矩阵的案例中验证了计算结果,其中L2范数的平方等于矩阵所有元素平方和,L1范数等于所有元素绝对值之和。这些范数计算在深度学习中具有重要意义。原创 2025-06-02 22:47:06 · 1218 阅读 · 0 评论 -
深度学习|pytorch基本运算-hadamard积、点积和矩阵乘法
PyTorch张量运算包含Hadamard积、点积和矩阵乘法三种主要方式:1) Hadamard积通过"*"运算符实现元素对位相乘;2) 点积先进行Hadamard积再使用torch.sum()求和;3) 矩阵乘法用torch.mm()实现线性代数中的标准矩阵乘法。这三种运算分别对应不同的数学概念和PyTorch实现方法,在深度学习中具有重要作用。文中通过代码示例展示了每种运算的具体实现方式和输出效果。原创 2025-06-02 16:54:45 · 648 阅读 · 0 评论 -
深度学习|pytorch基本运算-乘除法和幂运算
本文详细介绍了PyTorch张量的乘除法运算和幂运算操作。通过代码示例展示了如何使用"*"、"/"运算符进行对位乘除运算,以及"**"运算符进行幂运算,均遵循张量对位运算法则。特别探讨了幂运算的广播机制,当张量大小不一致时,PyTorch会自动进行广播后再执行运算。实验结果表明,这些运算都能正确保持对位关系。文章最后总结了PyTorch张量基本运算的完整过程,为深度学习中的张量操作提供了实用参考。原创 2025-06-01 16:22:28 · 552 阅读 · 0 评论 -
深度学习|pytorch基本运算-广播失效
本文探讨了PyTorch张量广播运算的失效场景及其原理。通过对比行列维度匹配的案例(3×3矩阵成功广播)与行列不匹配的案例(3×4与3×3、3×4与4×1矩阵),分析广播失败的原因:当两个张量在任一非单例维度上尺寸不一致时,既无法选择性复制也无法整体扩展,导致RuntimeError。特别指出单列/行向量仍可实现广播(如3×4矩阵与3×1列向量相加),而不同行列数的矩阵(如3×4与4×1)则因维度完全不匹配而失效。原创 2025-05-31 20:39:39 · 864 阅读 · 0 评论 -
深度学习|pytorch基本运算
本文介绍了PyTorch的基本运算操作,包括随机张量生成(torch.randn)、多维张量创建(torch.tensor)、张量变形(reshape)、加减运算以及广播机制。文章着重说明各函数的常用参数和使用方法,并通过具体代码示例演示运算效果。作为PyTorch入门指南,本文旨在帮助初学者快速掌握张量基础操作,同时推荐读者参考官方文档深入学习。所有示例代码均附有运行结果截图,直观展示不同运算的实际效果。原创 2025-05-30 11:59:41 · 864 阅读 · 0 评论 -
调皮用法|python语言中的self参数
本文介绍了Python中self参数的使用及其灵活性。self是类方法中的第一个参数,用于引用类的实例。通过定义类SelfTester,展示了如何在初始化、访问和修改实例属性时使用self。文章还演示了如何在类的一个方法中调用另一个方法,以及如何通过实例名直接操作实例属性。最后,文章指出self只是一个约定俗成的名称,可以替换为其他非Python关键字,功能不变。通过这些示例,读者可以更好地理解self在Python类中的作用和灵活性。原创 2025-05-20 14:50:49 · 808 阅读 · 0 评论 -
python学智能算法(十一)|机器学习逻辑回归深入(Logistic回归)
通过本次学习,对逻辑回归算法的代码进行了详细分析。原创 2025-05-07 11:10:49 · 202 阅读 · 0 评论 -
python学智能算法(十)|机器学习逻辑回归(Logistic回归)
学习了逻辑回归的基础知识。原创 2025-04-09 16:53:35 · 1098 阅读 · 0 评论 -
python学智能算法(九)|决策树深入理解
对决策树程序进一步思考,深入理解内涵。原创 2025-04-08 16:03:56 · 1122 阅读 · 0 评论 -
python学opencv|(七十六)最大类间方差法
学习了最大类间方差法的基本知识。原创 2025-04-01 16:52:21 · 1022 阅读 · 0 评论 -
python学智能算法(八)|决策树
学习了决策树的基础知识。原创 2025-03-16 23:16:26 · 1676 阅读 · 5 评论 -
python学智能算法(七)|KNN邻近算法
学习了KNN算法的基本原理,使用python通过KNN算法实现了对鸢尾花的分类。原创 2025-03-11 23:07:36 · 882 阅读 · 0 评论 -
神经网络|(十五)|霍普菲尔德神经网络-Storkey 训练
探索了霍普菲尔德神经网络的基本知识,基于python语言,调用Storkey方法对霍普菲尔德神经网络算法进行了初步训练和测试。原创 2025-03-08 22:01:59 · 1313 阅读 · 0 评论