小编саш*_*аша的帖子

如何在xgboost中访问单个决策树的权重?

我正在使用xgboost进行排名

param = {'objective':'rank:pairwise', 'booster':'gbtree'}
Run Code Online (Sandbox Code Playgroud)

据我所知,通过计算学习决策树的加权和来实现梯度增强.如何访问分配给每个学习助推器的权重?我想在训练后尝试对加权进行后处理,以加快预测步骤,但我不知道如何获得单独的权重.使用时dump_model(),可以在创建的文件中看到不同的决策树,但不存储加权.在API中我没有找到合适的功能.或者我可以用收缩参数手动计算重量eta吗?

python decision-tree boosting xgboost

13
推荐指数
1
解决办法
3507
查看次数

doc2vec:PV-DBOW是如何实现的

我知道在python(gensim)中已经存在PV-DBOW(段落向量)的实现.但我很想知道如何自己实现它.PV-DBOW 官方文件的解释如下:

另一种方法是忽略输入中的上下文单词,但强制模型预测从输出中的段落中随机抽样的单词.实际上,这意味着在随机梯度下降的每次迭代中,我们对文本窗口进行采样,然后从文本窗口中采样随机词,并在给定段落向量的情况下形成分类任务.

根据该论文,不存储单词向量,并且据说PV-DBOW的工作类似于word2vec中的跳过克.

word2vec参数学习中解释了Skip-gram .在跳过克模型中,单词向量被映射到隐藏层.执行此映射的矩阵在训练期间更新.在PV-DBOW中,隐藏层的维度应该是一个段落向量的维度.当我想将采样示例的单词向量与段落向量相乘时,它们应该具有相同的大小.单词的原始表示具有大小(词汇量x 1).执行哪个映射以在隐藏层中获得正确的大小(段落尺寸x 1).当没有存储单词向量时,如何执行此映射?我假设由于2中的等式26,单词和段落表示在隐藏层中应该具有相同的大小

nlp machine-learning neural-network gensim word2vec

6
推荐指数
1
解决办法
1285
查看次数

如何在Mac OS的Sublime Text 3中更改首选编码

我想在优胜美地的Sublime Text 3中将首选编码从US-ASCII更改为UTF-8。bash中的首选编码设置为UTF-8,因此当在终端中运行python时:

import locale
print(locale.getpreferredencoding())
Run Code Online (Sandbox Code Playgroud)

输出为:UTF-8 在Sublime Text中运行相同的代码时,输​​出为US-ASCII

在Python的构建系统中设置3:

"encoding": "UTF-8"
Run Code Online (Sandbox Code Playgroud)

要么

"env": {"PYTHONIOENCODING": "utf-8}
Run Code Online (Sandbox Code Playgroud)

没有帮助。

如何永久更改设置,这样就不必调用locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')脚本来解决问题了。

encoding utf-8 python-3.x sublimetext3 osx-yosemite

4
推荐指数
1
解决办法
855
查看次数