
python
文章平均质量分 63
禺垣
万世之一时,全局之一域。
展开
-
长短期记忆(LSTM)网络模型
长短期记忆(Long Short-Term Memory,LSTM)网络是一种特殊的循环神经网络(RNN),专门设计用于解决传统 RNN 在处理长序列数据时面临的梯度消失 / 爆炸问题,能够有效捕捉长距离依赖关系。其核心在于引入记忆细胞(Cell State)和门控机制(Gate Mechanism),通过控制信息的流动来实现对长期信息的存储与遗忘。原创 2025-05-31 00:10:23 · 580 阅读 · 0 评论 -
人工神经网络(ANN)模型
人工神经网络(Artificial Neural Network,ANN),是一种模拟生物神经网络结构和功能的计算模型,它通过大量的神经元相互连接,实现对复杂数据的处理和模式识别。从本质上讲,人工神经网络是对人脑神经细胞的数学抽象,试图模仿人类大脑处理信息的方式,以解决各种实际问题。原创 2025-05-15 22:59:24 · 923 阅读 · 0 评论 -
基于主成分分析(PCA)的数据降维
主成分分析(Principal Component Analysis,简称 PCA)是一种用于数据降维的方法,其核心目标是在尽可能保留原始数据信息的前提下,将高维数据映射到低维空间。该算法基于方差最大化理论,通过寻找数据的主要变化方向(即主成分),将原始数据投影到这些方向上,从而实现降维。原创 2025-05-08 19:09:52 · 960 阅读 · 0 评论 -
LightGBM算法原理及Python实现
LightGBM 由微软公司开发,是基于梯度提升框架的高效机器学习算法,属于集成学习中提升树家族的一员。它以决策树为基学习器,通过迭代地训练一系列决策树,不断纠正前一棵树的预测误差,逐步提升模型的预测精度,最终将这些决策树的结果进行整合,输出最终的预测结果。原创 2025-05-06 23:45:31 · 883 阅读 · 0 评论 -
CatBoost算法原理及Python实现
CatBoost 是在传统GBDT基础上改进和优化的一种算法,由俄罗斯 Yandex 公司开发,于2017 年开源,在处理类别型特征和防止过拟合方面有独特优势。在实际数据中,存在大量的类别型特征,如性别、颜色、类别等,传统的算法通常需要在预处理中对这些特征进行独热编码(One-Hot Encoding)或标签编码(Label Encoding)。但这些方法存在一些问题,独热编码会增加数据的维度,导致模型训练时间变长;标签编码可能会引入不必要的顺序关系,影响模型的准确性。CatBoost 采用了一种独特的处原创 2025-05-05 17:41:55 · 1058 阅读 · 0 评论 -
XGBoost算法原理及Python实现
XGBoost 在构建决策树时,利用了二阶导数信息。在损失函数的优化过程中,不仅考虑了一阶导数(梯度),还引入了二阶导数(海森矩阵),这使得算法能够更精确地找到损失函数的最优解,加速模型的收敛速度,同时提高模型的泛化能力。此外,XGBoost 还加入了正则化项,包括 L1 和 L2 正则化,用于控制模型的复杂度,防止过拟合。原创 2025-05-04 16:18:23 · 1072 阅读 · 0 评论 -
AdaBoost算法的原理及Python实现
AdaBoost(Adaptive Boosting,自适应提升)是一种迭代式的集成学习算法,通过不断调整样本权重,提升弱学习器性能,最终集成为一个强学习器。它继承了 Boosting 的基本思想和关键机制,但在具体的实现中有着显著特点,成为具有一定特定性能和适用场景的集成学习算法。原创 2025-04-30 19:11:24 · 860 阅读 · 0 评论 -
GBDT算法原理及Python实现
GBDT(Gradient Boosting Decision Tree,梯度提升决策树)是集成学习中提升(Boosting)方法的典型代表。它以决策树(通常是 CART 树,即分类回归树)作为弱学习器,通过迭代的方式,不断拟合残差(回归任务)或负梯度(分类任务),逐步构建一系列决策树,最终将这些树的预测结果进行累加,得到最终的预测值。原创 2025-04-29 20:55:44 · 737 阅读 · 0 评论 -
感知机模型
感知机模型(Perceptron Model)也叫做神经元模型,设计灵感即来自于生物神经元的运行机制,依次完成信息接收、处理、输出的过程。当前大放异彩的各种人工神经网络模型即由一个个人工神经元构成,因此,本文介绍的感知机模型(神经元模型)就是各种神经网络模型的基本单元。原创 2024-09-06 11:53:49 · 1267 阅读 · 0 评论 -
分类模型的算法性能评价
分类模型是机器学习中一种最常见的问题模型,在许多问题场景中有着广泛的运用,是模式识别问题中一种主要的实现手段。分类问题概况起来就是,对一堆高度抽象了的样本,由经验标定了每个样本所属的实际类别,由特定算法训练得到一个分类器,输入样本属性即自动计算出其所属类别,从而完成特定的识别任务。在特定问题中,算法性能的评价是一个重要的方面,它一般由学习器在测试数据中的性能表现来直接衡定,常见的评价指标有准确率、精准度(查准率)、召回率(查全率)、F1值、ROC-AUC值、Kappa系数等。原创 2024-07-09 15:31:58 · 1178 阅读 · 0 评论 -
Python缺失值处理实现
在数据处理相关工作中,读取的数据中常常会有缺失值的情况,为顺利进行后续的操作,需要首先对缺失值进行处理,处理的方式一般为**删除**或**填充**,Python中提供了专门的工具包,可以方便地进行实现。读取操作可以由pandas模块实现,通常直接读一个excel或csv文件,创建为DataFrame对象,模块中的dropna方法和fillna方法可以实现对缺失值的删除和填充。原创 2023-11-28 23:32:41 · 2031 阅读 · 0 评论 -
DBSCAN聚类
DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一种基于密度的聚类算法,簇集的划定完全由样本的聚集程度决定。聚集程度不足以构成簇落的那些样本视为噪声点,因此DBSCAN聚类的方式也可以用于异常点的检测。原创 2023-08-05 18:36:49 · 535 阅读 · 0 评论 -
常见距离计算的Python实现
常见的距离有曼哈顿距离、欧式距离、切比雪夫距离、闵可夫斯基距离、汉明距离、余弦距离等,用Python实现计算的方式有多种,可以直接构造公式计算,也可以利用内置线性代数函数计算,还可以利用scipy库计算。原创 2023-08-02 23:20:15 · 3840 阅读 · 0 评论 -
flask中在js中如何解析render_template传递给html的数据
现象说明: 在flask中通常在使用render_template渲染一个.html页面文件时,可以传入一下参数,在html源码中通过{{变量名}}的方式来调用数据,但是假如在html文件中的JavaScript中想要调用该数据变量,直接调用可能出现识别为Undefined类型的情况。问题分析: 出现上述情况是因为:经常会有字符 空格 ' "" 等被转义成其他字符,这其实是特殊字符进行转义,防止js注入 在js中可以利用tojson解决。比如:数组 num = [“ni”转载 2021-11-23 14:03:28 · 1914 阅读 · 0 评论 -
python多线程的简单使用
from threading import Timerimport timedef run1(): print(1) print(2) print(3)def run2(): print("A") print("B") print("C")if __name__ == "__main__": t1 = Timer(1, run1) #新建一个Time线程,设定启动1秒后执行函数run1 t2 = Timer(0, run2) #.原创 2021-11-23 13:43:53 · 442 阅读 · 0 评论 -
python中使用time.pref_counter()精确计时
time.pref_counter()返回一个CPU级别的精确时间值,以秒为单位。它通常用于测量某段程序的运行时间,因此取两次调用pref_counter()的差值才有意义。import timetime_start = time.perf_counter()for i in range(100000): a = 0time_end = time.perf_counter()time_consumed = time_end - time_startprint("耗费的时间: {}原创 2021-11-02 22:20:06 · 4961 阅读 · 3 评论 -
python中datetime的常用操作
datetime是用于处理日期和时间的模块,一些常用的操作可通过提供的基本函数实现。引入模块——import datetime。1.datetime转字符串——strftime()函数有两种写法:datetime.datetime.strftime(datatime对象,格式化的字符串)或datatime对象.strftime(格式化的字符串)注:若格式化的字符串中含中文,需使用format方式表示。myTime = datetime.datetime.now() # 获取系统当前时间s原创 2021-11-02 22:16:13 · 1418 阅读 · 0 评论 -
隐马尔可夫模型的解码
1.问题描述 隐马尔可夫模型(HMM)的解码问题指,给定模型和输出序列,如何找出最有可能产生这个输出的状态序列。自然语言处理中,也即如何通过观测信号确定最有可能对应的实际语义。在状态序列上,每个状态位是状态集合中的元素之一,因此该问题等价于在状态集合中的节点构成的有向网络(篱笆网络)中找出一条概率最大的路径(最优路径),如图。该问题可以通过维特比算法得到高效的解决。2.算法叙述 假设 P(st,j)P(s_{t,j})P(st,j)表示从起始时刻到st,js_{t,j}st,j的最优路径的原创 2021-11-02 21:42:58 · 1287 阅读 · 0 评论 -
维特比算法
一、概述 维特比算法是安德鲁.维特比(Andrew Viterbi)于1967年为解决通信领域中的解码问题而提出的,它同样广泛用于解决自然语言处理中的解码问题,隐马尔可夫模型的解码是其中典型的代表。无论是通信中的解码问题还是自然语言处理中的解码问题,本质上都是要在一个篱笆网络中寻找得到一条最优路径。 所谓篱笆网络,指的是单向无环图,呈层级连接,各层节点数可以不同。如图是一个篱笆网络,连线上的数字是节点间概念上的距离(如间距、代价、概率等),现要找到一条从起始点到终点的最优路径。 在实际问题中,原创 2021-10-28 21:41:56 · 2327 阅读 · 2 评论 -
Python中使用collections.Counter统计序列中元素的频率
from collections import Counterimport numpy as npls = [1, 1, 1, 2, 2, 2, 3.3, 3.3, "aa", "aa", "bb"]r = Counter(ls)# 或 r = Counter(np.array(ls))print(type(r), len(r))print(r)print("\n转化为字典:")d = dict(r)print(type(d), len(d))print(d)...原创 2021-10-27 15:56:38 · 463 阅读 · 0 评论 -
用python的pandas读取excel文件中的数据
一、读取Excel文件 使用pandas的**read_excel()**方法,可通过文件路径直接读取。注意到,在一个excel文件中有多个sheet,因此,对excel文件的读取实际上是读取指定文件、并同时指定sheet下的数据。可以一次读取一个sheet,也可以一次读取多个sheet,同时读取多个sheet时后续操作可能不够方便,因此建议一次性只读取一个sheet。 当只读取一个sheet时,返回的是DataFrame类型,这是一种表格数据类型,它清晰地展示出了数据的表格型结构。具体写法为:(原创 2021-09-13 21:06:36 · 21044 阅读 · 0 评论 -
python通过KepServer读取plc数据
KepServer是一款能够方便地对plc等工业设备进行数据读取的工具。Python可使用win32com模块实现通过kepserver读取plc数据的功能。win32com模块的安装命令:pip install pypiwin32一、运行环境1.安装Python:python3各版本均可,但必须是32位。这里使用的是python-3.7.9,windows下32位。下载:https://download.youkuaiyun.com/download/Albert201605/192630382.原创 2021-05-31 14:53:33 · 7068 阅读 · 11 评论 -
python之kepserver连接测试
python可由win32com.client模块连接kepserver,用于读取工业设备数据。连接使用的参数是opcServer名称、IP地址,连接测试程序:原创 2021-05-31 13:35:57 · 2094 阅读 · 1 评论 -
python读写mysql数据库
python对mysql数据库的连接可由 pymysql 模块实现。基本步骤:连接数据库、创建游标对象、读写操作、关闭游标、关闭连接。示例:建立一个数据库,命名python_mysqlconnect_demo,创建两张表,命名table1、table2,表结构均为1-1.插入一条数据向table1中插入记录:(1, 'name1')import pymysql# 1.连接数据库conn = pymysql.connect( host='localhost',原创 2021-05-20 11:39:07 · 924 阅读 · 1 评论 -
python通过multiprocessing并发运行多个子进程
有时需要在同一时间内同时执行多个程序,可通过multiprocessing模块实现。示例:并行创建、写入两个文件。import timeimport multiprocessingdef write_file(filename, num): target = open(filename, 'w') for i in range(1, num + 1): target.write("%d line\n" % i)if __name__ == '__main_原创 2021-05-18 16:43:35 · 588 阅读 · 0 评论 -
python之使用exec实现循环创建变量
exec可以将python语句以字符串的形式执行,因此可以在字符串外加上变量,循环地创建多个规律性的变量名称。示例:创建testname1至testname10,赋值为“value_1”至“value_10”if __name__ == '__main__': for i in range(10): exec("testname{} = 'value_{}'".format(i + 1, i + 1)) for i in range(10): ex原创 2021-05-18 16:22:09 · 2186 阅读 · 1 评论 -
使用pyinstaller将python项目打包发布为exe可执行文件
pyinstaller模块用于将python项目打包发布成exe文件,以方便地在没有安装python环境的机器上运行。该模块使用pip install pyinstaller安装即可。一、常用参数及含义参数 执行命令 含义 -D pyinstaller -D demo.py 默认选项。除了主程序demo.exe外,还会在在dist文件夹中生成很多依赖文件,推荐使用。 -c pyinstall原创 2021-05-11 16:35:25 · 1196 阅读 · 9 评论 -
Python创建目录文件夹
Python创建目录文件夹,有两个函数可实现:os.makedirs(path)、os.mkdir(path)。区别:os.makedirs(),当父目录不存在时,自动创建。os.mkdir(),当父目录不存在时,不创建,提示错误。示例:import oscreate_path = "d:\\dir_L1\\dir_L2"isExists = os.path.exists(create_path)if not isExists: os.makedirs(create_p原创 2021-05-11 11:45:22 · 2074 阅读 · 2 评论 -
python使用pyinstaller模块打包成exe文件过程中的问题核心
1.pyinstaller打包的过程,实际上它可以将程序直接依赖的包打入,但间接依赖的包无法打入,因此需要在spec文件的hiddenimports列表中填入所需的包名。2.spec文件中Analysis的第一个列表填入需要打包的.py文件路径,以字符串形式作为列表元素填入。注:a.填的路径是绝对路径,目录使用双反斜杠避开转义符;b.打包操作实质上就是将这些文件直接复制到生成的包中。3.spec文件中Analysis的datas列表填入需要打包的非.py类型资源文件,以元组形式作为列表元素填原创 2021-05-11 10:45:27 · 295 阅读 · 0 评论 -
解决Fatal error: PyInstaller does not include a pre-compiled bootloader for your platform.
使用pyinstaller打包exe时,出现“Fatal error: PyInstaller does not include a pre-compiled bootloader for your platform.”错误解决1:卸载pyinstaller,重装;解决2:新建虚拟环境。原创 2021-05-08 15:12:44 · 3629 阅读 · 1 评论 -
解决python使用multiprocessing多线程打包成exe文件后内存爆裂
python使用了multiprocessing多线程功能,然后使用pyinstaller包将程序打包成了exe文件。打开生成的exe文件后,内存爆裂。原因:开启子进程不支持打包成exe文件,会不停地向操作系统申请创建子进程,导致内存爆裂。解决:在 if __name__ == '__main__': 下面,加上 multiprocessing.freeze_support()参考1.https://www.cnblogs.com/dongxixi/p/10823228.html...原创 2021-05-07 19:02:30 · 1338 阅读 · 3 评论 -
python错误提示:OSError: [WinError 10013] 以一种访问权限不允许的方式做了一个访问套接字的尝试。
python错误提示:OSError: [WinError 10013] 以一种访问权限不允许的方式做了一个访问套接字的尝试。原因:80端口占用。解决:运行services.msc,停止SQL Server Reporting Services(MSSQLSERVER)服务。原创 2021-04-29 14:47:55 · 2471 阅读 · 0 评论 -
解决:ValueError: Buffer dtype mismatch, expected ‘SIZE_t‘ but got ‘long long‘
在加载pkl机器学习模型文件时,提示错误:ValueError: Buffer dtype mismatch, expected 'SIZE_t' but got 'long long'。原因:模型是在python-64位环境下训练保存的,加载pkl时的环境是python-32位。解决:在python-32位下重新训练、保存模型。参考https://stackoverflow.com/questions/61276774/buffer-dtype-mismatch-expected-size-t-原创 2021-04-29 14:43:14 · 3803 阅读 · 0 评论 -
pyhon中安装win32com模块
无法直接安装win32com,它有另外一个名字 ——pypiwin32。安装:pip install pypiwin32参考1.https://blog.youkuaiyun.com/qq_41703291/article/details/80433071原创 2021-04-27 18:50:49 · 1763 阅读 · 0 评论 -
使用Apache服务器部署python web过程中遇到的问题及解决方法
1. 浏览器提示Internal Server Error分析:查看Apache错误日志。日志提示:IndentationError: expected an indented block\r,即程序缺少了缩进。解决:检查程序,按照python语法,将函数体一律缩进。 重启服务器,问题解决。2.启动Apache时,控制台提示AH00526: Syntax error on。。。:Invalid command 'Order', perhaps misspelled or de..原创 2021-04-04 18:37:28 · 1399 阅读 · 3 评论 -
windows下使用Flask+wsgi+Apache部署Python Web
1 简介Flask是一个轻量级的Web应用框架,用于Python网站开发,它内置了一个微型服务器,仅用于开发和调试。在生产环境下进行正式部署的时候,需要搭建一个正式的Web服务器。部署的方式有多种,本文使用的是Flask+wsgi+Apache的方式。各部件的含义:Flask—— Python Web 应用框架;wsgi—— Web服务器网关接口(Python Web Server Gateway Interface),是为Python语言定义的Web服务器和Web应用程序或框架之间的一种简..原创 2021-04-04 16:11:36 · 1432 阅读 · 0 评论 -
Windows下使用Flask自带的服务器部署python web
Flask是一个使用 Python 编写的轻量级 Web 应用框架,它自带了一个微型Web服务器,用于开发过程中的部署调试。本文使用的开发环境是PyCharm-2017、python-3.5.4。1.新建项目flasktest,指定解释器,安装flask2.创建python文件,命名flasktest.py,写入程序from flask import Flaskapp = Flask(__name__)@app.route("/")def test(): return "&原创 2021-04-04 15:17:26 · 837 阅读 · 0 评论 -
Python的_MSC_VER版本和VC++版本的对应
安装好Python之后,cmd输入命令 python 可以直接查看_MSC_VER(微软公司推出的C/C++编译器版本号),此MSC版本号和VC++版本的对应即Python和VC++版本的对应。具体如下表Visual C++ version _MSC_VER Visual C++ 4.x 1000 Visual C++ 5 1100 Visual C++ 6 1200 Visual C++ .NET 1300 Visual C++ .NET 2003原创 2021-04-02 14:32:58 · 1461 阅读 · 0 评论 -
解决“ValueError: Expected 2D array, got scalar array instead:array=“的错误。
可能是新安装的工具包的版本问题,某次在PyCharm下运行线性回归程序时,predict处出现下列错误:根据错误提示可知,是数据维度的问题,重新调整数据格式即可。解决方法:通过numpy和reshape方法调整数据的表现格式,如x -> np.array(x).reshap(1,-1)。参考1. https://www.cnblogs.com/hankleo/p/11310272.html...原创 2021-03-03 11:08:06 · 3209 阅读 · 0 评论 -
解决Anaconda安装过程中出现的“Failed to create Anaconda menus“的错误
在Windows10下安装Anaconda3-4.4.0时,出现"Failed to create Anaconda menus"错误提示。原因:Anaconda安装过程中需要创建PATH环境变量,本机在先前安装jdk等工具包时已创建过PATH环境变量,因此,Anaconda在建立PATH目录或写入值时发生了冲突,导致安装过程出错。解决方法:将原来的PATH值复制备份,删掉PATH变量,重新安装Anaconda。安装完成后,再将原变量值加回PATH中。参考1. https://blog.cs.原创 2021-03-01 14:41:23 · 4721 阅读 · 0 评论