自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

JohnSon

Learning like Deep Learning

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

原创 从CART到Xgboost - 原理及代码实践

CART (Classification and Regression Truee)CART,即分类回归树。顾名思义,CART既可以用于分类任务,又可以用于回归任务.决策树的建模思想非常简单,将特征空间划分位互不相交的子空间,也就是将样本进行分组;然后位每一组样本分配一个预测值。在预测阶段,对一个新来的样本,位样本找到分组,然后给出预测值。分类任务:预测目标是离散值,分类树采用Gini值、entropy、information gain作为节点分裂的依据。采用叶子节点里概率最大的类别作为当前节点的预测

2021-06-18 00:03:59 655

原创 《A Self-Attention Setentence Embedding》阅读笔记及实践

算法原理本文利用self-attention的方式去学习句子的embedding,表示为二维矩阵,而不是一个向量,矩阵中的每一行都表示句子中的不同部分。模型中使用了self-attention机制和一个特殊的regularization term。 假设我们有一个句子SSS, 包含nnn个单词 S=(w1,w2,w3,...,wn)S=(w1,w2,w3,...,wn)S = (w_1...

2018-06-11 12:29:06 5563 1

原创 TextCnn原理及实践

原理paper地址:https://arxiv.org/pdf/1408.5882.pdf 对于文本分类问题,常见的方法无非就是抽取文本的特征,比如使用doc2evc或者LDA模型将文本转换成一个固定维度的特征向量,然后在基于抽取的特征训练一个分类器。 然而研究证明,TextCnn在文本分类问题上有着更加卓越的表现。TextCnn的结构1. 嵌入层(embedding la

2018-01-30 20:01:35 24310 2

原创 CTR预估算法之FM, FFM, DeepFM及实践

目录目录CTR预估综述Factorization Machines(FM)算法原理代码实现Field-aware Factorization Machines(FFM)算法原理代码实现Deep FM算法原理代码实现参考文献CTR预估综述点击率(Click through rate)是点击特定链接的用户与查看页面,电子邮...

2017-12-29 16:55:36 85170 106

原创 Scrapy-redis增量爬取以及Simhash相似文档的去重

最近在实习,第一个任务就是从各大门户网站抓取新闻,爬虫本身不是一个很难的事情,用scrapy框架很容易完成(关于scrapy的具体用法可以参考我之前的一篇博客http://blog.csdn.net/john_xyz/article/details/78157805, 但是由于要求是要增量爬取,而且要去除相似的新闻,这里记录一下解决问题的方法以及踩过的坑Scrapy-redis增量爬取...

2017-11-11 18:58:08 4423

原创 创新工场深度学习暑期训练营 — 聊天机器人

聊天机器人是现在AI技术的综合体现的一个很重要的产品形式,技术会涉及自然语言理解,即充分理解用户说的话的意思,也要涉及自然语言生成,产生合适的回答来返回给用户。由于自然语言本身形式的不确定性和复杂性,这个任务可以说是具有非常大的挑战,且效果也很难做一个非常准确和直接的评判。 但越困难的事情,越是充满了吸引力。我们团队中的成员在项目兴趣选择时,都不约而同地首选了这个聊天机器人项目。团队里有比较懂深度

2017-08-20 11:50:47 1642 1

原创 常用的线性回归模型小结

先明确几个概念:方差指的是模型之间的差异,偏差指的是模型预测值和数据之间的差异。最小二乘法线性回归(Oridinary Least Squares, OLS)线性回归拟合具有系数w =(w_1,…,w_p)的线性模型,最小化 通过预测模型得到的预测值和真实值之间的残差,其数学表达式如下:min∥XW−Y∥22min\left \lVert XW-Y\right \rVert^2_2 线性回归模型也

2017-04-23 22:52:58 9020

原创 中文分词的基本原理以及jieba分词的用法

结巴分词是国内程序员用Python开发的一个中文分词模块,可能是最好的Python中文分词组件?中文分词的原理–1、中文分词(Chinese Word Segmentation) 指的是将一个汉字序列切分成一个一个单独的词。分词就是将连续的字序列按照一定的规范重新组合成词序列的过程2、现有的分词算法可分为三大类:基于字符串匹配的分词方法、基于理解的分词方法和基于统计的分词方法

2017-01-21 13:15:40 70493 11

原创 plotly基本用法

plotly可视化框架基本用法

2022-07-20 22:08:04 3452 1

原创 遗传算法原理及其python实现

遗传算法,python实现

2022-07-10 17:07:41 3593 2

原创 Partial Dependence and Individual Conditional Expectation plots

PDP(Partial dependence plots)和 ICE(individual conditional expectation)可以用来分析预测目标和输入特征之间的相互关系。PDP和ICE假设我们要分析的特征和其他特征是独立的。Partial Depentent PlotPDP显示了一个或两个特征对机器学习模型的预测结果的边际效应。PDP可以显示目标和特征之间的关系是线性的、单调的还是更复杂的。 例如,当应用于线性回归模型时,PDP显示线性关系对于回归函数来说 Partial Depend

2021-06-27 12:02:31 854 1

原创 统计学基础

常见概念样本二重性样本是从整体中随机抽取的。 抽取前无法预知数值。因此,样本是随机变量X1,X2,...,XnX_1, X_2, ..., X_nX1​,X2​,...,Xn​. 另一方面,样本抽取经过观测之后就有确定观测值,用 x1,x2,...,xnx_1, x_2, ..., x_nx1​,x2​,...,xn​ 表示样本和总体 (Sample and population)N is all samples总体:uuu: Population mean = ∑i=1NxiN\fra

2021-06-12 22:33:46 259

原创 机器学习理论 - 无限假设空间复杂度

PAC可学性与假设空间H\mathcal{H}H复杂度密切相关。假设空间H\mathcal{H}H越复杂,寻找到目标概念的难度越大。对于有限假设空间,可以用其中包含假设的数据来刻画假设空间的复杂度。 然而对于大多数学习问题来说, 学习算法考虑的假设空间并非是有限的,因而无法使用假设的数量来刻画假设空间复杂度。 有以下两种方法可以刻画无限假设空间的复杂度:与数据分布D\mathcal{D}D无关的VC维及其扩展 Natatajan维与数据分布D\mathcal{D}D相关的Rademacher维VC

2021-05-15 11:19:21 577

原创 机器学习理论-PAC learning

对于一个机器学习任务,通常需要考虑它是不是可学的 (learnable)基本概念给定样本集 D={(x1,y1),(x2,y2),...(xm,ym)}D=\{ (\pmb{x_1}, y_1), (\pmb{x_2}, y_2), ...(\pmb{x_m}, y_m)\}D={(x1​​x1​​​x1​,y1​),(x2​​x2​​​x2​,y2​),...(xm​​xm​​​xm​,ym​)}, yi∈{−1,+1}=Yy_i \in \{-1, +1\} = \mathcal{Y}yi​∈{

2021-05-09 12:13:02 1592

原创 机器学习基础-Lagrange duality

Lagrange duality对偶问题是利用拉格朗日对偶性将原始问题转换为对偶问题, 通过解对偶问题得到原始问题的解。学习拉格朗日对偶性原理重要的是理解构造所得的原始问题和原函数的等价性,以及原始问题和对偶问题解的等价性。等式约束条件优化问题对于有等式约束条件的问题,其解决方法是直接将等式约束加入原问题构造出拉格朗日函数,然后求导即可。看如下例子:minwf(w)min_w f(w)minw​f(w)s.t.hi(w)=0,i=1,...,ms.t. h_i(w) =0, i=1,...,m

2021-05-03 00:06:08 244 1

转载 Linear Model Trees

IntroductionLinear model trees combine linear models and decision trees to create a hybrid model that produces better predictions and leads to better insights than either model alone. A linear model tree is simply a decision tree with linear models at its

2020-07-06 12:46:36 532

原创 python程序性能分析

这篇博客简单介绍一些python性能分析的常用工具, 性能分析主要是代码运行的时间和内存分析,希望能给大家提供帮助通过time模块import timedef test(num_iterations): a = 1 for i in range(num_iterations): a *= -1 return anum_iterations = 1_000_000_0t1 = time.time()res = test(num_iterations)t2

2020-05-17 20:45:08 574

原创 python math的基本用法

Constants of the math Module>>> import math>>> math.pi, math.tau(3.141592653589793, 6.283185307179586)>>> math.e2.718281828459045>>> math.infinf>>...

2020-03-29 20:30:36 1400

原创 设计模式学习笔记

创建型模式简单工厂模式:专门定义一个类来创建其他类的实例,根据参数的不同创建不同的类实例,被创建的实例通常具有共同的父类,简单工厂模式。使用者可以不关注具体对象的类名称,只需要知道传入声明参数可以创建那些需要的对象。工厂方法模式:抽象出一个父类Factory, 并增加多个子类分别负责创建不同的具体产品抽象工厂模式:提供一个创建一系列或相互依赖的对象接口,而无须指定他们的具体...

2020-03-05 20:46:45 241

原创 python Jinja2 模板编程

Jinja2基本语法{% %} 控制结构,可以用来写判断循环等语句{{}} 变量取值{# #} 注释快速入门的例子from jinja2 import Template## ex1t = Template("hello {{person}}")msg = t.render(person="bob")print(msg) # hello bob## ex2t = Te...

2020-02-28 19:47:02 1239

原创 python中__new__, __init__, __call__的用法

python3中的所有类都继承object类,因此可以不用显示的指定基类. object基类中拥有的方法和属性可通用于所有类概述在进行详细介绍之前,先要有一个直观的认识__new__负责对象的创建, 而__init__负责对象的初始化;__new__是一个类方法, 而__init__和__call__是一个对象方法__call__声明这个对象是可调用的(callable)class...

2020-02-20 13:16:27 472 1

翻译 Python Fire 使用教程

简介Fire是google开发的一个python第三方库,其作用是可以将python组件(函数调用,类调用)转换成命令行的形式去调用。安装可以直接使用pip来安装pip install fire或者可以从Fire源码安装,clole如下源码https://github.com/google/python-fire.git, 然后进入目录,运行如下命令python setup.py i...

2020-01-19 21:19:15 3547

原创 Docker基本用法

Docker是一个开源的应用容器引擎,可以让开发者打包他们的应用以及依赖包到一个轻量级,可移植的容器中,然后发布到任何的流行的linux机器上。 Docker能够将应用程序与基础架构分开,从而可以快速交付软件,测试和部署代码,大大减小编写代码和在生产环境中运行代码之间的延迟Docker架构Docker包括三个基本概念镜像(Image): Docker镜像相当于是一个root文件系统。 例如...

2019-12-08 19:37:21 320

原创 conda环境管理

Anaconda 使用软件包管理系统Conda 进行包管理,为用户对不同版本、不同功能的工具包的环境进行配置和管理提供便利。来看一看使用conda来进行环境管理的基本命令创建环境创建一个名为test的python环境, 指定python版本是3.7.3, 并在test环境中安装pytorchconda create --name test python=3.7.3 pytorch查看系统...

2019-11-30 22:08:52 351

原创 redis数据库学习笔记

简介REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。它通常被称为数据结构服务器,因为值(value)可以是字符串(String), 哈希(Map...

2019-11-30 21:32:34 167

原创 sqlite学习笔记

SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库一样,您不需要在系统中配置。创建数据库创建一个数据库。下面的命令将在当前目录下创建一个文件 testDB.db。该文件将被 SQLite 引擎用作数据库。$sqlite3 testDB.db一旦数据库被创建,您就可以使用 SQLite 的 .da...

2019-11-30 21:28:18 206

原创 C++中gcc __attribute__(packed)和__attribute__(aligned)

GCC支持用__attribute__为变量、类型、函数、标签制定特殊属性。这些不是编程语言的标准内容,属于编译器对语言的扩展语法格式__attribute__的语法格式为, 其位置约束放在尾部声明”;“之前__attribute__((attribute_list))alignedaligned属性最常用在变量上,它的作用是告诉gcc, 为变量分配内存时,要分配在对其的内存地址上。一...

2019-11-29 18:37:43 2270

原创 前端学习笔记

HTML基础<!DOCTYPE>声明为HTML5文档 <html>元素是HTML页面的跟元素 <head>元素包含了文档的元数据 (meta) <title>描述了文档的标题 <style>标签定义了HTML文档的样式引用地址 <body>元素包含了可见的页面内容 HTML标题通过<h1>-&...

2019-11-22 22:04:31 204 1

原创 Cython基础教程(六) - Cython分析工具

当我们使用cython来加速python模块时,我们需要到底在什么地方需要写c/c++代码来进行来加速,在什么地方写python来保持代码的灵活性。Cython运行时间分析当我们优化cython代码的时候,首先需要知道什么地方的代码需要进行改变,可以使用内置的分析工具profile模块(更快的C执行,cProfile),来查看个行代码的运行时间。当使用分析工具的时候不需要对pure-pyth...

2019-08-25 22:15:15 1106

原创 Cython基础教程(五) -用cython包装C++库

用cython包装C++库假设有一个简单的生成随机数的类, 提供了一下接口namespace mtrandom {const static unsigned int N = 624;class MT_RNG { public: MT_RNG(); MT_RNG(unsigned long s); MT_RNG(unsigned l...

2019-08-25 22:08:37 1562

原创 Cython基础教程(四) - 组织好cython代码

Organizing Cython codeCython提供了三种类型的文件来组织Cython代码,最常用的是.pyx文件,也被叫做执行文件。如果Cython项目很小而且不需要额外的代码访问C-level的类或者结构体,那么一个.pyx文件就够了。但是如果需要C-level的类,那么可以将c-level的类定义在另外一个文件中。假设现在有一个执行文件simulatior.pyx,包含一下内容(...

2019-08-25 22:07:43 1390

原创 Cython基础教程(三)- Cython中的扩展类型

Cython中的扩展类型考虑如下一个简单的类:class Particle(object): def __init__(self, m, p, v): self.mass = m self.position = p self.velocity = v def get momentum(self): return s...

2019-08-25 22:03:49 2185

原创 Cython基础教程(二) -变量和函数

cython变量的声明CtypeCython cdef statementPointerscdef int *p, void **bufStack-allocted C arayscdef int arr[10], double points[20][10]typedefd aliased typescdef size_t lenCompound ty...

2019-08-25 21:58:54 3612 3

原创 Cython基础教程(一) - 基本概念介绍

最近工作中的一些项目需要用到cython做加速,但网上都是一些零散的教程,唯一参考的文献是官方的文档和OReilly的书,但都是英文的,对于英文不好的同学可能阅读起来比较吃力。所以我个人花了一些时间,根据参考文献,系统的梳理了一下cython的用法,希望能够帮助到更多的同学。简介Cython是一种拓展的python, 融合了静态类型的c/c++, 其文件扩展名为.pyx, 这种类型的文件经过编...

2019-08-25 21:41:23 9721 4

原创 用pandas读写HDF5文件

hdf5简介HDF5是一种专门用于存储表格数据阵列的高性能存储格式。Pandas的HDFStore类k可以将将DataFrame存储在HDF5文件中,以便可以有效地访问它,同时仍保留列类型和其他元数据。 它是一个类似字典的类,因此您可以像读取Python dict对象一样进行读写。HDF5支持压缩存储,使用的方式是blosc,这个是速度最快的也是pandas默认支持的。 使用压缩可以节省空间。...

2019-07-22 09:26:46 13905 4

原创 python面向对象编程

符合python风格的对象先来看一个向量类的例子class Vector2d: typecode = 'd' """使用两个或者一个前导下划线,把属性标记为私有的""" def __init__(self, x, y): self.__x = float(x) self.__y = float(y) "...

2019-06-04 11:06:14 312

原创 python正确重载运算符

运算符重载基础不能重载内置类型的运算符不能新建运算符,只能重载现有的某些运算符不能重载 例如 is, and, or 和not(不过位运算符&、|和~可以)一元运算符-(neg):一元取负算术运算符。如果x 是-2,那么-x == 2。+(pos):一元取正算术运算符。通常,x ==+x~(invert)对整数按位取反,定义为~x == -(x+1)。如果x 是2,那么...

2019-06-04 10:55:03 1876

原创 python中的协议和抽象基类

从协议到抽象基类看一个序列协议的例子""" 定义__getitem__方法,只实现序列协议的一部分,这样就足够访问元素,迭代和使用in运算符""">>> class Foo:... def __getitem__(self, pos):... return range(0, 30, 10)[pos]...>>> f = Foo()>...

2019-06-04 10:41:00 247

原创 python中的上下文管理器和with语句块

上下文管理器对象存在的目的就是管理with语句。上下文管理器协议包含__enter__ 和__exit__ 两个方法。with 语句开始运行时,会在上下文管理器对象上调用__enter__ 方法。with 语句运行结束后,会在上下文管理器对象上调用__exit__ 方法来看一个例子,把文件对象当成上下文管理器使用with open('test.dat') as fp: secc = f...

2019-06-04 10:12:27 288

原创 python中的可迭代的对象、迭代器和生成器

序列可迭代的原因我们来构造一个Sentence类,来查看序列可迭代的原因import reimport reprlibRE_WORD = re.compile('\w+')class Sentence: def __init__(self, text): self.text = text self.words = RE_WORD.findall(...

2019-06-04 09:28:09 267

AI技术人才成长路线图

AI技术人才成长路线图

2018-02-01

空空如也

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

TA关注的人

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