tqdm是python的进度条库,可以再python的长循环中添加一个进度提示信息,用户只需封装任意的迭代器,是一个快速,扩展性强的进度条工具库。
使用方法,
传入可迭代对象。
import time
from tqdm import *
for i in tqdm(range(100)):
time.sleep(0.01)
update () 手动控制进度条更新的进度。
```python
pbar = tqdm(total=200)
for i in range (20):
pbar.update(10)
time.sleep(1)
pbar.close()
`
``
要求:会自己再进度条模块中设置进度条信息,全部将其搞定都行啦的样子与打算。
SVM是一个非常优雅的算法,具有完善的数学理论,常用于数据分类,也可以用于数据的回归预测中,由于其优美得理论保证和利用核函数对于线性不可分问题得处理技巧,SVM曾红极一时。
SVM囊括很多算法功能:
SVM是一种二分类模型,其基本思想是在特征空间中寻找间隔最大得分离超平面使数据得到高效得二分类,具体来讲(有三种情况下,不加核函数得话就是这个线性模型,加了之后才会升级一个非线性模型。)
当数据集线性不可分时,通过使用核函数技巧及软间隔最大化,学习非线性支持向量机。
class sklearn.svm.SVC(*, C=1.0, kernel='rbf', degree=3, gamma='scale', coef0=0.0, shrinking=True, probability=False, tol=0.001, cache_size=200, class_weight=None, verbose=False, max_iter=- 1, decision_function_shape='ovr', break_ties=False, random_state=None)
软间隔和硬间隔:
当两组数据是完全线性可分时,我们可以找出一个决策边界使得训练集上得分类误差为0,这两种数据称为存在硬间隔的,当两组数据几乎是完全线性可分的,但决策边界在训练集上存在较小的训练误差,这两种数据就被称为存在软间隔。
慢慢的将各种模型的机器向量机,全部将其搞定都行啦的样子与打算。全部将其搞定都行啦的回事,慢慢的结合各种比赛,将SVM算法你彻底搞懂都行啦的理由与打算。
Sequential模型是一系列网络层按顺序构成的栈,利用串联的方式将各种网咯层给其传串联起来,形成序贯模型,会将各种网络层给其串联起来。都行啦的样子与打算。
keras的层主要包括:
常用层(Core), 卷积层(Convolutional)、Pooling池化层,局部连接层、递归层、嵌入层、高级激活层、规范层、噪声层、包装层等, 也可以编写自己的层.
Dense层(全连接层)
keras.layers.core.Dense(units,activation=None,use_bias=True,kernel_initializer='glorot_uniform',bias_initializer='zeros',kernel_regularizer=None,bias_regularizer=None,activity_regularizer=None,kernel_constraint=None,bias_constraint=None)
keras.layers.core.Activation(activation)
激活层对一个层的输出施加激活函数。
keras.layers.core.Dropout(rate, noise_shape=None, seed=None)
将输入数据施加Dropout,Dropout层将在训练过程种按照一定的概率,随机断开输入神经元,用于防止过拟合。
keras.layers.core.Flatten()
用于将输入压平,即把多维输入一维化,常用在从卷积层到全连接层的过度。该层不影响batch的大小。
keras.layers.core.Reshape(target_shape)
keras.layers.core.Permute(dims)
将输入维度按照给定的模式进行重排,例如,当需要将RNN和CNN网络连接时,可能会用到该层。所谓的重排也就是交换两行
keras.layers.core.RepeatVector(n)
将输入重复n次。
会自己根据比赛,学习keras的各种网络层,并进行keras的各种线性组合。全部将其搞定都行啦啊的回事。
Google提出来的数据归一化方法,往往用在深度神经网络激活层之前,
其规范化针对单个神经元进行的,,利用网络训练时一个 mini-batch 的数据来计算该神经元的均值和方差。
将输入神经网络的数据,先对其做平移和伸缩变换,将数据分布规范化成在固定区间范围的标准分布。
(3)并且起到一定的正则化作用,几乎代替了Dropout。控制过拟合,可以少用或不用Dropout和正则
(4)降低网络对初始化权重不敏感
(5)允许使用较大的学习率
np_utils.to_categorical 将数值转换成one-hot编码,二值序列。
基本使用方法
流水线的输入为一连串的数据挖掘步骤,其中最后一步必须是估计器,前几步是转换器。输入的数据集经过转换器的处理后,输出的结果作为下一步的输入。最后,用位于流水线最后一步的估计器对数据进行分类。
每一步都用元组( ‘名称’,步骤)来表示
scaling_pipeline = Pipeline([
('scale', MinMaxScaler()),
('predict', KNeighborsClassifier())
])
规范化:
编码:
会自己结合各种代码比赛,不要在一时间,将其中所涉及的各种代码和模块全部都给其搞定都行啦的样子与打算。
Grid Search:一种调参手段;穷举搜索:在所有候选的参数选择中,通过循环遍历,尝试每一种可能性,表现最好的参数就是最终的结果。其原理就像是在数组里找到最大值。这种方法的主要缺点是比较耗时!
所以网格搜索适用于三四个(或者更少)的超参数(当超参数的数量增长时,网格搜索的计算复杂度会呈现指数增长,这时候则使用随机搜索),用户列出一个较小的超参数值域,这些超参数至于的笛卡尔积(排列组合)为一组组超参数。网格搜索算法使用每组超参数训练模型并挑选验证集误差最小的超参数组合。
主要思想:如果某个词或某篇文章在一篇文章中出现的频率TF较高,并且其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。
将文本文档集合转化为token计数矩阵,(token可以理解成词)
此实现通过使用scipy.sparse.csr_matrix产生了计数的稀疏表示。
如果不提供一个先验字典,并且不使用进行某种特征选择的分析器,那么特征的数量将与通过分析数据得到的词汇表的大小一致。
CountVectorizer()函数只考虑每个单词出现的频率;然后构成一个特征矩阵,每一行表示一个训练文本的词频统计结果。其思想是,先根据所有训练文本,不考虑其出现顺序,只将训练文本中每个出现过的词汇单独视为一列特征,构成一个词汇表,该方法又称为词袋法(Bag of Words)。
把原先规模为(文本数,词汇数)的特征矩阵X化为规模为(文本数,主题数)的新特征矩阵X2:
用于显示主要分类指标的文本报告,在报告中显示每个类的精确度,召回率、F1值等信息。
主要参数:
多项式朴素贝叶斯:
概要:贝叶斯定理是关于随机事件A和B的条件概率(或边缘概率)的一则定理。其中P(A|B)是在B发生的情况下A发生的可能性。多项式朴素贝叶斯多用于高维度向量分类,最常用的场景是文章分类。
主要用于离散特征分类,例如文本分类单词统计,以出现的次数作为特征值。
keras.preprocessing.text.Tokenizer(num_words=None,
filters='!"#$%&()*+,-./:;<=>?@[]^_`{|}~ ‘,
lower=True,
split=’ ',
char_level=False,
oov_token=None,
document_count=0)
该类允许使用两种方法向量化一个文本语料库:将每个文本转化为一个整数序列(每个整数都是词典中标记的索引);或者将其转化为一个向量,其中每个标记的系数可以是二进制值、词频、TF-IDF权重等。
EarlyStopping是Callbacks的一种,callbacks用于指定在每个epoch开始和结束的时候进行哪种特定操作。Callbacks中有一些设置好的接口,可以直接使用,如’acc’,’val_acc’,’loss’和’val_loss’等等。
EarlyStopping则是用于提前停止训练的callbacks。具体地,可以达到当训练集上的loss不在减小(即减小的程度小于某个阈值)的时候停止继续训练。
作用:
根本原因就是因为继续训练会导致测试集上的准确率下降。
那继续训练导致测试准确率下降的原因猜测可能是1. 过拟合 2. 学习率过大导致不收敛 3. 使用正则项的时候,Loss的减少可能不是因为准确率增加导致的,而是因为权重大小的降低。
当然使用EarlyStopping也可以加快学习的速度,提高调参效率。
自带语料库corpus
nltk.sent_tokenize(text) #按句子分割
nltk.word_tokenize(sentence) #分词
nltk的分词是句子级别的,所以对于一篇文档首先要将文章按句子进行分割,然后句子进行分词:
接下来,开始敲打代码要求,将自己的词向量全部敲打好,并转移揭示下来都行啦的理由与打算。
各种代码的框架,全部将其搞清楚,并不仅仅局限于该比赛,封装函数以及其他都要学会,以及拆分全部将其搞定,慢慢搞起来都行啊了的理由与打算。全部将其搞定都行啦的回事与样子。
必须结合和代码学习模型,各种模型需要好好得研究以下, 全部将i搞定都行啦得样子与打算,各种模型全部将其研究一波。
各种模型需要结合代码进行学习与研究,全部将其吃透彻,搞彻底。研究彻底,彻底都行啦的样子与打算,全部将其搞定都行啦的理由与结果。
比赛的代码,用到那种模型去将其研究透彻,研究该模型的逻辑与表达,都行啦的理由与打算。全部将其吃透彻。