lr

Pytorch框架学习(4)——autograd与逻辑回归

倾然丶 夕夏残阳落幕 提交于 2020-01-23 02:32:44
autograd与逻辑回归 文章目录 autograd与逻辑回归 1. torch.autograd自动求导系统 2. 逻辑回归 1. torch.autograd自动求导系统 torch.autograd.backward 功能:自动求取梯度 tensors:用于求导的张量,如loss retain_graph:保存计算图 create_graph:创建导数计算图,用于高阶求导 grad_tensors:多梯度权重(当有多个loss需要计算梯度时,需要设置各个loss之间的权重比例) w = torch . tensor ( [ 1 . ] , requires_grad = True ) x = torch . tensor ( [ 2 . ] , requires_grad = True ) a = torch . add ( w , x ) b = torch . add ( w , 1 ) y0 = torch . mul ( a , b ) y1 = torch . add ( a , b ) loss = torch . cat ( [ y0 , y1 ] , dim = 0 ) grad_tensors = torch . tensor ( [ 1 . , 2 . ] ) loss . backward ( gradient = grad_tensors ) #

模型融合

不羁岁月 提交于 2020-01-19 23:22:41
常见的模型融合方法有:Bagging、Boosting、Stacking、Blending。还有权重加权取平均。 (3-1):Bagging Bagging 将多个模型,也就是多个基学习器的预测结果进行简单的加权平均或者投票。它的好处是可以并行地训练基学习器。Random Forest就用到了Bagging的思想。 (3-2): Boosting Boosting 的思想有点像知错能改,每个基学习器是在上一个基学习器学习的基础上,对上一个基学习器的错误进行弥补。我们将会用到的 AdaBoost,Gradient Boost 就用到了这种思想。 (3-3): Stacking Stacking是用新的次学习器去学习如何组合上一层的基学习器。如果把 Bagging 看作是多个基分类器的线性组合,那么Stacking就是多个基分类器的非线性组合。Stacking可以将学习器一层一层地堆砌起来,形成一个网状的结构。 相比来说Stacking的融合框架相对前面的二者来说在精度上确实有一定的提升,所以在下面的模型融合上,我们也使用Stacking方法。 (3-4): Blending Blending 和 Stacking 很相似,但同时它可以防止信息泄露的问题。 下面我们可以从heamy中实现Stacking、Blending和权重加权取平均。 Stacking的实现 from heamy

实验四 LR(1)分析法

夙愿已清 提交于 2020-01-19 07:52:52
一、实验目的 构造LR(1)分析程序,利用它进行语法分析,判断给出的符号串是否为该文法识别的句子,了解LR(K)分析方法是严格的从左向右扫描,和自底向上的语法分析方法 二、实验题目: 1 、对下列文法,用 LR(1)分析法对任意输入的符号串进行分析: (0)E->S (1)S->BB (2)B->aB (3)B->b 2 、 LR(1) 分析表为: 状态 ACTION GOTO a b # S B S0 S3 S4 1 2 S1 acc S2 S6 S7 5 S3 S3 S4 8 S4 r3 r3 S5 r1 S6 S6 S7 9 S7 r3 S8 r2 r2 S9 r2 (1) 若输入 baba# ,则输出为: 步骤 状态栈 符号栈 输入串 ACTION GOTO 1 0 # baba# S4 2 04 #b aba# r3 2 3 02 #B aba# S6 4 026 #Ba ba# S7 5 0267 #Bab a# error (2) 若输入 bb# ,则输出为: 步骤 状态栈 符号栈 输入串 ACTION GOTO 1 0 # bb# S4 2 04 #b b# r3 2 3 02 #B b# S7 4 027 #Bb # r3 5 5 025 #BB # r1 1 6 01 #S # acc 四、参考程序代码 #include<stdio.h> #include

性能测试基础-SOCKET协议用例

僤鯓⒐⒋嵵緔 提交于 2020-01-18 13:32:39
1.首先在进行性能测试的时候,我们要了解软件的通信协议是什么,我们使用什么协议,如何去模拟。SOCKET协议主要应用于在C/S模式的系统。 作者本人已当初做过的C/S架构的系统做的脚本录制,在上面做脚本的参数化以及优化工作。脚本如下: #include "lrs.h" #include <sub1.h> #include <sub2.h>//包含了2个自定义的C函数。LR不支持C++的函数库。C++函数需要做修改 Action() { unsigned char cLine[2048]={0}; unsigned char cOut[2048]={0}; unsigned char cOut2[2048]={0}; unsigned char retu1[2048]={0}; int len = 0; int len1 = 0; int rc,i,re; lr_start_transaction("Conn_socket"); rc = lrs_create_socket("socket0", "TCP", "RemoteHost=127.0.0.1:22222", LrsLastArg);//创建SOCKET连接 //lr_output_message("rc=%d",rc); //连接成功返回判断 if (rc != 0 ) { lr_end_transaction("Conn

DataWhale初级算法梳理—Task02:线性回归

情到浓时终转凉″ 提交于 2020-01-18 06:59:11
生成数据: #生成数据 import numpy as np #生成随机数 np.random.seed(1234) x = np.random.rand(500,3) #构建映射关系,模拟真实的数据待预测值,映射关系为y = 4.2 + 5.7*x1 + 10.8*x2,可自行设置值进行尝试 y = x.dot(np.array([4.2,5.7,10.8])) 1、调用sklearn的线性回归模型训练数据: import numpy as np from sklearn.linear_model import LinearRegression import matplotlib.pyplot as plt %matplotlib inline # 调用模型 lr = LinearRegression(fit_intercept=True) # 训练模型 lr.fit(x,y) print("估计的参数值为:%s" %(lr.coef_)) # 计算R平方 print('R2:%s' %(lr.score(x,y))) # 任意设定变量,预测目标值 x_test = np.array([2,4,5]).reshape(1,-1) y_hat = lr.predict(x_test) print("预测值为: %s" %(y_hat)) 估计的参数值为:[ 4.2 5.7 10.8

主流CTR预估模型的演化及对比

无人久伴 提交于 2020-01-14 02:26:30
https://zhuanlan.zhihu.com/p/35465875 学习和预测用户的反馈对于个性化推荐、信息检索和在线广告等领域都有着极其重要的作用。在这些领域,用户的反馈行为包括点击、收藏、购买等。本文以点击率(CTR)预估为例,介绍常用的CTR预估模型,试图找出它们之间的关联和演化规律。 数据特点 在电商领域,CTR预估模型的原始特征数据通常包括多个类别,比如[Weekday=Tuesday, Gender=Male, City=London, CategoryId=16],这些原始特征通常以独热编码(one-hot encoding)的方式转化为高维稀疏二值向量,多个域(类别)对应的编码向量链接在一起构成最终的特征向量。 高维、稀疏、多Field是输入给CTR预估模型的特征数据的典型特点。以下介绍的模型都假设特征数据满足上述规律,那些只适用于小规模数据量的模型就不介绍了。 Embedding表示 由于即将要介绍的大部分模型都或多或少使用了特征的embedding表示,这里做一个简单的介绍。 Embedding表示也叫做Distributed representation,起源于神经网络语言模型(NNLM)对语料库中的word的一种表示方法。相对于高维稀疏的one-hot编码表示,embedding-based的方法,学习一个低维稠密实数向量(low

FM算法解析及Python实现

女生的网名这么多〃 提交于 2020-01-14 02:13:18
1. GBDT + LR 是什么 本质上GBDT+LR是一种具有stacking思想的二分类器模型,所以可以用来解决二分类问题。这个方法出自于Facebook 2014年的论文 Practical Lessons from Predicting Clicks on Ads at Facebook 。 2. GBDT + LR 用在哪 GBDT+LR 使用最广泛的场景是CTR点击率预估,即预测当给用户推送的广告会不会被用户点击。 点击率预估模型涉及的训练样本一般是上亿级别,样本量大,模型常采用速度较快的LR。但LR是线性模型,学习能力有限,此时特征工程尤其重要。现有的特征工程实验,主要集中在寻找到有区分度的特征、特征组合,折腾一圈未必会带来效果提升。GBDT算法的特点正好可以用来发掘有区分度的特征、特征组合,减少特征工程中人力成本。 从知乎 https://zhuanlan.zhihu.com/p/29053940 上看到了一个关于CTR的流程,如下图所示: 如上图,主要包括两大部分:离线部分、在线部分,其中离线部分目标主要是训练出可用模型,而在线部分则考虑模型上线后,性能可能随时间而出现下降,弱出现这种情况,可选择使用Online-Learning来在线更新模型: 2.1 离线部分 数据收集:主要收集和业务相关的数据,通常会有专门的同事在app位置进行埋点,拿到业务数据 预处理

GBDT与LR融合提升广告点击率预估模型

£可爱£侵袭症+ 提交于 2020-01-14 02:12:11
1GBDT和LR融合 LR模型是线性的,处理能力有限,所以要想处理大规模问题,需要大量人力进行特征工程,组合相似的特征,例如user和Ad维度的特征进行组合。 GDBT天然适合做特征提取,因为GBDT由回归树组成所以, 每棵回归树就是天然的有区分性的特征及组合特征,然后给LR模型训练,提高点击率预估模型(很多公司技术发展应用过,本人认为dnn才是趋势)。 例如,输入样本x,GBDT模型得到两颗树tree1和tree2,遍历两颗树,每个叶子节点都是LR模型的一个维度特征,在求和每个叶子*权重及时LR模型的分类结果。 2广告长尾性 1)gbdt和随机森林rf的对比: rf主要选择对大多数样本有区分度的特征;gbdt的过程,前面树针对大多数样本有区分 ,后面树针对残差依然较大的样本,即针少数的对长尾样本。更适合ctr模型预估。 2)针对广告的长尾性,广告id这个特征就很重要,比如:某少量长尾用户就喜欢点某类广告主的广告。 方案:分别针对ID类和非ID类建树,ID类树:用于发现曝光充分的ID对应的有区分性的特征及组合特征;非ID类树:用于曝光较少的广告。 3gbdt得到的特征维度 维度会降低,总维度是所有叶子节点数之和。 4gdbt模型原理 1)BT回归树 年龄预测:简单起见训练集只有4个人,A,B,C,D,他们的年龄分别是14,16,24,26。其中A、B分别是高一和高三学生;C

LR(1) Item DFA - Computing Lookaheads

喜欢而已 提交于 2020-01-11 16:40:09
问题 I have trouble understanding how to compute the lookaheads for the LR(1)-items. Lets say that I have this grammar: S -> AB A -> aAb | a B -> d A LR(1)-item is an LR(0) item with a lookahead. So we will get the following LR(0)-item for state 0: S -> .AB , {lookahead} A -> .aAb, {lookahead} A -> .a, {lookahead} State: 1 A -> a.Ab, {lookahead} A -> a. ,{lookahead} A -> .aAb ,{lookahead} A ->.a ,{lookahead} Can somebody explain how to compute the lookaheads ? What is the general approach ? Thank

【tf.keras】AdamW: Adam with Weight decay

戏子无情 提交于 2020-01-11 01:21:20
论文 Decoupled Weight Decay Regularization 中提到,Adam 在使用时,L2 regularization 与 weight decay 并不等价,并提出了 AdamW,在神经网络需要正则项时,用 AdamW 替换 Adam+L2 会得到更好的性能。 TensorFlow 2.0 在 tensorflow_addons 库里面实现了 AdamW,目前在 Mac 和 Linux 上可以直接 pip install tensorflow_addons 进行安装,在 windows 上还不支持,但也可以直接把这个仓库下载下来使用。 下面是一个利用 AdamW 的示例程序(TF 2.0, tf.keras),在使用 AdamW 的同时,使用 learning rate decay:(以下程序中,AdamW 的结果不如 Adam,这是因为模型比较简单,加入 regularization 反而影响性能) import tensorflow as tf import os from tensorflow_addons.optimizers import AdamW import numpy as np from tensorflow.python.keras import backend as K from tensorflow.python.util.tf