202301-13 使用Python手工计算x的算数平方根,来自中国古人的数学智慧 代码 sqrt(x,w=20,Float=False)x为非负实数,允许科学计数法w是当sqrt(x)为无理数或结果的小数部分很长时的最大位数。默认w=20Float当Float=True输出浮点数,w设置如超出float精度则失效。默认输出字符串类型defsqrt(x,w=20,Float=False):ifx==0orx==1:returnstr(x*1.0)ifx<0:raiseValueError('x>=0')s,power=str(x),0t=s.find('e')ift!=-1:s=s.split('e')s[1]=int(... 继续阅读 >
202210-08 实现用python算法计算圆周率的小诀窍 目录一、圆周率的历史1、中国2、印度3、欧洲二、用python计算圆周率π【方法】【程序设计思路】【软件环境】【代码】【结果展示】【常见问题答疑】一、圆周率的历史1、中国魏晋时期,刘徽曾用使正多边形的边数逐渐增加去逼近圆周的方法(即「割圆术」),求得π的近似值3.1416。汉朝时,张衡得出π的平方除以16等于5/8,即π等于10的开方(约为3.162)。虽然这个值不太准确,但它简单易理解,所以也在亚洲风行了一阵。王蕃(229-267)发现了... 继续阅读 >
202110-12 python3实现常见的排序算法(示例代码) 冒泡排序冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。defmao(lst):foriinrange(len(lst)):#由于每一轮结束后,总一定有一个大的数排在后面#而且后面的数已经排好了#... 继续阅读 >
202109-09 详解如何用Python实现感知器算法 目录一、题目二、数学求解过程三、感知器算法原理及步骤四、python代码实现及结果一、题目二、数学求解过程该轮迭代分类结果全部正确,判别函数为g(x)=-2x1+1三、感知器算法原理及步骤四、python代码实现及结果(1)由数学求解过程可知:(2)程序运行结果(3)绘图结果'''20210610Julyer感知器'''importnumpyasnpimportmatplotlib.pyplotaspltdefget_zgxl(xn,a):'''获取增广向量:paramx:数组:parama... 继续阅读 >
202108-31 Python实现最短路径问题的方法 目录一、创建图二、问题来源三、Dijkstra算法四、Floyd算法五、代码测试一、创建图在开始之前,我们先创建一个图,使用邻接矩阵表示有向网:classGraph(object):"""以邻接矩阵为存储结构创建有向网"""def__init__(self,kind):#图的类型:无向图,有向图,无向网,有向网#kind:Undigraph,Digraph,Undinetwork,Dinetwork,self.kind=kind#顶点表self.vertexs=... 继续阅读 >
202108-08 Python实现机器学习算法的分类 Python算法的分类对葡萄酒数据集进行测试,由于数据集是多分类且数据的样本分布不平衡,所以直接对数据测试,效果不理想。所以使用SMOTE过采样对数据进行处理,对数据去重,去空,处理后数据达到均衡,然后进行测试,与之前测试相比,准确率提升较高。例如:决策树:Smote处理前:Smote处理后:fromtypingimportCounterfrommatplotlibimportcolors,markersimportnumpyasnpimportpandasaspdimportoperatorimportmatp... 继续阅读 >
202107-01 Python机器学习之KNN近邻算法 目录一、KNN概述二、使用Python导入数据三、numpy.array()四、实施KNN分类算法五、计算已知类别数据集中的点与当前点之间的距离六、完整代码七、数据处理、分析、测试八、鸢尾花数据测试九、RESULT一、KNN概述简单来说,K-近邻算法采用测量不同特征值之间的距离方法进行分类优点:精度高、对异常值不敏感、无数据输入假定缺点:计算复杂度高、空间复杂度高适用数据范围:数值型和标称2型工作原理:存在一个样本数据集合,也称为训... 继续阅读 >
202107-01 Python集成学习之Blending算法详解 目录一、前言二、Blending介绍三、Blending流程图四、案例一、前言普通机器学习:从训练数据中学习一个假设。集成方法:试图构建一组假设并将它们组合起来,集成学习是一种机器学习范式,多个学习器被训练来解决同一个问题。集成方法分类为:Bagging(并行训练):随机森林Boosting(串行训练):Adaboost;GBDT;XgBoostStacking:Blending:或者分类为串行集成方法和并行集成方法1.串行模型:通过基础模型之间的依赖,给错误分类样本... 继续阅读 >
202106-23 详解Python牛顿插值法 一、牛顿多项式拉格朗日多项式的公式不具备递推性,每个多项式需要单独构造。但很多时候我们需要从若干个逼近多项式选择一个。这个时候我们就需要一个具有递推关系的方法来构造——牛顿多项式这里的的a0,a1…等可以通过逐一带入点的值来求得。但是当项数多起来时,会发现式子变得很大,这个时候我们便要引入差商的概念(利用差分思想)具体见式子能更好理解这里在编程实现中我们可以推出相应的差商推导方程d(k,0)=y(k)d(k,j)=(d(k... 继续阅读 >
202105-25 Python自然语言处理之切分算法详解 一、前言我们需要分析某句话,就必须检测该条语句中的词语。一般来说,一句话肯定包含多个词语,它们互相重叠,具体输出哪一个由自然语言的切分算法决定。常用的切分算法有完全切分、正向最长匹配、逆向最长匹配以及双向最长匹配。本篇博文将一一介绍这些常用的切分算法。二、完全切分完全切分是指,找出一段文本中的所有单词。不考虑效率的话,完全切分算法其实非常简单。只要遍历文本中的连续序列,查询该序列是否在词典中即可。... 继续阅读 >
202105-23 python入门之算法学习 前言参考学习书籍:《算法图解》[美]AdityaBhargava,袁国忠(译)北京人民邮电出版社,2017二分查找binary_search实现二分查找的python代码如下:defbinary_search(list,item):low=0#最低位索引位置为0high=len(list)-1#最高位索引位置为总长度-1whilelow<=high:mid=(low+high)//2#检查中间的元素,书上是一条斜杠,我试过加两条斜杠才行guess=list[mid]#python自动圆整... 继续阅读 >
202010-10 Python实现七个基本算法的实例代码 1.顺序查找当数据存储在诸如列表的集合中时,我们说这些数据具有线性或顺序关系。每个数据元素都存储在相对于其他数据元素的位置。由于这些索引值是有序的,我们可以按顺序访问它们。这个过程产实现的搜索即为顺序查找。顺序查找原理剖析:从列表中的第一个元素开始,我们按照基本的顺序排序,简单地从一个元素移动到另一个元素,直到找到我们正在寻找的元素或遍历完整个列表。如果我们遍历完整个列表,则说明正在搜索的元素不... 继续阅读 >