![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
烟雨风渡
研究生
展开
-
python读取某目录下word文档中内容并存入txt文件
将某个目录下所有word文档中内容提取出来并存入txt文件中。文档中内容如下:直接上代码:#!/usr/bin/env python# encoding: utf-8'''@file: 1_word.py@time: 2020/11/27 21:15'''import docximport osfile_dir = './doc'for root, dirs, files in os.walk(file_dir, topdown=True): pa..原创 2020-11-27 21:54:16 · 2428 阅读 · 2 评论 -
常用的Top-N产品推荐评估指标
Top-N产品推荐与传统的评分预测相比,更符合实际的业务需求,在对推荐算法产生的Top-K推荐列表进行评估时,有一些常用的指标,如Hit_Rate@k、Precision@k、Recall@k、Map@k、NDCG@k和MRR@k,下面基于Python实现这6种评估指标。主要参考了https://github.com/wubinzzu/NeuRec/blob/master/evaluator/backend/python/metric.py代码和示例如下:import numpy as np.原创 2020-10-19 20:14:07 · 8705 阅读 · 0 评论 -
python使用t检验和F检验验证模型好坏
要在某个指标上对比两个模型的好坏,我们可以直接进行比较,同时为了使比较结果更具说服力,我们可以使用统计检验的方法,即将两个模型分别跑k次,使用t检验比较这两组k个样本的均值、使用F检验比较这两组k个样本的方差,均值越大、方差越小说明在当前指标上该模型更好更稳定(这里说的指标是正向指标)。那么下面我们以具体代码来进行说明。from scipy.stats import ttest_rel, fimport numpy as npx = [44.2, 36.1, 46.5, 40.7, 61.6,原创 2020-09-06 17:24:21 · 11722 阅读 · 1 评论 -
Python检验样本是否服从正态分布
在进行t检验、F检验之前,我们往往要求样本大致服从正态分布,下面介绍两种检验样本是否服从正态分布的方法。1 可视化我们可以通过将样本可视化,看一下样本的概率密度是否是正态分布来初步判断样本是否服从正态分布。代码如下:import numpy as npimport pandas as pdimport matplotlib.pyplot as plt# 使用pandas和numpy生成一组仿真数据s = pd.DataFrame(np.random.randn(500),colu原创 2020-09-06 16:41:10 · 17053 阅读 · 0 评论 -
Pytorch保存和加载模型的两种方式
与Tensorflow、Keras等框架一样,Pytorch也提供了两种保存模型的方式,这两种方式都是通过调用pickle序列化方法实现的:只保存模型参数 保存完整模型下面我们依次对这两种方式进行实现,以以下多层感知机模型为例:def create_net(): net = nn.Sequential() net.add_module('linear1', nn.Linear(15, 20)) net.add_module('relu1', nn.ReLU())原创 2020-08-20 19:58:38 · 8858 阅读 · 0 评论 -
torch.ones_like函数和torch.zero_like函数
torch.ones_like函数和torch.zero_like函数的基本功能是根据给定张量,生成与其形状相同的全1张量或全0张量,示例如下:input = torch.rand(2, 3)print(input)# 生成与input形状相同、元素全为1的张量a = torch.ones_like(input)print(a)# 生成与input形状相同、元素全为0的张量b = torch.zeros_like(input)print(b)效果如下:tensor([[0.08原创 2020-08-20 19:27:54 · 30463 阅读 · 6 评论 -
Pytorch中的torch.where函数
首先我们看一下Pytorch中torch.where函数是怎样定义的:@overloaddef where(condition: Tensor) -> Union[Tuple[Tensor, ...], List[Tensor]]: ...torch.where函数的功能如下:torch.where(condition, x, y):condition:判断条件x:若满足条件,则取x中元素y:若不满足条件,则取y中元素以具体实例看一下torch.where函数的效果:原创 2020-08-20 19:18:06 · 14187 阅读 · 3 评论 -
使用torchkeras打印Pytorch模型结构和基本参数信息
在使用Pytorch构建神经网络模型后,我们需要看一下自己写的模型的网络结构,此时可以使用torchkeras模块中的summary函数实现该功能。以多层感知机为例,首先我们构建网络结构并打印该模型的初步信息,代码如下:import torchfrom torch import nnfrom torchkeras import summarydef create_net(): net = nn.Sequential() net.add_module('linear1', nn原创 2020-08-20 18:23:04 · 5110 阅读 · 0 评论 -
pandas打印DataFrame的前几行、后几行样本和随机抽样
在使用pandas对结构化数据进行探索性分析时,我们经常需要打印几条样本出来看看数据读取和处理是否正确,除了用iloc函数以索引区间的方式读取,pandas为我们提供了更简单的head和tail函数,这两个函数的使用方法和效果如下。1、head函数pandas中的head函数的使用方法如下:import numpy as npimport pandas as pddf_data = pd.DataFrame(np.random.rand(10, 5))# 打印全体数据print(df原创 2020-08-20 17:59:23 · 52152 阅读 · 0 评论 -
使用python打印当前时间
在跑模型的时候,我们有时需要计算模型运行时间,此时我们需要获取到模型开始运行的时间以及模型结束运行的时间,以二者的差值作为模型的总运行时间。在python语言中,我们可以使用以下两种常用的方式获取当前时间。1、使用time模块代码如下:# 打印时间戳print(time.time()) # 打印自从1970年1月1日午夜(历元)经过了多长时间,以秒为单位# 打印本地时间print(time.localtime(time.time())) # 打印本地时间# 打印格式原创 2020-08-20 17:33:55 · 67770 阅读 · 2 评论 -
python返回列表中特定元素对应的索引
在使用列表这一数据结构进行数据分析时,我们会经常遇到需要返回列表中特定元素对应的所有索引的情况。我们可能会首先想到可以使用index函数返回元素索引,看一下效果:a = [1, 2, 3, 4, 2, 1]print(a.index(2))结果为:1可以看到,使用index函数返回的只有一个索引,而列表a中有两个2,应该返回两个索引才对,我们看一下index函数具体细节:可以看到,index函数只返回命中元素的第一个索引,而且该函数也没有参数让我们实现返回多个索引的效果。我们进原创 2020-08-14 10:46:27 · 23359 阅读 · 1 评论 -
python对列表元素排序并返回元素索引序列
在信息检索或top-n推荐中,我们会为用户推荐一个有序推荐列表,这里的“有序”体现在列表中前面的产品相比于列表后面的产品被算法预测为更容易被用户选择,这要求我们按每个产品出现的概率对产品进行排序。可以参考以下示例:# 按列表a中元素的值进行排序,并返回元素对应索引序列a = [1, 3, 4, 5, 2, 7, 9]print('a:', a)sorted_id = sorted(range(len(a)), key=lambda k: a[k], reverse=True)print('元素原创 2020-08-11 20:33:10 · 42087 阅读 · 7 评论 -
python批量计算cosine distance
我们在做推荐或者信息检索任务时经常需要比较项目嵌入和项目嵌入之间或者用户嵌入和项目嵌入之间相似度,进而进行推荐。余弦相似度的计算公式如下:余弦相似度cosine similarity和余弦距离cosine distance是相似度度量中常用的两个指标,我们可以用sklearn.metrics.pairwise下的cosine_similarity和paired_distances函数分别计算两个向量之间的余弦相似度和余弦距离,效果如下:import numpy as npfrom sklea原创 2020-08-11 19:35:04 · 15804 阅读 · 1 评论 -
python计算mAP
mAP(mean Average Precision)是信息检索和推荐系统领域评估算法性能的重要指标。If you have an algorithm that is returning a ranked ordering of items, each item is either hit or miss (like relevant vs. irrelevant search results) and items further down in the list are less likely to原创 2020-08-07 19:44:22 · 6103 阅读 · 0 评论 -
python计算precision@k、recall@k和f1_score@k
sklearn.metrics中的评估函数只能对同一样本的单个预测结果进行评估,如下所示:from sklearn.metrics import classification_reporty_true = [0, 5, 0, 3, 4, 2, 1, 1, 5, 4]y_pred = [0, 2, 4, 5, 2, 3, 1, 1, 4, 2]print(classification_report(y_true, y_pred))而我们经常会遇到需要对同一样本的top-k个预测结果进行原创 2020-08-06 20:58:15 · 14461 阅读 · 3 评论 -
python获取某个文件夹中所有文件名
获取某个文件夹下的所有文件名 我们如何使用python获取以下文件夹中的所有文件名? 使用以下python语句即可:file_dir = "F:/ant"for root, dirs, files in os.walk(file_dir, topdown=False): print(root) # 当前目录路径 print(dirs) # 当前目录下所有子目录 print(files) # 当前路径下所有非目录子文件 效果如下:原创 2020-07-20 11:23:10 · 27409 阅读 · 1 评论 -
如何读取.npy文件以及如何将数组保存为图片
1 如何读取.npy文件 .npy文件是numpy专用的二进制文件,可以使用以下Python语句读取。import numpy as npdata = np.load('1448291769966919811.npy')print("type:", type(data))print("shape:", data.shape)print("data:", data) 效果如下图所示:2 如何将数组保存为图片 使用以下Python语句将数组保存为图片:import numpy a原创 2020-07-16 19:33:56 · 4658 阅读 · 0 评论 -
网络爬虫存储数据的三种常见方式及其python实现
        在使用工具解析到网页上的数据后,要想办法把数据存储起来,这也是网络爬虫的最后一步。在最近一段时间学习网络爬虫的过程中,一直想写点东西介绍一下网络爬虫数据存储方面的内容,今天以博客的形式对这方面的内容进行总结,介绍网络爬虫中数据存储的三种常用方式及其python实现,三种常见方式分别是:t原创 2018-07-19 15:47:56 · 16644 阅读 · 4 评论 -
用python生成随机数的几种方法
今天学习了用python生成仿真数据的一些基本方法和技巧,写成博客和大家分享一下。 本篇博客主要讲解如何从给定参数的的正态分布/均匀分布中生成随机数以及如何以给定概率从数字列表抽取某数字或从区间列表的某一区间内生成随机数,按照内容将博客分为3部分,并附上代码。1 从给定参数的正态分布中生成随机数 当考虑从正态分布中生成随机数时,应当首先知道正态分布的均值和方差(标准差),有了这些,...原创 2018-07-13 20:32:27 · 49706 阅读 · 2 评论 -
用python绘制散点图
今天下午学习了如何使用python绘制简单的散点图,写成博客分享一下。 在python中画散点图主要是用matplotlib模块中的scatter函数,先来看一下scatter函数的基本信息。 网址为:点击打开链接 可以看到scatter中有很多参数,经常使用的参数主要有以下几个:c:marker: 数据、代码和绘制的图如下。 数据(取第一列作为x,取第四列作为y)截图: 代码如下...原创 2018-07-13 21:41:53 · 142258 阅读 · 17 评论 -
Microsoft Visual C++ 14.0 is required 的解决方案
        个人认为Python的一大亮点就是对于我们在学习中遇到的常见问题,它都有很多现成的module可供使用,但是,在我们安装这些module时,可能会出现**“error: Microsoft Visual C++ 14.0 is required. Get it with “Microso原创 2018-10-30 09:29:20 · 73216 阅读 · 39 评论 -
Keras框架下的保存模型和加载模型
在Keras框架下训练深度学习模型时,一般思路是在训练环境下训练出模型,然后拿训练好的模型(即保存模型相应信息的文件)到生产环境下去部署。在训练过程中我们可能会遇到以下情况:需要运行很长时间的程序在迭代到中间某一代时出现意外; 人为地想停止训练过程,也许是为了用测试数据测试模型,然后从上一个检查点继续训练模型; 想通过损失函数和评估指标,在每次训练过程中保存模型的最佳版本。...原创 2018-12-24 18:38:38 · 19028 阅读 · 6 评论 -
python快速将excel文件转化为txt文件
        原创 2019-01-04 22:28:33 · 30570 阅读 · 12 评论 -
PyTorch框架下自定义层和自定义模型
PyTorch是一款简洁且高效的深度学习框架,目前在学术界被广泛使用。 和TensorFlow、Keras等框架一样,PyTorch框架下集成了一些常用的神经网络模型,如卷积神经网络、循环神经网络、全连接神经网络等,我们可以很方便地调用这些模型解决自己的问题。但是,当我们需要尝试用一些新的模型结构来解决自己的问题时,这些框架内置的模型就不行了,这时我们需要自己在P...原创 2019-07-11 11:13:02 · 12200 阅读 · 6 评论 -
pytorch框架中的两种常用乘法
在使用pytorch框架复现模型的时候,我们需要再forward()函数中定义模型的逻辑,这时就要对模型参数使用一些运算,这里简单介绍一下pytorch框架下的两种常用的乘法运算。1 按元素乘 按元素乘,即张量的对应元素相乘,将每个位置上相乘的结果作为返回值,使用“*”实现。看一下例子:import torcha = torch.Tensor([[1...原创 2019-08-12 08:37:46 · 4098 阅读 · 0 评论 -
使用Python操作MySQL数据库
        我们经常需要将大量数据保存起来以备后续使用,数据库是一个很好的解决方案。在众多数据库中,MySQL数据库算是入门比较简单、语法比较简单,同时也比较实用的一个。在这篇博客中,将以MySQL数据库为例,介绍一下如何使用Python操作数据库。  &原创 2018-07-18 17:30:17 · 1422 阅读 · 1 评论