![](https://img-blog.csdnimg.cn/915890e7853b46e6b4c76d31e4b517fb.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Python
文章平均质量分 75
Python
对许
这个作者很懒,什么都没留下…
展开
-
URL中的中文编码与解码
URL在传输时只能使用ACSII码表示,且ASCII码只有128位,无法存储汉字等字符,因此对于这些非ASCII码字符需要进行编码处理,以保证URL的完整性。可用于URL中的中文编码与解码。原创 2024-07-30 12:22:43 · 355 阅读 · 0 评论 -
将两个List的交集按原来List顺序排序
Python将两个List的交集结果按原来List元素的顺序排序。原创 2024-07-16 10:22:26 · 118 阅读 · 0 评论 -
Python提取视频文案
函数可能不会在所有音频文件上工作,因为它依赖于云服务或本地语音识别引擎的准确性和性能。对于特定的应用,可能需要对音频进行预处理,例如降噪或调整录音条件以提高识别准确率。其中主要涉及到两个过程:视频转音频和音频转文字,分别对应到两个第三方库。然而,有时我们需要从视频中提取语音并转换为文本,以用于文本分析和机器学习训练。是谷歌提供的音频转文字API(Google Cloud Speech-to-Text API)综上所述,视频文案的提取分为两步:视频转音频、音频转文字。方法将音频转换为文字。原创 2024-07-08 22:17:38 · 621 阅读 · 0 评论 -
Python冒泡排序
冒泡排序的过程:从第一个值开始,每取一个值与剩余后面的每个值两两比较,如果后面的值比当前值大,就交换它们的位置。原创 2024-07-03 11:07:22 · 159 阅读 · 0 评论 -
Python列表函数append()和extend()的区别
【代码】Python列表函数append()和extend()的区别。原创 2024-06-26 23:08:51 · 368 阅读 · 0 评论 -
Scikit-Learn梯度提升决策树(GBDT)
梯度提升决策树(Gradient Boosting Decision Tree,GBDT)是一种迭代的决策树算法,它通过构造一组弱学习器(决策树),并把多颗决策树的结果累加起来作为最终的预测输出。在每一轮迭代中,GBDT都会训练一棵新的决策树,目标是减少上一轮模型的残差。Boosting的基本思路是将基分类器层层叠加,每一层在训练的时候,对前一层基分类器分错的样本,给予更高的权重。负梯度方向是梯度下降最快的方向。GBDT的核心点在于不断迭代,每一轮迭代都尝试修正上一轮模型的错误,逐渐提高模型的预测性能。原创 2024-06-20 16:16:25 · 1212 阅读 · 0 评论 -
Scikit-Learn支持向量机回归
SVR的目标是找到一个函数,使得大部分数据点都落在间隔内,并且使得落在间隔之外的数据点的预测误差最小化,这通常通过优化算法(如梯度下降)来实现。对于这样的问题,解决的方案是将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分,然后再运用SVM求解。如果我们要处理的分类问题更加复杂,甚至不能像上面一样近似线性可分,这种情况下找到的超平面分错的程度太高,是不可接受的。SVM是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器,他的学习策略就是间隔最大化。原创 2024-06-18 16:22:00 · 1168 阅读 · 0 评论 -
Python中的np.setdiff1d()函数
找出序列1在序列2中的差异,并返回序列1中不在序列2中的元素。函数可用于找出两个序列集合中元素的差异。原创 2024-06-17 15:26:34 · 263 阅读 · 0 评论 -
Python序列切片中的双冒号[::]
【代码】Python序列切片中的双冒号[::]原创 2024-06-17 14:31:01 · 307 阅读 · 0 评论 -
模型评估指标(三)
准确率(Accuracy):适用于正负样本数量相差不大的情况精确率/查准率(Precision):注重准,适用于正负样本差异很大的情况,不能用于抽样情况下的效果评估召回率/查全率(Recall):注重全,适用于正负样本差异很大的情况,不受抽样影响F1分数:描述了精准率和召回率的关系,在准与全之间平衡ROC:对正负样本不平衡的数据集不敏感AUC:计算与排序有关,因此对排序敏感,对预测分数不敏感。原创 2024-06-06 15:32:00 · 786 阅读 · 0 评论 -
模型评估指标(二)
例如,发病率为0.1%的医疗场景下,如果只追求准确率,模型可以把所有人判定为没有病的正常人,准确率高达99.9%,但这个模型实际是不可用的。它是一个表格矩阵,习惯上,通常矩阵的行表示实际的类别标签,矩阵的列表示模型预测的类别标签。但是我们无法提前获取未知的样本,因此我们会基于已有的数据进行切分来完成模型训练和评估,借助于切分出的测试数据进行评估,可以很好地判定模型状态(过拟合/欠拟合),进而迭代优化。精确率(Precision)又称查准率,表示在模型预测为正例的样本中,真正为正例的样本所占的比例。原创 2024-06-05 11:20:59 · 725 阅读 · 0 评论 -
Scikit-Learn随机森林分类
在随机森林中,集成模型中的每棵树构建时的样本都是由训练集经过随机有放回抽样自助式采样法(Bootstrap Sampling)得来的另外,在构建树的过程中进行节点划分时,选择的划分点是基于所有特征中的随机子集的最佳划分点随机森林的随机性主要体现在两个方面:一是决策树训练样本的随机选取,二是决策树节点划分属性特征的随机选取这两个随机性的目的是降低森林估计器的方差。事实上,单个决策树通常表现出很高的方差,并且往往会过拟合。原创 2024-06-03 17:49:30 · 1287 阅读 · 0 评论 -
Scikit-Learn随机森林回归
随机森林是一种由决策树构成的(并行)集成算法,属于Bagging类型,随机森林通过组合多个弱分类器,最终结果通过投票或取均值,使得整体模型的结果具有较高的精确度和泛化性能,同时也有很好的稳定性,因此广泛应用在各种业务场景中。随机森林有如此优良的表现,主要归功于随机和森林。Bagging方法是在自助采样基础上构建的,上述的采样过程我们可以重复T次,采样出T个包含m个样本的采样集,然后基于每个采样集训练出一个基学习器,然后将这些基学习器进行结合。个体学习器代表的是单个学习器,集成学习代表的是多个学习器的结合。原创 2024-05-28 17:44:06 · 1236 阅读 · 0 评论 -
Sklearn模型保存与加载
在实际应用中,训练一个模型需要花费很多时间。为了方便使用,可以将训练好的模型导出到磁盘上,在使用的时候,直接加载使用即可。模型导出的过程称为对象序列化,而加载还原的过程称为反序列。(二进制协议)模块主要用于Python对象的序列化和反序列化,及以前的版本中,在最新的版本中,该函数已被弃用改为直接导入。是Sklearn自带的一个工具。可以同时处理文件对象和字符串文件名。要求将文件对象作为参数传递,而。,尤其是当数据量较大的时候。函数存在于Sklearn。提供了更简单的工作流程。原创 2024-05-24 17:57:16 · 400 阅读 · 0 评论 -
Sklearn文本特征提取
与英文文档不同,中文文档的词汇之间没有像英文那样的自然空格分割,因此,需要额外处理,要将中文文档转换为类似英文文档中自然空格分割的格式。通过对比,我们发现,在计算中文文档TF-IDF时,需要先对文档进行特别处理,将文档处理成类似英文的自然空格分割形式,以方便应用TF-IDF矢量化器。TfidfVectorizer将原始文本转化为TF-IDF特征矩阵,从而为后续的文本相似度计算奠定基础。同样,这些特征词汇中不包含“我”、“是”、“在”和“爱”,你能解释这是为什么吗?不知道你有没有发现,这些特征词汇中不包含。原创 2024-05-23 17:51:39 · 670 阅读 · 0 评论 -
Python中的字符串编码与解码
字符串(str)=> 二进制(bytes)/,它们之间的转换关系可以通过编码(例如,Requests模块中的。类型的字符串,这时候就需要转换。:二进制(bytes)/=> 字符串(str)原创 2024-05-22 17:15:03 · 291 阅读 · 0 评论 -
Scikit-Learn朴素贝叶斯
朴素贝叶斯把类似敲击声这样的特征概率化,构成一个西瓜的品质向量以及对应的好瓜/坏瓜标签,训练出一个标准的基于统计概率的好坏瓜模型,这些模型都是各个特征概率构成的。一般来说,纹理清晰的西瓜是好瓜的概率更大,假设是75%,如果把纹理清晰当作一种结果,然后去推测好瓜的概率,那么这个概率就被称为后验概率。朴素贝叶斯算法的核心思想是通过特征考察标签概率来预测分类,即对于给定的待分类样本,求解在此样本出现的条件下各个类别出现的概率,哪个最大,就认为此待分类样本属于哪个类别。先验概率是指事件发生前的预判概率。原创 2024-05-21 16:47:25 · 1100 阅读 · 1 评论 -
决策树剪枝
预剪枝:过拟合风险降低,欠拟合风险增加后剪枝:过拟合风险降低,欠拟合风险基本不变泛化性能:后剪枝通常优于预剪枝预剪枝:训练时间开销降低,测试时间开销降低后剪枝:训练时间开销增加,测试时间开销降低时间开销:后剪枝通常小于预剪枝。原创 2024-05-17 17:59:35 · 673 阅读 · 0 评论 -
决策树最优属性选择
对比不同属性,我们发现纹理属性的信息增益最大,因此,纹理属性被选为划分属性:清晰{1,2,3,4,5,6,8,10,15}、稍糊{7,9,13,14,17}、模糊{11,12,16}从上图可以看出根蒂、脐部、触感3个属性均取得了最大的信息增益,此时可任选其一作为划分属性。同理,对每个分支结点进行类似操作,即可得到最终的决策树。本文以西瓜数据集为例演示决策树使用信息增益选择最优划分属性的过程。原创 2024-05-16 17:38:59 · 283 阅读 · 0 评论 -
Scikit-Learn决策树
原因是,当特征的取值较多时,根据此特征划分更容易得到纯度更高的子集,因此划分之后的熵更低,由于划分前的熵是一定的,因此信息增益更大,因此信息增益比较偏向取值较多的特征。如果要同时调节多个模型参数,例如,模型有两个参数,第一个参数有3种取值可能,第二个参数有4种取值可能,则所有的可能性列举出来可以表示成3*4的网格,遍历的过程像是在网格(Grid)中搜索(Search),因此该方法被称为网格搜索。由图可见,在不加限制的情况下,一棵决策树会生长到所有的叶子都是纯净的或者或者没有更多的特征可用为止。原创 2024-05-10 15:20:34 · 256 阅读 · 0 评论 -
Scikit-Learn回归树
决策树,顾名思义,是一种树形结构。决策树使用层层推理来实现最终的分类。根节点:包含样本的全集内部节点:对应一个特征属性的测试叶节点:对应一种类别(决策的结果)这是一种基于If-Then规则的有监督学习算法,决策树的这些规则通过训练得到,而不是人工制定的决策树的目标是创建一个模型,通过学习从数据特性中推断出的简单决策规则来预测目标变量的值预测时,在树的内部节点处用某一属性值进行判断,根据判断结果决定进入哪个分支节点,直到到达叶节点处,得到分类结果。原创 2024-04-30 17:34:36 · 1511 阅读 · 0 评论 -
哪些情况下左联接的数据量比左表大?
本文主要探讨SQL和Pandas左连接数据量比左表大的问题。在某些情况下,执行左连接时,SQL和Pandas输出的结果会比左表数据量大。这是为什么呢?左连接是关系型数据库中最常见的连接之一。它的作用是从左表中取出所有的行,以及与右表匹配的所有行。如果某个行在右表中没有匹配到,则会在输出结果中以NULL的形式呈现1)左表与右表为一对多或多对多2)左表与右表关联键都存在空值NULL1)视情景删除或聚合右表中重复关联键的数据2)过滤表中关联键值为NULL的行。原创 2024-04-26 11:15:01 · 676 阅读 · 1 评论 -
Scikit-Learn支持向量机分类
在机器学习中,支持向量机(Support Vector Machine,SVM)算法既可以用于回归问题(SVR),也可以用于分类问题(SVC)支持向量机是一种经典的监督学习算法,通常用于分类问题。SVM(分类)在机器学习知识结构中的位置如下:SVM的核心思想是将分类问题转化为寻找分类超平面的问题,并通过最大化分类边界点(支持向量)到分类平面的距离(间隔)来实现分类如图所示,左图展示了三种可能的线性分类器的决策边界,虚线所代表的模型表现非常糟糕,甚至都无法正确实现分类;原创 2024-04-19 17:52:27 · 1767 阅读 · 0 评论 -
如何发布自己的Python库?
为什么我们要发布自己的Python库?如果你想让你的Python代码,通过的方式供所有人下载,那就需要将代码上传到PyPi上,这样才能让所有人使用那么,如何发布一个Python库呢?本文将通过具体实践为你提供一份简明的指南。原创 2024-04-14 18:35:36 · 638 阅读 · 0 评论 -
泰坦尼克号幸存者预测
在上篇泰坦尼克号幸存者数据分析中,我们对泰坦尼克号的幸存者做了数据分析,通过性别、年龄、船舱等级等不同维度对幸存者进行了分类统计,回答了哪些人可能成为幸存者本文我们将对泰坦尼克号数据集应用特征工程、训练分类模型并对幸存者进行预测特征工程是机器学习工作流程中重要的组成部分,它是将原始数据转化成模型可理解的形式的过程。如何基于给定数据来发挥更大的数据价值就是特征工程要做的事情在2016年的一项调查中发现,数据科学家的工作中,有超过80%的时间都在获取、清洗和组织数据;构造机器学习流水线的时间不到20%。原创 2024-04-12 17:38:35 · 1126 阅读 · 0 评论 -
Pandas分箱/离散化cut()与qcut()的区别
例如,如果对年龄进行分箱,0-1岁是婴儿,1-12岁是孩子,12-18岁是青少年,18-60岁是成年人,60岁以上是老年人。默认情况下,它被设置为False,因此,当Pandas看到我们传递的列表时,它将把2008年排除在计算之外。时,我们告诉Pandas将数据列切成5个相等的量级,即0-20%,20-40%,40-60%,60-80%和80-100%桶/箱。可以看到,分箱的边缘是不等宽的,因为它要容纳每个桶1/3的值,因此它要自己计算每个箱子的宽度来实现这一目标。边缘的间距大小是相等的,每个。原创 2024-04-07 15:20:46 · 1805 阅读 · 0 评论 -
泰坦尼克号幸存者数据分析
这是一艘号称当时世界上最大的邮轮,船上的人年龄各异,背景不同,有贵族豪门,也有平民旅人,邮轮撞击冰山后,船上的人马上采取措施安排救生艇转移人员,从本次海难中存活下来的,也就是幸存者。:各等级船舱中男性乘客多于女性乘客,但是女性乘客的获救比例都高于男性乘客。不同等级船舱的女性乘客的获救率高于男性,这可能是女士优先的原因。:小孩、青少年、成年人、老年人的获救比例依次从高到低,小孩的获救比例最高,老年人的获救比例最低。船舱等级对于乘客的获救率存在较大的影响。不同等级船舱的男性乘客与女性乘客的获救率。原创 2024-04-03 17:49:28 · 3541 阅读 · 0 评论 -
Scikit-Learn K均值聚类
K-Means算法通过把样本分离成n个具有相同方差的类的方式来对数据进行聚类,最小化一个称为惯量或簇内平方和的准则。该算法需要指定簇的数量。K-Means算法的基本原理是:根据样本特征的相似度或距离远近,将样本(N个点)划分成若干个类(K个集群),使得每个点都属于离其最近的中心点(均值)对应的类(集群)根据算法原理,常用的聚类算法可分为:基于划分的聚类算法K-Means、基于层次的聚类算法HC、基于密度的聚类算法。K-Means假设一个样本属于一个类,K-Means的类别是样本的中心(均值);原创 2024-04-02 18:07:28 · 1053 阅读 · 0 评论 -
数据预处理:离散化
离散化(也称量化或分箱)是一种数据预处理技术,用于将连续的数值型的数据转换为离散的分类的标签。某些具有连续特征的数据集可能会从离散化中受益,因为离散化可以将连续属性的数据集转换为仅具有名义属性的数据集这种处理方式主要应用于一些需要转化为分类问题的数据集,如机器学习和数据挖掘中的输入变量。离散化的原理主要是通过将连续的数值属性转化为离散的数值属性来实现数据的转化这个过程通常会采用分箱(Binning)的方法。原创 2024-03-29 15:15:38 · 1293 阅读 · 0 评论 -
数据预处理:特征编码
在机器学习中,处理离散属性(分类特征/类别特征)是一个重要的任务,需要将离散属性转换为可供模型使用的数值表示机器学习算法本质上都是在基于矩阵做线性代数计算,因此参加计算的特征必须是数值型的,对于非数值型的特征需要进行编码处理分类特征是用来表示分类的,分类特征是离散的,非连续的。例如性别(男/女)、等级(优/良/合格)等有些分类特征也是数值,例如,账号ID、IP地址等,但是这些数值并不是连续的。连续的数字是数值特征,离散的数字是分类特征。原创 2024-03-28 15:49:53 · 967 阅读 · 0 评论 -
Scikit-Learn K近邻分类
但需要注意的是,和K-Means不同,当K值很大时,错误率会更高,例如我们共有35个样本,当K增大到30时,数据的预测会把更多距离较远的数据也放入比较,最终导致预测偏差较大。K近邻(K-Nearest Neighbors,KNN)又称最近邻,意思是K个最近的邻居,是一种有监督的学习分类器,虽然它可以用于回归问题,但它通常用作分类算法。)会将样本数据按照一定比例拆分成训练数据和验证数据,然后从选取一个较小的K值开始,不断增加K的值,然后计算验证数据的误差,最终找到一个比较合适的K值。原创 2024-03-25 18:04:18 · 1373 阅读 · 0 评论 -
Scikit-Learn逻辑回归(二)
上篇中,我们详细介绍了逻辑回归的概念、原理和推导,以及Scikit-Learn线性回归模型在鸢尾花数据集中的应用。可以看到,在逻辑回归中应用了多项式特征后,我们训练出的新模型对样本数据的预测评分达到了0.96。从图中可以看到,我们线性决策边界明显无法将样本分成两类,训练的模型准确度评分很低。如果逻辑回归处理的是不规则决策边界的分类问题,那么我们就应该多考虑运用多项式回归。从样本数据图可以看出,二分类的决策边界应该是一个圆或椭圆。而逻辑回归(二分类)的线性决策边界(详见上篇)为。,则变换圆的标准方程可得。原创 2024-03-21 11:52:21 · 462 阅读 · 0 评论 -
列表如何按元素或元素的特定规则分组?
字典可以实现列表的分组操作。可以将元素或元素的特定规则作为字典的键,将元素作为字典的值。如果字典中已经存在该键,则将元素附加到该键对应的值的列表中。的工具类,可以方便地创建一个字典,同时为不存在的键提供默认值。可以使用该类来实现将列表按值分组的功能。列表如何按元素或元素的特定规则进行分组?原创 2024-03-18 17:18:23 · 477 阅读 · 0 评论 -
Python处理大型(>1GB)文件的正确姿势
Dask是Pandas官方推荐使用的一个用于并行和分布式计算大级别数据的Python库,Dask将数据分成多个分区并行计算,Dask DataFrame中的每个分区都是一个Pandas DataFrame,会将Dask DataFrame中的所有底层分区合并为一个Pandas DataFrame。Dask允许我们处理大于可用单台计算机RAM的数据,Dask可对TB级数据集进行分布式计算。参数将数据分成多个块读取,每个数据块包含chunksize行数据,以免发生内存不足的问题。原创 2024-03-15 17:04:23 · 834 阅读 · 0 评论 -
如何使用正则匹配整个字符串?
匹配整个字符串以大写字母开头,以小写字母或数字结尾,中间任意。匹配整个字符串以大写字母数字下划线组成(开头和结尾)中固定元字符为大写字母、任意0或多个字符、数字。如何使用正则匹配整个字符串?中固定元字符为大写字母、任意一个字符、数字。这样的字符串,我们希望只匹配第一个。方法要求整个字符串与模式完全匹配。忽略字符串中的大小写进行匹配。这样的字符串,可以使用如下。如果字符串比较特殊,例如像。的字符串,此时可以使用。原创 2024-03-13 11:57:29 · 480 阅读 · 0 评论 -
Python办公自动化之PDF(二)
PyMuPDF(也称Fitz)开源,提供了一整套用于处理PDF文件的综合工具。使用PyMuPDF,用户可以高效地执行打开PDF、提取文本、图像和表格、操作旋转和裁剪等页面属性、创建新PDF文档以及将PDF页面转换为图像等任务从命名形式中可以看出,PyMuPDF是MuPDF的Python接口形式。MuPDF是一个轻量级的PDF、XPS和电子书查看器MuPDF中的渲染器专为高质量抗锯齿图形量身定制,它以精确到像素的几分之一内的度量和间距呈现文本,以在屏幕上再现打印页面的外观时获得最高保真度文档阅读。原创 2024-03-08 17:49:38 · 683 阅读 · 0 评论 -
PDFPlumber解析PDF文本报错:AssertionError: (‘Unhandled’, 6)
在尝试了ChatGPT的一些建议后,确定可能是PDF本身的原因,因此考虑使用其他库。确认PDF文件没有损坏,并且是文本格式的PDF而不是扫描的图像。可以考虑使用其他PDF处理库,如PyPDF2或PyMuPDF等。添加异常处理,这样即使遇到错误也不会导致程序崩溃。看来是PDF本身的原因,我们的PDF可能已经损坏。等其他方法,这取决于你需要提取的内容类型。模块提取PDF文本时。原创 2024-03-08 16:57:00 · 851 阅读 · 0 评论 -
如何判断字符串以数字或指定正则开头?
如何判断字符串以数字或指定正则表达式开头?该方法可用于判断目标字符串是否以匹配的正则表达式开头,如果匹配,则返回。这样的字符串,我们可以考虑使用正则表达式的方式。这种字符串,要判断它是否以。和数字开头,该如何判断?判断字符串是否是大写、判断字符串是否是数字等。原创 2024-03-08 16:27:10 · 734 阅读 · 0 评论 -
Scikit-Learn逻辑回归(一)
逻辑回归(Logistic Regression)主要解决二分类问题,用来表示某个事件发生的可能性。逻辑回归在机器学习知识结构中的位置如下:逻辑回归的思想最早可以追溯到19世纪,由英国统计学家Francis Galton在研究豌豆遗传问题时首次提出。然而,真正将逻辑回归应用于机器学习的是加拿大统计学家Hugh Everett,他在1970年代提出了广义线性模型(GLM),其中包括逻辑回归逻辑回归这个算法的名称有一定的误导性。虽然它的名称中有“回归”,当它在机器学习中不是回归算法,而是分类算法。原创 2024-02-26 18:05:26 · 1498 阅读 · 0 评论 -
如何在Python中执行Shell脚本?
Python作为一种强大的脚本语言,其易用性和灵活性使得它成为自动化任务的理想选择。在Python中执行Shell脚本可以实现一些操作系统级的功能,使程序更加灵活、易理解和易维护在某些场景下,我们可能需要在Python程序中执行Shell命令。自动化部署:在部署应用程序时,我们可能需要执行一系列Shell命令,例如创建文件夹、复制文件等系统管理:在管理服务器或操作系统时,我们可能需要执行一些Shell命令来获取系统信息、监控状态等数据处理。原创 2024-02-22 22:47:27 · 1467 阅读 · 0 评论