自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

火鸡哥

  • 博客(55)
  • 资源 (1)
  • 收藏
  • 关注

原创 tensorflow2.0 | 训练模型的三种方式

1、使用fit训练Dataset该方法使用简单方便,适合在样本量少的时候。model.fit(inputs, target, batch_size=batch_size, epochs=epochs, callbacks=callbacks, validation_split=0.2)2、使用fit训练generator当样本量很大的时候,一次性加载所有样本到内存,很有可能会造成OOM,使用生成器去训练模型,

2021-07-17 12:11:30 2684

原创 信息的度量-熵(entropy)

信息是个抽象的概念,我们知道一个句子里的信息多或者少,但不知道具体是多少,如何使用数据去衡量一条信息的信息量是多少?熵刚好可以衡量信息的多少。信息量等于不确定性的多少,例如(如无特殊说明骰子都是指正六面骰子):A: “丢一次骰子,数字小于等于6的概率是多少?”:骰子上的数字是1、2、3、4、5、6,丢一次骰子,它的数字肯定是小于等于6的,它的不确定性是0,所以它的信息量也是0;B: “丢一次骰子,数字小于等于3的概率是多少?”:丢一次骰子,它的数字小于等于3的概率是12\frac{1}{2}21​,这

2021-06-24 18:21:23 1249

原创 tensorflow2.0 | 自定义Model

记录一下自定义keras模型的过程中遇到的坑。1、自定义模型自定义模型,要继承keras.Model,然后实现__init__和call两个方法,注意以下坑点:__init__若没有定义layers,那么在后面应用梯度时会找不到trainable_variables;因此所有层的定义一定要在__init__里定义。import tensroflow.keras as kerasclass model(keras.Model): def __init__(self): s

2021-06-15 18:11:58 1082

原创 囚犯问题

题目有4个囚犯,分别独立关在4个房间,实验时他们之间不能进行交流,相互也看不到对方,每天晚上随机一个人出来守夜,守夜的地方有一盏灯,守夜人每晚只能对灯进行一次操作(开/关),房间里的囚犯可以看到灯的情况;请设计一个规则(该规则会让所有囚犯都知道),确保有一个人知道每个人都出来守过夜。解题因为囚犯是不能进行交流的,所有的囚犯都不知道其它人是否出来守过夜,这里有两个需要记录的变量,一是当前守夜的人,二是不同守夜人的人数。我们需要找一个人来统计守夜人的人数,需要囚犯之间不知道谁守过夜,但他们可以通过灯是否

2021-01-18 10:11:05 810

原创 扑克

题目有一组特定顺序的扑克共20张,扑克上有1-20的数字;将第一张扑克拿出来,上面显示多少的数字,就将接下来多少张扑克放到底部,然后再拿第二张扑克出来,第二张上面显示多少的数字,也将接下来多少张扑克放到底部…最终扑克全拿出来后显示的扑克顺序刚好是1、2、3、4…18、19、20.请问最初扑克的顺序是怎么样的?解题该题可以使用反推法,将上面的问题进行反推,我们最终要求解的是一个数组,数组里的数字顺序代表了扑克的顺序。步骤:第一步:最后一张是20,因为此时数组为空,所以不用做“拿牌”操作,只要把20放

2021-01-14 18:17:11 590

原创 五猴分桃

题目有五个猴子,分一堆桃子;第一个猴子过来把桃分了5份,多出一个桃,它拿走了其中一份和多出来的一个桃;第二个猴子把剩下的桃再分了5份,也多出了一个桃,它像第一个猴子那样拿走了其中一份和多出来的一个桃;后面3个猴子也遇到了第一和第二个猴子的情况,也做出了同样的选择;请问至少有多少个桃?解题这里我们不知道最后一个猴子分桃时平均每个猴子能分多少个桃,有人可能会认为“至少”当然是1个桃啦,这是不对的,因为如果是这样的话,那第4个猴子分给4个猴子时总共分了1 * 5 + 1 = 6个桃,6不是4的倍数,所以不能

2021-01-14 15:55:13 1029 1

原创 python之装饰器和闭包

在了解装饰器之前,我们先来了解一下闭包,因为装饰器的本质也是闭包。1、闭包闭包:一个函数定义中引用了函数外定义的变量,并且该函数可以在其定义环境外被执行,这样一个函数称之为闭包。概念比较抽象,我们直接看代码:def outer_func(): loc_list = [] def inner_func(name): loc_list.append(name) print(loc_list) return inner_funcfunc = outer_func()func("A")f

2020-06-14 15:21:22 165

原创 Axure团队项目创建流程

1、先创建一个项目,保存文件。2、打开该文件,然后创建团队项目。3、填写项目信息,就可以创建axure团队项目了。注意:workspace不能选择在My Projects目录下,因为My Projects目录不支持加项目成员。4、最后在axure云上添加项目成员,然后项目成员通过即可。...

2019-12-26 16:50:41 403

原创 数据增强

数据增强是从现有的训练样本中生成更多的训练数据,其方法是利用多种能够生成可信图像的随机变换来增加样本,其目标是让模型在训练时不会两次查看完全相同的图像。对于一张图片的样本数据,每次迭代时都会先随机变换,然后再输入网络,所以使用数据增强来训练一个新网络,那么该网络将不会两次看到同样的输入。在Keras中使用数据增强:from keras.preprocessing.image import I...

2019-12-24 17:40:58 325

原创 w-p神经元与BM算法

因为没有找到很好的画神经元的软件,所以直接在笔记本上写了,再以图片方式放到博客上,方便以后自己查看。参考:周志华《机器学习》

2019-12-19 11:45:57 195

原创 神经网络之过拟合

防止神经网络过拟合的常用方法包括:获取更多的训练数据;减小网络容量;添加权重正则化;添加dropout;1、获取更多的训练数据    这个方法防止过拟合是适用于所有机器学习模型的,也是万能的方法,但现实却是不可能获取到所有的数据。2、减小网络容量    减小网络容量是指减小神经网络的层数和隐藏单元。为什么减小网络容量可以防止过拟合?首先我们来了解一下神经网络的层数和隐藏单元与过...

2019-11-22 17:45:06 2763 1

原创 nlp之词向量转换

# 分词器,仅保留数据中前10000个最常见的单词作为特征,低频单词将被舍弃tokenizer = text.Tokenizer(num_words=max_features)tokenizer.fit_on_texts(list(X_train) + list(X_test))# 将评论数据的单词转换成速数形式,如:[1,0,3,,2,0]X_train = tokenizer.tex...

2019-11-21 16:17:34 1231

原创 NLP解码

# 从分词器中获取词索引数组(word,int)word_index = tokenizer.word_index# 将词索引键值颠倒(int word)reverse_word_index = dict([(value,word) for (word,value) in word_index.items()])# 将train_data的第一条数据解码# 索引减去3,因为0、1、2是为...

2019-11-20 16:52:26 417

原创 恶毒评论分类报告

恶毒评论分类报告一、问题的定义1.1、项目概述    讨论你关心的事情是很困难的。网络上的虐待和骚扰的威胁意味着许多人停止表达自己,放弃寻求不同的意见。平台很难有效地促进对话,导致许多社区限制或完全关闭用户评论。    对话人工智能团队是Jigsaw和谷歌(都是Alphabet的一部分)共同发起的一个研究项目,目前正致力于开发帮助改善在线对话的工具。一个重点领域是对负面网络行为的研究,比如...

2019-11-14 17:45:51 1398 3

原创 数据不平衡的处理方法

数据不平衡是指在分类中,各类别数据的样本量极不平衡(通常情况下把多数类样本的比例接近100:1这种情况下的数据称为不平衡数据)。比如二类分类,正类的样本数远远比负类的样本数,那对于一些模型(例如感知机),训练好的模型会偏向正类,所以数据不平衡会导致模型的乏化能力差。参考:https://www.cnblogs.com/kamekin/p/9824294.html...

2019-10-31 16:14:57 330

转载 GBDT和XGboost介绍

注:本文转自https://blog.csdn.net/xavier_muse/article/details/84403207。GBDT(Gradient Boosting Decision Tree)是一种基于迭代所构造的决策树算法,它又可以简称为MART(Multiple Additive Regression Tree)或GBRT(Gradient Boosting Regression...

2019-10-08 15:01:54 539

原创 多项式特征

在使用单项式特征的时候,模型函数的型式是y=a∗x+b∗y+c∗z+dy = a*x+b*y+c*z+dy=a∗x+b∗y+c∗z+d,但我们还可以加入多项式作为新的特征,例如二项式增加以下特征[x∗y,x∗z,y∗z,x2,y2,z2][x*y,x*z,y*z,x^2,y^2,z^2][x∗y,x∗z,y∗z,x2,y2,z2]。在网络搜索中使用:from sklearn.pipeline...

2019-09-25 16:15:33 1380

原创 特征转换

在原始数据中,有些特征需要转换,才能获取有用的信息。1、定类等级的编码对于定类数据,我们需要将其转换成数字特征,但却又不能使用有序数据,因为定类数据之间是没有层序关系的。这种情况下可以使用one-hot编码,pandas.get_dummies可以实现one-hot编码和虚拟编码。如下,x_city特征值是不相关的,2、定序等级的编码如下,dislike、somelike、like,都...

2019-09-24 17:44:06 763

原创 缺失值数据填充

处理缺失值的两种方法:1、删除缺失值的行;2、填充缺失值。如果缺失值的行占比较多,进行删除缺失值的话,将丢失大量的数据,这样得到的模型可能会很差;所以一般对缺失值的处理都是进行填充。数据可以分以下两类:1、数值数据;2、分类数据;1、填充数值数据的缺失值对于数值数据的填充,一般使用0、均值、中位数或众数来填充。方式一:from sklearn.preprocessing imp...

2019-09-23 17:25:36 2679

原创 特征相关性

在主成份分析、数据探索上,经常要探索特征与特征、特征与因变量之间的相关性。下面记录几种相关性探索的方法。方法一:单个特征与因变量的相关性直观显视import matplotlibimport matplotlib.pyplot as pltplt.style.use('fivethirtyeight')#设置数据可视化主题names = col_name.copy() # 列名nam...

2019-09-19 10:47:17 4390 1

原创 词袋bow与tf-idf

机器学习模型需要特征来进行训练的,但对于文本数据来说,如何在文本中提取特征呢?一种最简单的方法是词袋特征化,词袋是基于单词数量统计的最简单的文本特征表示方法。1、词袋在词袋特征化中,一篇文本文档被转代为一个计数向量。假设样本集Z有两个样本,文本A:“it is a apple and it is a pen”,文本B:“it is a cat and it is a dog”。词袋特征化过程中...

2019-08-23 15:43:35 2053

原创 特征缩放/归一化

  有些特征的值是有界限的,比如经纬度。有些模型是输入的平滑函数,比如线性回归模型、逻辑回归模型,它们会受到输入尺度的影响。  如果模型对输入特征的尺度很敏感,就需要进行特征缩放。特征缩放会改变特征的尺度。1、Min-Max缩放Min-Max标准化将数据转换在[0,1]区间内。x=x−MinMax−Minx = \frac{x-Min}{Max-Min}x=Max−Minx−Min​2、...

2019-08-09 18:00:06 1170

原创 矩阵及其运算

一、矩阵概念m∗nm*nm∗n的矩阵A=[a11a12...a1na21a22...a2n............am1am2...amn]A=\left[ \begin{matrix} a_{11} & a_{12} & ... & a_{1n}\\ a_{21} & a_{22} & ... &...

2019-05-28 10:08:16 1627

原创 行列式

1、逆序数逆序数关系到行列式的值的计算,使用ttt表示,下面以例子讲解逆序数的计算。求排列32514的逆序数。解:第一个数是3,后面比3小的数有2、1共两个,所以t1=2t_1=2t1​=2;第二个数是2,后面比2小的数只有1,所以t2=1t_2=1t2​=1;第三个数是5,后面比5小的数有1、4共两个,所以t3=2t_3=2t3​=2;第四个数是1,后面没有比1小的数,所以t4=...

2019-05-16 11:22:33 894

原创 高数极限求解方法

高数极限求解方法(入门)极限的定义这里就不多说了,这里主要讲求解极限的方法,极限的形极主要跟0,1,a,∞0,1,a,\infty0,1,a,∞相关,其中aaa是不等于0,1,∞0,1,\infty0,1,∞的实数。对于与aaa相关的极限求解不需要什么求解方法,直接代入值计算即可,下面主要讲以下几种形式的求解方法:1∞1^\infty1∞、00\frac{0}{0}00​、∞∞\frac{\i...

2019-05-15 12:49:40 6959 1

原创 向量、空间直线、空间平面

第七章公式大全一、向量1、向量的数量积a⃗×b⃗=∣a∣×∣b∣×cosθ\vec{a} \times \vec{b}= |a| \times |b| \times cos{\theta}a×b=∣a∣×∣b∣×cosθ2、已知a⃗=a1×i⃗+b1×j⃗+c1×k⃗\vec{a} = a_1 \times \vec{i} + b_1 \times \vec{j} + c_1 \t...

2019-05-13 15:44:36 841

原创 梯度消失

1、梯度消失产生的原因2、解决方案2.1、预训练+微调2.2、relu、leakrelu、elu等激活函数2.3、LSTM

2019-05-08 15:50:29 458

原创 聚类的评价指标

  我们知道,监督学习的评价指标是准确率、召回率、F1、FβF_1、F_\betaF1​、Fβ​、ROC-AUC等等,但聚类方法在大多数情况下数据是没有标签的,这些情况下聚类就不能使用以上的评价指标了。  聚类有自己的评价指标,大多数聚类的评价指标是通过紧凑性和可分性来定义的。紧凑性基本上是衡量一个聚类中的元素彼此之间的距离,而可分性表示不同聚类之间的距离,总的来说聚类的评价指标有以下三个类型:...

2019-01-12 17:16:14 6002 1

原创 GMM简介

高斯混合模型无论是k-means、层次聚类还是DBSCAN,聚类后都是有明显的“分界线”的,但如果是两个混合在一起的数据,这些方法就不能很好地聚类了,而GMM却能很好地对这类混合数据进行分类,GMM是利用同类数据呈现高斯分布的原理对数据进行区分的。1、步骤第一步:初始化k个高斯分布;GMM必需的参数,n_components,指定聚类的数量第二步:将数据软聚类成我们初始化的k个高斯;...

2019-01-11 16:28:53 4019

原创 bagging和boosting的区别

bagging和boosting是提高监督式学习方法准确率的两种常用的集成方法。1、baggingbagging即套袋法,是并行式的集成学习方法,随机森林是bagging的一种。执行步骤:1、从原始训练集中随机抽取小部分数据当作新的训练集。假设设定需要n个弱学习器,则需要抽取n次(放回抽样),得到n个训练集。2、训练弱学习器。每个训练集训练出一个弱学习器,得到n个弱学习器。3、预测。测...

2019-01-11 14:20:40 3040

原创 MacPro safari不能上网

简单记录一下,以防忘记:这个问题是电脑没电后自动关机导致的,有可能其它操作也会导致该问题的发生;该问题的原因是系统的时间不对导致safari不能上网,只要将系统时间校正就可以了。...

2018-11-19 09:35:44 1835 1

原创 NFL(没有免费的午餐)

NFL(没有免费的午餐)@(周志华·机器学习)1、诠释NFL全称:No Free Lunch Theorem;意思是,所有的学习算法的期望性能是相同的。NFL的前提是,所有“问题出现的机会相同”、或所有的问题同等重要。NFL的寓意是,让我们清楚的认识到,脱离具体问题,空泛地谈论“什么学习算法更好”毫无意义,因为若考虑所有潜在的问题,则所有的学习算法都一样好。要谈论算法的相对优劣,必须要...

2018-10-08 17:25:40 906

原创 WebView之app与h5间的交互

有时候,h5需要调用app的方法,并且回调调用结果给h5,这就是app与h5之间的交互了。1、javascript方式h5调用app方法:在app端定义要执行的方法,h5在需要的地方调用该方法。app端:第一步:初始化设置WebSettings mSettings = this.getSettings();mSettings.setJavaScriptEnabled(true); ...

2018-10-08 17:04:09 1220

原创 webview之webSettings

WebSettingsWebSettings mSettings = this.getSettings();1、JavaScript设置开启javascript:h5页要一般都有js,设置为true才允许h5页面执行js,但开启js非常耗内存,经常会导致oom,为了解决这个问题,可以在onstart方法中开启,在onStop中关闭。mSettings.setJavaScriptEnabl...

2018-10-08 16:58:39 626

原创 DBSCAN

DBSCANDBSCAN是一种密度聚类算法,它基于一组参数(ϵ\epsilonϵ,MinPts)来刻画样本分布的紧密程度。1、算法原理如上图所示,DBSCAN的有两个非常重要的参数ϵ\epsilonϵ和MinPts;图中“归同类"的意思是"如果该范围内有样本已经归类,则这些样本都属于该类;否则就创建一个新类别,这些样本都属于这个新类别”。ϵ\epsilonϵ:指的是范围半径;MinP...

2018-10-08 16:10:11 1038

原创 层次聚类

层次聚类1、算法原理层次聚类将所有样本当成一个聚类,然后不断合并距离最近的聚类,直到只剩下一个聚类,由此得到系统树图;最后根据设定的聚类数n,将系统树切分为n个子树,从而达到聚类效果。由上图可得,层次聚类的关键在于如何计算两个聚类的距离,根据计算两个聚类的距离的算法可以分为以下四种聚类算法:1、单链接聚类法(sklearn里没有该方法)样本间最短的距离为聚类间的距离;2、全连接聚类法...

2018-09-30 17:40:36 2720

原创 KMeans聚类

KMeans聚类1、工作原理随机生成聚类中心,根据样本到聚类中心的距离进行分类,然后以各分类的样本中心为新的聚类中心,通过不断迭代更新聚类中心,以达到分类效果。 注:1、KMeans聚类是根据聚类中心进行分类的,所以需要指定聚类中心的个数,也就是分类的个数。2、KMeans聚类质量的好坏依赖于初始的聚类中心点,可以通过多次初始化聚类中心,以达到选择好的聚类结果。3、KMeans聚类迭...

2018-09-30 15:48:59 1247

原创 支持向量机SVM

1、支持向量机支持向量机(Support Vector Machine)是一种二类分类模型,支持向量机的间隔最大化使它有别于感知机,同时支持向量机还包括核技巧,使得它解决非线性分类的问题。这里的间隔分为硬间隔和软间隔。硬间隔是指间隔内没有误分类点,软间隔是允许间隔内有误分类点。2、模型支持向量机是定义在特征空间上的间隔最大的线性分类器,所以,支持向量机的模型是一个具有“最大间隔”的...

2018-09-07 11:30:09 1874

原创 模型评估与选择(一)

模型评估与选择(一)以下源于对西瓜书《机器学习》的模型评估的总结,有较多的抄袭。1、经验误差与过拟合 学习器在训练集上的误差称为经验误差,在新样本上的误差称为泛化误差。 当学习器把训练样本学得“太好”的时候,很可能已经把训练样本自身的一些特点当作了所有潜在样本都会具有的一般性质,这样会导致泛化性能下降,这种现象称为过拟合,以过拟合相对的是欠拟合,这是指对训练样本的一般...

2018-08-24 17:00:50 416

原创 numpy之array获取运算总结

获取numpy的数组获取运算比较容易混淆,这里会详细解释各种运算, 以4*4的二维数组为例: import numpy as np array = array = np.arange(16).reshape(4,4) array[1][1] 输出:5 解释:在一维数组中,array[1]代表着获取索引为1的元素;在二维数组中,array2[1]代表...

2018-08-24 16:06:08 1998

android studio下的v7 jar包

android studio下的v7 jar包

2015-04-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除