- 博客(92)
- 资源 (1)
- 收藏
- 关注
原创 python将word文档指定内容标红以及设置文字突出显示,即高亮
使用docx的包,这里包名为:python-docxfrom docx.shared import RGBColor,Ptdef set_run(run,font_size,bold,color): run.font.size =font_size run.bold=bold run.font.color.rgb=color定义一个方法,获取文本的stylefil...
2020-01-25 10:50:29 7996 3
原创 定时爬虫
设置主函数,import osimport timewhile True: os.system("scrapy crawl spider") time.sleep(86400) #每隔1天运行一次 24*60*60=86400s这种方式可以实现每隔一天爬取一次,但每次都会偏移爬取所用的时间。如果避免这种偏移,可使用crontab在linux系统中,写一个脚本corn.sh#!...
2020-01-02 16:43:16 705
原创 教室预约系统
目录前言需求思路需求分析,以及对应功能的实现封装优化用户名密码的实现展示各个时段是否被占用的表格打包成exe后记前言上个月,朋友的学校需要做实验,实验器材是固定的,因此为了避免做实验冲突,需要提前预约,他们是采用人工用Excel表格的方式,我看了一下需求,做了一个简单的 教室预约软件,实现了需求。需求提出的需求,大概有以下几点:每天从8点开始,23点结束,每两个小时为一个时间段,最后一...
2019-12-17 16:01:57 7921 6
原创 python实现网站中文件批量下载,实现在excel中超链接跳转打开下载的指定文件
网站中文件批量下载,实现在excel中超链接跳转打开下载的指定文件前言文件的批量下载数据库的保存与导出生成超链接存在的问题(未完待续)前言我们有的时候需要批量下载一个网站下的很多个页面的文件(例如附件等),并在excel中保存其相对路径,实现超链接单击打开。这篇文章阐述了如何实现该过程,以及可能遇到的一些问题。文件的批量下载在这里,采用模拟浏览器的方式进行下载。如何模拟浏览器,就不再赘述...
2019-11-17 12:34:44 4291
原创 简书图片不显示
简书查看多次后就会被屏蔽ip导致图片不显示f12打开开发者界面到console输入下列代码:回车即可解决。如果不行可以刷新一下页面。
2022-06-17 20:10:31 1429 1
原创 libsvm格式
格式简介libsvm和libfm格式相同。在推荐系统中由于离散特征过于稀疏,为了减小存储负担,只保存索引值,即值为0的不存储。样例格式如下:<label> <index1>:<value1> <index2>:<value2> ... ... ...通过全数字的方式节省存储空间。其中,index表示第几个特征(事先记录号对应关系),value表示对应值。如果不在乎特征名称所占用的存储,可以直接存储名称,如下:<label>
2022-05-04 21:49:41 966
原创 内存直接打满,GPU利用率低
内存是存储数据的,GPU用来计算如果像尽量榨干算力,就尽量把无用的内存释放掉检查代码,找到一些无用的内存占用,比如哈希桶是不是太大了,减小或者去掉一些没有用的,又很大的特征让内存的数据尽量多的都是有用的(用来计算的),就可以加大利用率...
2022-01-29 15:50:57 1639
原创 loss震荡
训练集loss震荡:原因一:如果是step的时候震荡是正常的,因为这是不同的数据,要观测每个epoch的loss原因二:学习率过大,导致来回跳原因三:选择的优化器不是很适合验证集loss震荡:原因一:训练集的loss就在震荡原因二:loss上升,过拟合(正则,dropout)...
2022-01-29 11:05:16 4985
原创 tensorflow训练方式切换
tensorflow新版本支持直接调用gpu,不需要专门安装tensorflow的GPU版本安装以后,默认有GPU会直接调用GPU,当显卡不够时,有其他不是很吃速度的任务想要训练,就需要切换CPU训练方式os.environ["CUDA_VISIBLE_DEVICES"] = ""多个显卡,指定特定GPU训练os.environ['CUDA_VISIBLE_DEVICES']='2'...
2022-01-27 11:01:07 1507
原创 利用匿名函数实现字典任意排序
利用匿名函数实现字典任意排序dict_test = { '3': 1, '2': 2, '1': '0'}tmp = sorted(dict_test.items(), key=lambda b: int(b[1]), reverse=True)print(tmp)tmp2 = sorted(dict_test.items(), key=lambda b: int(b[0]), reverse=True)print(tmp2)结果[('2', 2), ('3', 1), ('1',
2021-10-29 21:37:48 346
原创 pd.get_dummies与pd.factorize
都是将同一属性不同值进行转换pd.get_dummies转换为one-hot编码pd.factorize转换为对应的index去重之后按序编号,可以实现id表示,避免one-hot的稀疏矩阵
2021-07-17 12:51:51 134
原创 tf.data.dataset使用
参考https://tensorflow.google.cn/api_docs/python/tf/data/Datasetfrom_tensor_slices:将内存中的数据构建为数据集dataset = tf.data.Dataset.from_tensor_slices([1, 2, 3])repeat,batchrepeat设置遍历多少遍->epochbatch设置每次sample多少数据->batchsizedataset.repeat(3).batch(2)结果就
2021-06-25 14:39:10 384
原创 tf.io.decode_csv读取csv
参考https://tensorflow.google.cn/api_docs/python/tf/io/decode_csvtf.io.decode_csv( records, record_defaults, field_delim=',', use_quote_delim=True, na_value='', select_cols=None, name=None)records= '1,2,3,4,5'record_defaults = [ tf.constant(
2021-06-25 12:27:41 294
原创 tf.keras.activation.selu()
tf.keras.activation.selu(X)减缓梯度消失selu=scale * elu(x,alpha),其中alpha和scale是预定义的常量。 选择alpha和scale的值,以便在两个连续层之间保留输入的平均值和方差,只要正确初始化权重并且输入的数量“足够大”。elu:融合relu和sigmoid,其他方法:添加批归一化...
2021-06-23 15:04:16 264
转载 train_test_split划分数据集
>>> import numpy as np>>> from sklearn.model_selection import train_test_split>>> X, y = np.arange(10).reshape((5, 2)), range(5)>>> Xarray([[0, 1], [2, 3], [4, 5], [6, 7], [8, 9]])>>
2021-06-23 12:02:53 238
原创 利用tensorboard查看整个过程
切换到callbacks目录下,使用命令tensorboard --logdir=callbacks启动后,浏览器输入http://localhost:6006/就可以查看整体图示
2021-06-23 11:21:15 269
原创 tf.keras学习之sequential
参考tensorflow中文社区做什么的?在官方文档中这样说:“list of layers to add to the model.”其实就是将一系列的层次堆叠起来。继承于model强调文本 强调文本加粗文本 加粗文本标记文本删除文本引用文本H2O is是液体。210 运算结果是 1024.插入链接与图片链接: link.图片: 带尺寸的图片: 居中的图片: 居中并且带尺寸的图片: 当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。如何插入一段漂亮的代码
2021-06-22 17:08:34 566
原创 StandardScaler数据标准化
from sklearn.preprocessing import StandardScalerscaler = StandardScaler()scaler_train = scaler.fit_transform(train)scaler_test = scaler.transform(test)标准化方程fit_transform:通过数据获得均值和方差并应用到数据上transform:将前面获得均值和方差应用的数据上...
2021-06-22 15:50:03 694
原创 tf.keras学习之Flatten()
参考网址https://tensorflow.google.cn/api_docs/python/tf/keras/layers/Flattentf.keras.layers.Flatten( data_format=None, **kwargs)作用:展平矩阵,将多维矩阵展平为一维矩阵使用:import tensorflow as tfmodel = tf.keras.Sequential()model.add(tf.keras.Flatten())# 展平矩阵...
2021-06-22 15:21:43 2000
原创 解决tensorflow.python.framework.errors_impl.UnknownError
环境tensorflow-gpu=1.13.1主文件添加import tensorflow as tffrom keras import backend as Kconfig = tf.ConfigProto()config.gpu_options.allow_growth = Truesess = tf.Session(config=config)K.set_session(sess)
2021-06-21 14:22:04 651
原创 textcnn学习笔记
论文笔记,文末有论文引用1、通过word2vec中的CBOW模式训练词向量2、将词向量输入如下模型设置不同窗口的卷积核将词向量降维后,做最大池化,这里有一些细节:图中词向量为双通道的,这里是指在实验中采用了基于word2vec的词向量只修改模型参数,和同时修改词向量,以及用双通道同时保留两个词向量这样的三种实验方法卷积核为2*6的形状(以红色为例) 在倒数第二层做dropout,利用伯努利分布随机得到p,w->pw,p为0时的权重就被舍弃了梯度下降时用l2规范w,当||w||
2021-06-18 14:30:13 182
原创 tf求解梯度下降
自动求导记录器在with上下文间的所有计算都会被记录下来,通过调用gradient()进行求导import tensorflow as tfx = tf.Variable(initial_value=4.)with tf.GradientTape() as tape: y = tf.square(x)y_grad = tape.gradient(y, x) print(y, y_grad)y=x²,当x=4时,y=16y关于x的导数y’=2x,当x=4时,
2021-06-15 16:13:28 258
原创 SVM一些简单概念
支持向量机:采用最大间隔分割样本,离分割超平面最近的两个点称为支持向量。线性可分支持向量机,线性不可分支持向量机线性可分支持向量机:完全线性可分支持向量机和不完全线性可分支持向量机完全线性可分支持向量机:可以用直线完全分割,硬间隔最大化求解(拉格朗日对偶)不完全线性可分支持向量机:不是所有的样本都能本完美分割,软间隔最大化求解(加入一个和松弛变量)线性不可分支持向量机:不能用直线分割样本,采用将样本变换维度变成线性可分的情况(核技巧)序列最小最优化:样本较大,算法效率低,采用SMO算法优
2021-06-07 08:46:04 133
原创 偏差和方差判断
下图为吴恩达老师的视频课中截图,两条线分别为训练误差和验证误差随着d(特征复杂度,模型复杂度)的变化。训练误差随着模型的复杂化会拟合的越来越好,误差会逐渐趋于0验证误差开始的变化和训练时比较相近,但一般会误差略高于训练,单当模型复杂度到达阈值时,模型再次增加复杂度就会大致泛化能力变弱,对于样本外的验证集来说,误差就会不断升高。高偏差(欠拟合):从图中可见,当模型复杂度较低时,训练误差和验证误差都比较高,且两者比较接近,这时就是模型欠拟合高方差(过拟合):从图中可见,当模型过于复杂时,训练误差很
2021-06-05 17:58:24 551
原创 为什么除了训练集要划分测试集和验证集
假设有1000条已经标注好的数据,取其中600条作为训练集,200条作为验证集,200条作为测试集。3:1:1的比例可以自行调整,三个集合互相不存在交集训练集作用:设计好的模型通过训练集最优化后的一个集合验证集作用:通过验证集去选择上一个集合中的最优模型测试集作用:通过测试集评估选出来的模型的性能原因:如果测试集和验证集是同一个集合,或者说同时用一个集合去做模型的选择和模型的评估是没有意义的,因为同一个数据集上选择出来的模型在同一个数据集上表现一定是和先前一样最优的。而我们想要的是模型的泛化能力
2021-06-05 17:35:27 1212
原创 正规方程求最优解
正规方程是除了梯度下降以外求最小值的其他方法公式如下:其中X为n*m维的矩阵,n为数据的维度,m为特征向量,y为最后的目标向量。下面为吴恩达老师的一个例子当n<m时,需要减少特征,或者加入正则化项。在数据量较少时,正规方程求解速度较快,以为只计算一次,不需要迭代;当数据量较大时,虽然只进行一次计算,但由于计算复杂度较高,O(n³),速度就会不如梯度下降。...
2021-06-05 13:23:17 728 2
原创 正则化解决overfitting
是什么减小相关性较弱的特征参与度从而避免overfitting如何实现添加惩罚项,当我们要实现一个target,会使得损失函数最小化,而在损失函数中添加一项,这一项包括相关性较弱的特征的系数和一个较大的数相乘(实际并不是这样,这样解释比较好懂)。这样在使损失函数最小化时就不得不将相关性较弱的特征系数减小,不然和其相乘的较大数值就会使得损失函数很大。例子以及真实含义:下面是logistic回归的损失函数,这一项就是正则项可以看到,实际上,正则是将所有的特征系数都进行了惩罚,那么这样如何判断哪
2021-06-04 17:48:33 108
原创 特征较多而数据量较少导致的overfitting
原因:目标函数为了尽可能的拟合较少的数据,不断复杂多个特征(从系数和次数多个角度),从而拟合一个比较好(非常好)的函数,在数据内可以很好的预测(几乎百分百)。过多的参数(特征复杂度)导致函数很复杂,当新数据到来时很难通过该函数得到正确的结果,即在样本外表现不佳,导致过拟合。相关性比较弱的特征没必要加入进来,在数据量较少的情况下很难学到这些特征与数据的相关关系。这也就是为什么天猫的推荐系统用了上亿维的特征也可以呈现很好的效果(数据量很大)。因此,当出现过拟合时如果考虑是特征太多导致的,除了减少相关性较
2021-06-04 17:18:15 1657
原创 noise如何导致overfitting
在如图所示的点中拟合出一条直线。当噪声点很多出现在左侧对称的位置上,就会拟合出抛物线,然而在真实情况下左侧是不会有数据的。也就导致了训练集上数据表现很好,样本外的数据就表现较差,出现过拟合。...
2021-06-02 19:00:38 126
原创 为什么要归一化
归一化方法很多不赘述,主要说明为什么要做归一化,什么情况下需要归一化。归一化是什么归一化就是特征向量中所有的值映射到0-1之间什么情况下需要归一化极端值较多,最大值和最小值之间差距较大;不同特征之间差距较大,不归一化会导致学习到数值较大的特征更多一些。为什么做归一化就是避免前面所产生的问题。...
2021-05-31 16:13:38 984
原创 教师预约系统-源码版
鉴于之前写的博客,很多人都问我源码,再次分享给大家,当时处于初学阶段,代码赘余和不规范蛮多的,多多包涵。这个是从文件读取数据的,可以自行修改成数据库版本。# -*- coding: utf-8 -*-"""@Time : 2019/12/6 11:52@Author : Spider fu@File : paiban.py"""import pandas as pdimport time, datetimetoday = datetime.date.today()today_tim
2021-05-19 12:24:40 1039
原创 卷积神经网络
通过卷积的方式记录一些关键特征,而不是记住所有特征,避免过拟合,从而提高模型的泛化能力。卷积卷积核的数量等于输出的数量卷积的步数可以自定义输出大小等于输入的大小减卷积核的大小除以步长加一池化池化分为最大池化和平均池化最大池化:取最大值平均池化:取平均值池化的步数一般等于池化层的大小池化边界不够时可以用0padding,一般都是舍弃全连接在输入后加入十点过数量的池化和卷积最后加一个全连接层将所有矩阵展平,最后经过sigmoid函数实现分类...
2021-05-02 16:02:14 85
原创 神经网络
这里借用知乎上一大佬的图。这张图可以理解为多个神经元做多分类问题,这属于较简单的神经网络,我们可以增加多个隐藏层全连接增强学习能力。正向传播、反向传播正向传播通过输入不断进行计算得到预测的值,与真实的值进行计算后得到loss,反向传播通过反向一层一层的计算偏导来调整W梯度消失当使用sigmoid函数作为激活函数时,容易引起梯度消失,因为在反向传播中,函数经过求导之后,最大值是0.25,这样导致在经过多层传播后,是多个<=0.25的数进行相乘,使得后面浅层根本学习不到深层网络的内容。...
2021-05-02 12:38:30 111
原创 目标函数、代价函数、损失函数
目标函数的最小化就是损失函数(或代价函数,一个意思)常见的损失函数平方差损失交叉熵损失二分类为多分类扩展为一位博主总结的特别通俗易懂,我直接拷贝过来。(原博主https://blog.csdn.net/b1055077005/article/details/100152102)...
2021-04-29 20:20:40 149
原创 归一化与激活
在解决分类问题时,将结果映射到特定范围内,一般在(0,1)之间。例如,做分类问题时,输出的结果为(x1,x2,x3)经过归一化之后得到(0.2,0.1,0.7),认为分到类别1的概率为0.2,分到类别2的概率为0.1,分到类别3的概率为0.7常见的归一化方法...
2021-04-29 18:16:43 4385
原创 神经元
神经网络的最小单位-神经元输入:x1,x2,1(x可以有多个,作为特征,1可有可无,作为偏置调整)计算:第一步:加权求和w1x1+w2x2+1*b第二步:将第一步结果输入到激活函数得到输出。(激活函数的用途)目的:调整w1,w2…wn,b得到一个最佳的值(可以让相对更多的输入可以达到预期的输出)多输出神经元例如,在三分类的时候增加一个神经元。输出二分类与多分类的区别就是添加神经元,并且在最后添加归一化操作。...
2021-04-29 17:16:57 226
原创 反爬终极思路
**反爬终极思路**现在的反爬机制大多从限制ip,限制登陆(各种登录验证),访问频率(速度过快,出现人机验证等),以及携带签名等方式。但由于太严格的限制会误伤真实的用户,因此无法从根本防止数据被获取。最近做的一些爬虫中,发现了一些问题,有了一些新思路。首先反爬首先需要明确两个问题:1、爬虫是如何抓取数据的?2、如何阻止爬虫获取数据?爬虫获取数据无非是将网页上显示的内容获取下来,那么只要不显示或者说显示不完整,就永远可以防止数据被抓去。这里举个例子:假设我们有一万条数据需要展示(其中两千条数据属
2021-04-28 11:52:03 176
原创 读书笔记-西瓜书-模型评估与选择(3)
性能度量(performance measure)错误率与精度适用范围:二分类和多分类错误率:分类错误的样本数占样本总数的比例。精度:分类正确的样本数占样本总数的比例。查准率、查全率与F1对于二分类问题,可将样例根据其真实类别与学习器预测类别的组合划分为真正例、假正例、真反例、假反例四种情形。分类结果的混淆矩阵:查准率P和查全率R分别定义为:一般来说,查准率高,查全率就会偏低;查全率偏高,查准率就会偏低。查准率-查全率曲线(P-R曲线)学习器A优于学习器C(A曲线完全保住C曲线
2020-12-30 14:46:11 215
原创 数学不常见符号记录大全(持续更新)
查询导航II()II()示性函数,括号内条件成立,则为1,括号内条件不成立则为0.参考百度百科示性函数。示例:出自西瓜书错误率的定义,公式2.4
2020-12-30 12:45:56 2436
原创 读书笔记-西瓜书-模型评估与选择(2)
评估方法测试集(testing set)测试学习器对新样本的判别能力,然后以测试集上的测试误差作为泛化误差的近似。测试集应尽可能与训练集互斥。留出法(hold-out)将数据集D划分为两个互斥的集合,一个作为训练集S,另一个作为测试集T。在分类任务中至少要保持样本的类别比例相似:在S种正反例比例=在T种正反例比例测试多次取平均(例如第一次取前百分之30作为测试集,第二次取后百分之30等)常见做法是将大约2/3~4/5的样本用于训练,剩余样本用于测试。交叉验证法(cross valida
2020-12-18 18:13:45 179 2
教室预约系统.zip
2020-07-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人