使用pandas进行数据分析时,第一步就是读取文件。在平时学习和练习的过程中,用到的数据量不会太大,所以读取文件的步骤往往会被我们忽视。 然而,在实际场景中,面对十万,百万级别的数据量是家常便饭,即使千万,上亿级别的数据,单机处理也问题不大。不过,当数据量和数据属性多了之后,读取文件的性能瓶颈就开始浮现出来。 当我们第一次拿到数据时,经常会反反复复的读取文件,尝试各种分析数据的方法。如果每次读取文件都要等一段时间,不仅会影响工作效率,还影响心情。 下面记录了我自己优化pandas读取大文件效率的探索过程。 1.准备部分 首先,准备数据。下面的测试用的数据是一些虚拟币的交易数据,除了常用的K线数...

  6m3lfiEqOqHp   2024年02月19日   87   0   0 Python

命令行程序是平时写一些小工具时最常用的方式。 为了让命令行程序更加灵活,我们常常会设置一些参数,根据参数让程序执行不同的功能。这样就不用频繁的修改代码来执行不同的功能。 随着命令行程序功能的丰富,也就是参数多了以后,解析和管理参数之间的关系会变得越来越繁重。而本次介绍的Fire库,正好可以解决这个问题。使用Fire库,我们只要关心具体功能的实现,最后Fire会帮助我们自动把所有功能组织成一个命令行程序。 Fire库在github上的地址:https://github.com/google/python-fire 1.一般命令 一般的命令,也就是带有几个参数的一段程序,比如: -coding:u...

  6m3lfiEqOqHp   2024年02月19日   90   0   0 Python

之前介绍过Python的Fire库,一个用来生成命令行工具的的库。请参考:PythonFire:自动生成命令行接口 今天,针对命令行参数,补充两种更加灵活的设置方式。 1.args型参数 args型的参数可以接受任意长度的参数。比如,模拟一个学校发送通知的功能: importfire defnotions(school,names): fornameinnames: print(f"[{school}通知]hello{name}") if__name__"__main__": fire.Fire(notions) 使用起来很灵活, $python.exe.\fire-sample.py...

  6m3lfiEqOqHp   2024年02月19日   64   0   0 Python

Rich库的功能就像它的名字一样,使Python编程更加丰富(rich),它帮助开发者在控制台(命令行)输出中创建丰富、多彩和具有格式化的文本。 本篇总结了如何使用Rich库让我们的命令行工具更加美观。 1.安装 通过pip安装: pipinstallrich 使用下面的命令验证是否安装成功。 python-mrich 2.应用示例 Rich的功能很多,下面通过代码示例来演示其中主要的功能。 2.1.美化REPL输出 安装python之后,在命令行输入python,就可以进入python的交互式命令行环境(REPL)。因为python是解释性语言,所以可以在REPL环境中交互式的运行代码:...

  6m3lfiEqOqHp   2024年02月19日   77   0   0 Python

pandas的DataFrame功能强大自不必说,它可以帮助我们极大的提高统计分析的效率。 不过,使用DataFrame开发我们的分析程序的时候,经常需要打印出DataFrame的内容,以验证和调试数据的处理是否正确。 在命令行中虽然可以直接打印出DataFrame的内容,但是阅读比较困难。正好前段时间了解到python的一个用于创建美观和富有表现力的终端输出的库--Rich。 Rich库有命令行中显示表格的功能,于是,尝试了结合Rich来显示DataFrame,以便在开发过程中,更好的调试DataFrame中的数据。 1.原始显示 首先,构造一个简单的DataFrame,直接在命令行中显示出...

  6m3lfiEqOqHp   2024年02月19日   96   0   0 Python

gRPC是一个高性能、开源、通用的远程过程调用(RPC)框架,由Google推出。它基于HTTP/2协议标准设计开发,默认采用ProtocolBuffers数据序列化协议,支持多种开发语言。 在gRPC中,客户端可以像调用本地对象一样直接调用另一台不同的机器上服务端应用的方法,使得您能够更容易地创建分布式应用和服务。 gRPC支持多种语言,并提供了丰富的接口和库,以及简单易用的API,方便开发者进行快速开发和部署。同时,gRPC的底层框架处理了所有强制严格的服务契约、数据序列化、网络通讯、服务认证、访问控制、服务观测等等通常有关联的复杂性,使得开发者可以更加专注于业务逻辑的实现。 1.为什么用...

  6m3lfiEqOqHp   2024年02月19日   41   0   0 Python

搜索引擎对互联网的重要性不言而喻,不过,随着ChatGPT及其类似AI工具的推出,对搜索引擎带来了前所未有的挑战。 因为ChatGPT具有自然语言处理能力,能够更好地理解用户的搜索意图,提供更准确、更相关的搜索结果。同时,还可以根据用户的搜索历史和行为数据,为用户提供更加个性化的搜索体验,推荐更符合用户需求的内容。 不过,目前ChatGPT并不能完全替代传统搜索引擎。传统搜索引擎在信息索引、查询准确度和查询功能等方面仍具有优势。 本票介绍Google搜索引擎中增强搜索技巧的一些搜索运算符,看看传统搜索引擎的在准确性,效率,结果多样性和稳定性方面依然强大的优势。 1.限定范围搜索 1.1.搜索结...

  6m3lfiEqOqHp   2024年02月19日   166   0   0 其他技术区

分类模型的评估和回归模型的评估侧重点不一样,回归模型一般针对连续型的数据,而分类模型一般针对的是离散的数据。 所以,评估分类模型时,评估指标与回归模型也很不一样,比如,分类模型的评估指标通常包括准确率、精确率、召回率和F1分数等等。而回归模型的评估指标通常包括均方误差(MSE)、均方根误差(RMSE)和平均绝对误差(MAE)等等,不过,这些指标衡量的都是预测值与真实值之间的数值差异。 关于回归模型的评估,可以参考之前的文章,本篇开始,主要讨论分类模型的评估。 1.准确率分数 准确率分数(accuracyscore)代表了模型正确分类的样本比例,它能够直观地反映出模型在分类任务上的准确度。不过,...

  6m3lfiEqOqHp   2024年02月19日   52   0   0 机器学习

分类模型评估中,通过各类损失(loss)函数的分析,可以衡量模型预测结果与真实值之间的差异。不同的损失函数可用于不同类型的分类问题,以便更好地评估模型的性能。 本篇将介绍分类模型评估中常用的几种损失计算方法。 1.汉明损失 Hammingloss(汉明损失)是一种衡量分类模型预测错误率的指标。它直接衡量了模型预测错误的样本比例,因此更直观地反映出模型的预测精度,而且,它对不平衡数据比较敏感,也适用于多分类的问题,不仅限于二分类问题。 1.1.计算公式 \(L(y,\hat{y})=\frac{1}{nm}\sum_{i=0}^{n-1}\sum_{j=0}^{m1}1(\hat{y}_{i,j...

  6m3lfiEqOqHp   2024年02月19日   103   0   0 机器学习

前面两篇介绍了分类模型评估的两类方法,准确率分析和损失分析,本篇介绍的杰卡德相似系数和马修斯相关系数为我们提供了不同的角度来观察模型的性能,尤其在不平衡数据场景中,它们更能体现出其独特的价值。 接下来,让我们一起了解这两个评估指标的原理与特点。 1.杰卡德相似系数 杰卡德相似系数(Jaccardsimilaritycoefficient)用于衡量两个集合的相似度。在分类模型中,通常将每个类别看作一个集合,然后计算模型预测结果与实际结果之间的杰卡德相似系数。 杰卡德相似系数能够直观地反映模型预测的准确性,并且对于不平衡数据集具有一定的鲁棒性。它特别适用于二元分类问题,但也可以扩展到多类分类问题中...

  6m3lfiEqOqHp   2024年02月19日   83   0   0 机器学习

分类模型评估时,scikit-learn提供了混淆矩阵和分类报告是两个非常实用且常用的工具。它们为我们提供了详细的信息,帮助我们了解模型的优缺点,从而进一步优化模型。 这两个工具之所以单独出来介绍,是因为它们的输出内容特别适合用在模型的评估报告中。 1.混淆矩阵 混淆矩阵(ConfusionMatrix)用于直观地展示模型预测结果与实际标签之间的对应关系。它是一个表格,其行表示实际的类别标签,而列表示模型预测的类别标签。 通过混淆矩阵,可以清晰地看到模型的哪些预测是正确的,哪些是错误的,以及错误预测的具体分布情况。 1.1.使用示例 下面用手写数字识别的示例,演示最后如何用混淆矩阵来可视化的评...

  6m3lfiEqOqHp   2024年02月19日   60   0   0 机器学习

模型持久化(模型保存与加载)是机器学习完成的最后一步。因为,在实际情况中,训练一个模型可能会非常耗时,如果每次需要使用模型时都要重新训练,这无疑会浪费大量的计算资源和时间。 通过将训练好的模型持久化到磁盘,我们可以在需要使用模型时直接从磁盘加载到内存,而无需重新训练。这样不仅可以节省时间,还可以提高模型的使用效率。 本篇介绍scikit-learn中几种常用的模型持久化方法。 1.训练模型 首先,训练一个模型,这里用scikit-learn自带的手写数字数据集作为样本。 importmatplotlib.pyplotasplt fromsklearnimportdatasets 加载手写数据...

  6m3lfiEqOqHp   2024年02月19日   48   0   0 机器学习

在scikit-learn中,回归模型的可视化评估是一个重要环节。它帮助我们理解模型的性能,分析模型的预测能力,以及检查模型是否存在潜在的问题。通过可视化评估,我们可以更直观地了解回归模型的效果,而不仅仅依赖于传统的评估指标。 1.残差图 所谓残差,就是实际观测值与预测值之间的差值。 残差图是指以残差为纵坐标,以任何其他指定的量为横坐标的散点图。如果残差图中描绘的点围绕残差等于0的直线上下随机散布,说明回归直线对原观测值的拟合情况良好。反之,则说明回归直线对原观测值的拟合不理想。 下面做一个简单的线性回归模型,然后绘制残差图。 fromsklearn.datasetsimportmake_re...

  6m3lfiEqOqHp   2024年01月26日   19   0   0 机器学习

模型评估在统计学和机器学习中具有至关重要,它帮助我们主要目标是量化模型预测新数据的能力。 本篇主要介绍模型评估时,如何利用scikit-learn帮助我们快速进行各种偏差的分析。 1.R²分数 R²分数(也叫决定系数),用于衡量模型预测的拟合优度,它表示模型中因变量的变异中,可由自变量解释的部分所占的比例。R²值接近1的话,表示模型能够很好地解释因变量的变异,接近0的话,则表示模型解释能力较差。 需要注意的是,虽然R²分数是一个很有用的指标,但它也有一些局限性。例如,当模型中自变量数量增加时,R²分数可能会增加,即使这些自变量对因变量没有真正的解释力。因此,在使用R²分数评估模型时,还需要结合...

  6m3lfiEqOqHp   2024年01月24日   16   0   0 机器学习

模型评估在统计学和机器学习中具有至关重要,它帮助我们主要目标是量化模型预测新数据的能力。 在这个数据充斥的时代,没有评估的模型就如同盲人摸象,可能带来误导和误判。模型评估不仅是一种方法,更是一种保障,确保我们在数据海洋中航行时,能够依赖准确的模型,做出明智的决策。 本篇主要介绍模型评估时,如何利用scikit-learn帮助我们快速进行各种误差的分析。 1.平均绝对误差 平均绝对误差(MeanAbsoluteError,简称MAE),它用于度量预测值与真实值之间的平均误差大小。它能直观地反映出预测的准确性,MAE越小,说明模型的预测能力越好。 1.1.计算公式 平均绝对误差的计算公式如下:\(...

  6m3lfiEqOqHp   2024年01月22日   115   0   0 机器学习

谱聚类算法基于图论,它的起源可以追溯到早期的图分割文献。不过,直至近年来,受益于计算机计算能力的提升,谱聚类算法才得到了广泛的研究和关注。 谱聚类被广泛应用于图像分割、社交网络分析、推荐系统、文本聚类等领域。例如,在图像分割中,谱聚类可以有效地将图像划分为背景和前景;在社交网络分析中,它可以识别出不同的社区结构。 1.算法概述 谱聚类的基本原理是将数据点视为图中的顶点,根据数据点之间的相似性构建图的边。它首先计算图的拉普拉斯矩阵的特征向量,然后利用这些特征向量进行聚类。这种方法能够捕捉到数据的非线性结构,因此在许多应用中表现优异。 所谓拉普拉斯矩阵,是一种用于表示一个图的矩阵形式。对于给定的一...

  6m3lfiEqOqHp   2024年01月18日   14   0   0 机器学习

贝叶斯公式由英国数学家贝叶斯发展而来,在统计学和概率论中有着广泛的应用。与传统的先验概率不同,它提出的后验概率方式,会根据不断出现的新证据来更新概率估计,从而使得估计的准确性能够不断改善。 本文尝试通过一个简单的预测天气的示例来讲解后验概率是怎么回事,以及如何根据它推导出贝叶斯公式的。 1.从预测天气开始 这里为了简化,我们只考虑两种天气情况,晴天和雨天。在没有其他条件的情况下,我们预测明天的天气,得到的是50%概率是晴天,50%概率是雨天。 这个概率也可称为先验概率,就像扔硬币一样,没有其他条件的情况下,我们根据经验,可得出硬币落地后正反面的概率各为50%。上面的天气预测结果,绘制成概率图如...

  6m3lfiEqOqHp   2024年01月17日   8   0   0 机器学习

层次聚类算法是机器学习中常用的一种无监督学习算法,它用于将数据分为多个类别或层次。该方法在计算机科学、生物学、社会学等多个领域都有广泛应用。 层次聚类算法的历史可以追溯到上世纪60年代,当时它主要被用于社会科学中。随着计算机技术的发展,这种方法在90年代得到了更为广泛的应用。 1.算法概述 层次聚类的基本原理是创建一个层次的聚类,通过不断地合并或分裂已存在的聚类来实现。它分为两种策略: 凝聚策略:初始时将每个点视为一个簇,然后逐渐合并相近的簇 分裂策略:开始时将所有点视为一个簇,然后逐渐分裂 在scikit-learn中,层次聚类的策略有4种: ward:默认策略,也就是最小方差法。它倾...

  6m3lfiEqOqHp   2024年01月15日   10   0   0 机器学习

聚类算法属于无监督学习,其中最常见的是均值聚类,scikit-learn中,有两种常用的均值聚类算法:一种是有名的K-means(也就是K-均值)聚类算法,这个算法几乎是学习聚类必会提到的算法;另一个是均值偏移聚类,它与K-means各有千秋,只是针对的应用场景不太一样,但是知名度远不如K-Means。 本篇介绍如何在scikit-learn中使用这两种算法。 1.算法概述 1.1.K-Means K-means算法起源于1967年,由JamesMacQueen和J.B.Hartigan提出。它的基本原理是是将n个点划分为K个集群,使得每个点都属于离其最近的均值(中心点)对应的集群。 K-Me...

  6m3lfiEqOqHp   2024年01月14日   14   0   0 机器学习

支持向量机也是一种既可以处理分类问题,也可以处理回归问题的算法。关于支持向量机在回归问题上的应用,请参考:TODO 支持向量机分类广泛应用于图像识别、文本分类、生物信息学(例如基因分类)、手写数字识别等领域。 1.算法概述 支持向量机的主要思想是找到一个超平面,将不同类别的样本最大化地分隔开。超平面的位置由支持向量决定,它们是离分隔边界最近的数据点。对于二分类问题,SVM寻找一个超平面,使得正例和支持向量到超平面的距离之和等于反例和支持向量到超平面的距离之和。如果这个等式不成立,SVM将寻找一个更远离等式中不利样本的超平面。 下面的示例,演示了支持向量机分类算法在图像识别上的应用。 2.创建样...

  6m3lfiEqOqHp   2024年01月12日   13   0   0 Python
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~