- 博客(108)
- 收藏
- 关注
原创 前端
关于前端1、静态网页和动态网页静态网页:浏览者所看到的每个页面是建站者上传到服务器上的一个 html ( htm )文件,交互性差,没有数据库的支持,当网站信息量很大的时候网页的制作和维护都很困难。静态网页的每个网页都有一个固定的URL,且网页URL以.htm、.html、.shtml、.xml等形式为后缀。动态网页:可以根据不同的用户请求,时间或者环境的需求动态生成不同的网页内容个。动态网页一般以数据库技术为基础,在页面里嵌套程序,这种网站对一些框架相同、更新较快的信息页面进行内容与形式的分离,
2021-05-15 21:39:54
163
原创 Dataframe
Dataframe–apply, transform, aggSeries.transform( func, axis=0, *args, **kwargs)Series.agg( func, axis=0, *args, **kwargs)DataFrame.agg( func, axis=0, *args, **kwargs)df = pd.DataFrame({'A': range(3), 'B': range(1, 4)}) A B0 0 11 1 22 2 3
2020-10-09 11:17:16
199
原创 functools.lru_cache
缓存是一种将定量数据加以保存以备迎合后续获取需求的处理方式,旨在加快数据获取的速度。数据的生成过程可能需要经过计算,规整,远程获取等操作,如果是同一份数据需要多次使用,每次都重新生成会大大浪费时间。所以,如果将计算或者远程请求等操作获得的数据缓存下来,会加快后续的数据获取需求。@functools.lru_cache(maxsize=None, typed=False)LRU (Least Recently Used,最近最少使用) 算法本是一种缓存淘汰策略。主要用于找出内存中较久时间没有使用.
2020-07-27 11:29:14
686
原创 python内置函数
find检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1。str.find(str, beg=0, end=len(string))filter用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。filter(function, iterable)def is_odd(n): return n % 2 == 1 newlist = fil.
2020-07-20 11:03:24
93
原创 python中bisect模块
python内置模块bisect,用于有序序列的插入和查找。查找: bisect(array, item)插入: insort(array,item)import bisect a = [1,4,6,8,12,15,20]position = bisect.bisect(a,13)print(position) # 5 a.insert(position,13)print(a)# 等价于bisect.insort(a,13)bisect_left:当插入的元素和序列中的
2020-07-18 21:54:23
240
原创 GRU
GRU(Gate Recurrent Unit)是循环神经网络(Recurrent Neural Network, RNN)的一种。和LSTM(Long-Short Term Memory)一样,也是为了解决长期记忆和反向传播中的梯度等问题而提出来的。GRU(2014年提出)LSTM(1997提出)相比LSTM,使用GRU能够达到相当的效果,并且相比之下更容易进行训练,能够很大程度上提高训练效率GRU的输入输出结构与普通的RNN是一样的。在LSTM中引入了三个门函数:输入门、遗忘门和.
2020-07-15 12:22:59
892
1
原创 Hadoop
Hadoop就是一个实现了Google云计算系统的开源系统,包括并行计算模型Map/Reduce,分布式文件系统HDFS,以及分布式数据库HbaseMap/ReduceMapReduce是hadoop的核心组件之一,hadoop要分布式包括两部分,一是分布式文件系统hdfs,一部是分布式计算框,就是mapreduce。Mapreduce是一种编程模型,是一种编程方法,抽象理论。...
2020-06-21 12:05:11
168
原创 线程和进程
线程是为了提高系统内程序的并发执行的程度。进程=资源+指令执行。线程是比进程要小的一个运行实体,线程基本上是不拥有资源的。多线程OS中的同步机制互斥锁mutex互斥锁比较简单,用于实现线程间对资源互斥访问的机制。有两种状态,开锁和关锁状态。当一个线程需要读/写一个共享数据时,线程首先应该为该数据段所设置的mutex执行关锁命令。首先判别mutex的状态,如果已经处于关锁状态,则访问该数据段的线程将被阻塞;如果mutex处于开锁状态,则将mutex关上之后进行读/写。完成读/写之后将mute.
2020-06-17 17:19:01
159
原创 Attention机制
编码器-解码器 (Encode-Decode) 结构:将输入序列编码成一个固定长度的向量表示,对于长度较短的输入序列而言,该模型能够学习出对应合理的向量表示。然而,这种模型存在的问题在于:当输入序列非常长时,模型难以学到合理的向量表示。Attention机制打破了传统编码器-解码器结构在编解码时都依赖于内部一个固定长度向量的限制。通过保留LSTM编码器对输入序列的中间输出结果,然后训练一个模型来对这些输入进行选择性的学习并且在模型输出时将输出序列与之进行关联。(将encoder的每一个隐藏状态设.
2020-06-17 12:52:38
662
原创 LDA
线性判别分析(Linear Discriminant Analysis, LDA)LDA是一种监督学习的降维技术,它的数据集的每个样本是有类别输出的。PCA是不考虑样本类别输出的无监督降维技术。LDA的思想:“投影后类内方差最小,类间方差最大”。将数据在低维度上进行投影,投影后希望每一种类别数据的投影点尽可能的接近,而不同类别的数据的类别中心之间的距离尽可能的大。瑞利商????(????,????)R(A,x)=xHAxxHxR(A,x) = \frac{x^HAx}{x^Hx}R(A,x)=
2020-06-14 17:35:01
150
原创 lstm_dropout
由于网络参数过多,训练数据少,或者训练次数过多,会产生过拟合的现象。dropout是神经网络中避免过拟合最有效的正则化方法dropout 每一层的神经元按照不同的概率进行dropout,这样每次训练的网络都不一样,对每一个的batch就相当于训练了一个网络,dropout本质是一种模型融合的方式,当dropout设置为0.5时,模型总类最多为2^n, 另外在更新参数时,只对保留的神经元进行更新,也能加快训练速度。传统的dropout在rnn中使用的效果不是很好,因为rnn有放大噪音的功能,所以会反过.
2020-06-10 16:22:57
8545
原创 batch_size
全数据集 ( Full Batch Learning )随着数据集的海量增长和内存限制,一次性载入所有的数据进来变得越来越不可行。以 Rprop 的方式迭代,会由于各个 Batch 之间的采样差异性,各次梯度修正值相互抵消,无法修正。在线学习(Online Learning)使用在线学习,每次修正方向以各自样本的梯度方向修正,横冲直撞各自为政,难以达到收敛。批梯度下降法(Mini-batches Learning)如果数据集足够充分,那么用一半(甚至少得多)的数据训练算出来的梯度与用全部
2020-06-08 10:46:15
145
原创 sklearn.feature_extraction
TF-IDF是Term Frequency - Inverse Document Frequency的缩写,即“词频-逆文本频率”。它由两部分组成,TF和IDF。IDF(x)=logNN(x)IDF(x) = log\frac{N}{N(x)}IDF(x)=logN(x)Nfrom sklearn.feature_extraction.text import TfidfVectorizertfidf = = TfidfVectorizer(stop_words=stpwrdlst, subli.
2020-06-02 00:24:25
524
原创 LSTM
RNN(recurrent neural network,循环神经网络)当处理与事件发生的时间轴有关系的问题时,比如自然语言处理,文本处理,文字的上下文是有一定的关联性的;时间序列数据,如连续几天的天气状况,当日的天气情况与过去的几天有某些联系。在考虑这些和时间轴相关的问题时,传统的神经网络就无能为力了,因此就有了RNN。递归神经网络(RNN)是两种人工神经网络的总称。一种是时间递归神经网络(recurrent neural network),另一种是结构递归神经网络(recursive neural
2020-05-30 11:56:59
469
原创 LightGBM
LightGBM更快的训练速度和更高的效率: LightGBM使用基于直方图的算法。例如,它将连续的特征值分桶(buckets)装进离散的箱子(bins),这是的训练过程中变得更快。更低的内存占用:使用离散的箱子(bins)保存并替换连续值导致更少的内存占用。更高的准确率(相比于其他任何提升算法) : 它通过leaf-wise分裂方法产生比level-wise分裂方法更复杂的树,这就是实现更高准确率的主要因素。然而,它有时候或导致过拟合,但是我们可以通过设置 max-depth 参数来防止过拟合的发
2020-05-28 20:01:36
269
原创 train_val loss
神经网络具有两大能力:学习能力,指在训练集上精度。泛化能力,指在测试集上精度。对于一个大型神经网络在一个大数据集上跑,loss持续不降,第一步先减小数据量,比如只在单张图片上跑,使用小epochsize,观察LOSS下降情况。如果loss还是不下降说明网络没有学习能力,应该调整模型,因为任何一个网络都会有学习能力。train loss 不断下降,test loss不断下降,说明网络仍在学习;train loss 不断下降,test loss趋于不变,说明网络过拟合;train l
2020-05-27 17:28:09
583
原创 缺失值处理
直接使用含有缺失值的特征删除含有缺失值的特征缺失值补全缺失值补全均值插补、同类均值插补、建模预测、高维映射、多重插补、极大似然估计、压缩感知和矩阵补全均值插补如果样本属性的距离是可度量的,则使用该属性有效值的平均值来插补缺失的值;如果的距离是不可度量的,则使用该属性有效值的众数来插补缺失的值。...
2020-05-26 16:37:42
199
原创 gensim word2vec
from gensim.models import word2vecsentences: 要分析的语料,可以是一个列表,或者从文件中遍历读出。size: 词向量的维度,默认值是100。如果是不大的语料,比如小于100M的文本语料,则使用默认值一般就可以了。如果是超大的语料,建议增大维度。window:即词向量上下文最大距离,window越大,则和某一词较远的词也会产生上下文关系。默认值为5。sg: 即word2vec两个模型的选择。如果是0, 则是CBOW模型,是1则是Skip-Gram模型,默认
2020-05-19 20:31:40
248
原创 语义分割常用metric
Pixel acc:比较预测label和实际label,像素级别误差。对于位置的偏移过分敏感,肉眼不可见的偏移都会产生大量的像素误差。IOU: 交并比,DetectionResult与Ground Truth的交集比上它们的并集。只是从单个像素点本身去考虑该点的预测是否与label重合,而没有从全局去考虑预测的整体形状是否与label结果形状吻合。混淆矩阵(Confusion Matrix)分别统计分类模型中归错,归对类的观测值的个数,然后把结果放在一个表里展示出来。矩阵对角线上的数字,为当.
2020-05-15 17:52:49
1977
原创 语义分割常用loss
对像素进行分类的损失函数Log loss交叉熵,二分类交叉熵(BCE),即keras.losses.binary_crossentropyBCE=−y∗log(y′)−(1−y)∗log(1−y′)BCE = -y*log(y')-(1-y)*log(1-y')BCE=−y∗log(y′)−(1−y)∗log(1−y′)最终的loss是y=0和y=1两种类别的loss相加。这种方法有一个明显缺点,当正样本数量远远小于负样本的数量时,即y=0的数量远大于y=1的数量,loss函数中y=0的成分就会占据
2020-05-09 11:36:27
1261
原创 Sklearn.linear_model.SGDClassifier
SGD主要应用在大规模稀疏数据问题上。该模块的分类器用mini-batch来做梯度下降可轻松解决:超过10510^5105的训练样本、超过10510^5105的features。如果特征数量大到和样本数量差不多,或者特征数量远远大于样本数量,则选用LR或者线性核的SVM;(eg.n=10000,m=10-1000)如果特征的数量小,样本的数量正常,则选用SVM+高斯核函数;(eg.n=1-1000,m=10-10000)如果特征的数量小,而样本的数量很大,则需要手工添加一些特征从而变成第一种情况。.
2020-05-09 09:10:42
1460
原创 Keras callbacks
Keras.callbacksmy_callbacks = [ tf.keras.callbacks.EarlyStopping(monitor='acc', patience=2), tf.keras.callbacks.ModelCheckpoint(filepath='model.{epoch:02d}-{val_loss:.2f}.h5',monitor='val_loss',save_best_only=True), tf.keras.callbacks.ReduceLR
2020-05-08 23:14:21
163
原创 Keras model
Keras model.fit()fit(x=None, y=None, batch_size=None, epochs=1, verbose=1, callbacks=None, validation_split=0.0, validation_data=None, shuffle=True, class_weight=None, sample_weight=None, initial_epoch=0, steps_per_epoch=None, validation_steps=None, va
2020-05-08 22:41:36
136
原创 Keras.preprocessing.image
图像生成器keras.preprocessing.image import ImageDataGenerator-flow(self, X, y, batch_size=32, shuffle=True, seed=None, save_to_dir=None, save_prefix='', save_format='png')-flow_from_directory(directory)...
2020-05-07 20:06:25
3594
原创 github下载指定文件
From GitURL to SVNURL根据分支不同,通用的办法是将”/branches/branchname/”替换成”/trunk/”。svn checkout your code svn checkout SVNURL https:// github.com/... svn co SVNURL...
2020-04-26 18:47:31
104
原创 语义分割分割常用网络
语义分割图像的语义分割是将输入图像中的每个像素分配一个语义类别,以得到像素化的密集分类。一般的语义分割架构可以被认为是一个编码器-解码器网络。编码器通常是一个预训练的分类网络,像 VGG、ResNet,然后是一个解码器网络。这些架构不同的地方主要在于解码器网络。解码器的任务是将编码器学习到的可判别特征(较低分辨率)从语义上投影到像素空间(较高分辨率),以获得密集分类。不同于分类任务中网络...
2020-04-26 16:25:30
18247
1
原创 python的itertools
combinations组合l = itertools.combinations('abc',2)list(l)# [('a', 'b'),('a', 'c'),('b', 'c')]permutations排列l = itertools.permutations([1,2,3], 3)list(l)# [(1,2,3),(1,3,2),(2,3,1),(2,1,3),(...
2020-04-25 10:30:21
103
原创 特征值和特征向量
n阶方阵存在数λ\lambdaλ和非零向量xxx,使得Ax=λxAx=\lambda xAx=λx则称λ\lambdaλ是A的一个特征值,xxx为A特征值λ\lambdaλ对应的特征向量。Ax=λxAx=\lambda xAx=λx -> (A−λE)x=0(A-\lambda E) x = 0(A−λE)x=0 -> (A−λE)=0(A-\lambda E) =0(A−λE...
2020-04-24 10:36:09
265
原创 KL散度、JS散度和交叉熵
对于连续型随机变量,假设P为随机变量X的概率分布,则p(x)为随机变量X在X = x处的概率三者都是用来衡量两个概率分布P(x)和Q(x)之间的差异性的指标KL散度KL散度(Kullback–Leibler divergence)又称KL距离,相对熵。D(P∣∣Q)=∫−∞∞P(x)logP(x)Q(x)D(P||Q)=\int_{-\infty}^\infty P(x)log\frac{P...
2020-04-22 13:13:51
1378
原创 HMM
HMM(隐马尔可夫模型)隐马尔可夫模型(Hidden Markov Model,HMM)是统计模型,用来描述一个含有未知参数的马尔可夫链所生成的不可观测的状态随机序列,再由各个状态生成观测随机序列的过程。其难点是从可观察的参数中确定该过程的隐含参数。马尔可夫性质:无记忆性,这一时刻的状态,受且仅受前一时刻的影响。马尔可夫链:在给定当前信息的情况下,过去的信息状态对于预测将来状态是...
2020-04-21 12:51:25
251
原创 Factorization Machines
分解机(Factorization Machines,FM)推荐算法原理在推荐系统中,特征经过one-hot编码后,数据矩阵往往是十分稀疏的,而原本分类任务中最强的单模型——SVM又对高维稀疏的数据十分的不敏感,无法找到一个好的分割超平面。FM就是为了解决数据稀疏的情况下,特征组合的问题。与SVM不同的是,它不适用kernel,而是将参数矩阵进行分解,用sparse的数据来训练分解后的向量,...
2020-04-20 14:34:59
202
原创 图像特征计算
图像信息量一幅图像如果共有k种灰度值,并且各灰度值出现的概率分别为p1,p2,···,pk,根据香农定理,图像的信息量为H=−∑i=1kpilog2piH = -\sum_{i=1}^k p_i log_2 p_iH=−i=1∑kpilog2piH称为熵,当图像各灰度值出现概率彼此相等时,图像的熵最大。...
2020-04-19 11:49:12
561
原创 字节位与各数据类型
1字节(byte)= 8位(bit)在16位系统中,1字(word)= 2字节(byte)= 16位(bit)在32位系统中,1字(word)= 4字节(byte)= 32位(bit)在64位系统中,1字(word)= 8字节(byte)= 64位(bit)32位编译器char :1个字节char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是...
2020-04-19 11:24:22
1029
原创 sql数据库
一些最重要的 SQL 命令分号是在数据库系统中分隔每条 SQL 语句的标准方法,这样就可以在对服务器的相同请求中执行一条以上的 SQL 语句。SELECT - 从数据库中提取数据UPDATE - 更新数据库中的数据DELETE - 从数据库中删除数据INSERT INTO - 向数据库中插入新数据CREATE DATABASE - 创建新数据库ALTER DATABASE - 修改...
2020-04-18 22:44:53
76
原创 算法定义
算法能够对一定规范的输入,在有限时间内获得所要求的输出。算法是对解决某一特定问题的操作步骤的具体描述。算法所具有的特征:1、有穷性,指算法必须能在执行有限个步骤之后终止。2、确切性,算法的每一步骤必须有确切的定义。3、可行性,算法中执行的任何计算步骤都是可以被分解为基本的可执行操作步骤,即每个计算步骤都可以在有限的时间内完成。4、输入项,一个算法有0个或多个输入,以刻画运算对象的初始...
2020-04-18 22:42:07
873
原创 python除法
python2中 / 为向下求整,对于整数会省去小数部分,对于浮点数会保持小数部分。python3中/,无论任何数据类型都会保留小数部分。但注意a=29/7print(a*7) #输出29.000000000000004...
2020-04-18 22:33:19
129
原创 解释性语言和编译性语言
解释性语言和编译性语言计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序。翻译的方式有两种,一个是编译,一个是解释。两种方式只是翻译的时间不同。解释性语言的定义:解释性语言的程序不需要编译,在运行程序的时候才翻译,每个语句都是执行的时候才翻译。这样解释性语言每执行一次就需要逐行翻译一次,效率比较低。现代解释性语言通...
2020-04-18 22:26:57
204
原创 红黑树
数据结构之红黑树AVL树 (平衡二叉树) 最大作用就是查找,AVL树的查找、插入和删除在平均和最坏情况下都是O(logn)。如果在AVL树中插入或删除节点后,使得平衡因子大于1。此时,AVL树的平衡状态就被破坏,为了让它重新维持在一个平衡状态,就需要对其进行旋转处理, 那么创建一颗平衡二叉树的成本其实不小。红黑树同时以平衡、高效的随机访问著称。节点数量越多,效率越高,大部分情况下查找的节点...
2020-04-18 15:09:30
175
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人