小编B_M*_*ner的帖子

解释Vowpal Wabbit的基本输出

我对一个简单的大众汽车的输出有几个问题.我已经阅读了互联网和维基站点,但仍然不确定几个基本的东西.

我在波士顿住房数据上运行了以下内容:

vw -d housing.vm --progress 1
Run Code Online (Sandbox Code Playgroud)

其中housing.vm文件设置为(部分):

在此输入图像描述

和输出是(部分):

在此输入图像描述

问题1:

1)按照以下步骤考虑平均损失列是否正确:

a)预测零,所以第一个平均损失是第一个例子的平方误差(预测为零)

b)在示例1上建立模型并预测示例2.平均现在的2平方损失

c)在示例1-2上建立模型并预测示例3.平均现在的3平方损失

d)......

这样做直到你到达数据的末尾(假设一次通过)

2)当前功能列是什么?它似乎是非零特征的数量+截距.示例中显示的内容表明,如果某个功能为零,则不计入该功能 - 这是真的吗?例如,第二条记录的"ZN"值为零.大众真的把这个数字特征视为缺失吗?

vowpalwabbit

5
推荐指数
1
解决办法
1168
查看次数

R中的标签编码器功能?

在python中,scikit有一个很棒的函数叫做LabelEncoder,它将分类级别(字符串)映射到整数表示.

R中有什么可以做到的吗?例如,如果有一个名为color的变量,其值为{'Blue','Red','Green'},编码器将翻译:

Blue => 1
Green => 2
Red => 3
Run Code Online (Sandbox Code Playgroud)

并使用此映射创建一个对象,然后用于以类似的方式转换新数据.

添加: 似乎只是因素不起作用,因为没有持久的映射.如果新数据具有来自训练数据的看不见的级别,则整个结构会发生变化.理想情况下,我希望新的级别标记为缺失或"其他"某种方式.

sample_dat <- data.frame(a_str=c('Red','Blue','Blue','Red','Green'))
sample_dat$a_int<-as.integer(as.factor(sample_dat$a_str))
sample_dat$a_int
#[1] 3 1 1 3 2
sample_dat2 <- data.frame(a_str=c('Red','Blue','Blue','Red','Green','Azure'))
sample_dat2$a_int<-as.integer(as.factor(sample_dat2$a_str))
sample_dat2$a_int
# [1] 4 2 2 4 3 1
Run Code Online (Sandbox Code Playgroud)

r

5
推荐指数
4
解决办法
7643
查看次数

Python导入LightGBM错误

我已经按照Linux上的说明安装了lightGBM:

https://github.com/Microsoft/LightGBM/wiki/Installation-Guide#linux-2

我能够使用CLI成功运行GPU训练(和CPU):https : //github.com/Microsoft/LightGBM/blob/master/docs/GPU-Tutorial.md#run-your-first-learning-task -gpu

但是,当我尝试导入python包(python 3.6)时,出现以下错误:

OSError: /home/anaconda3/lib/python3.6/site-packages/lightgbm-0.2-py3.6.egg/lightgbm/lib_lightgbm.so: symbol clCreateCommandQueueWithProperties, version OPENCL_2.0 not defined in file libOpenCL.so.1 with link time reference
Run Code Online (Sandbox Code Playgroud)

我对理解链接和其他可能是问题的事物还很陌生。有人能够提供一些易于遵循的建议吗?

python opencv

5
推荐指数
1
解决办法
677
查看次数

Vowpal Wabbit交互冗余

我很好奇大众通过-q参数创建交互术语的方式.

为了说明的目的,我使用这个玩具数据,称为cats.vm:

1 |a black |b small  green |c numvar1:1.62 numvar2:342 |d cat |e numvar3:554
1 |a white |b large yellow |c numvar1:1.212 numvar2:562 |d cat |e numvar3:632
-1 |a black |b small green |c numvar1:12.03 numvar2:321 |d hamster |e numvar3:754
1 |a white |b large green |c numvar1:5.8 numvar2:782 |d dog |e numvar3:234
-1 |a black |b small yellow |c numvar1:2.322 numvar2:488 |d dog |e numvar3:265
1 |a black |b large yellow |c numvar1:3.99 numvar2:882 |d hamster |e numvar3:543 …
Run Code Online (Sandbox Code Playgroud)

redundancy quadratic feature-selection vowpalwabbit

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

lmer 线性对比:Kenward Rogers 或 Satterthwaite DF 和 SE

在 R 中,我正在寻找一种方法来估计lmer使用 kenward-rogers 或 satterthwaite 自由度和 SE 的模型的线性对比的置信区间。

例如,我可以使用 t 值(来自 KR 的 df)和 SE 计算混合模型中固定效应参数的 CI,如带有 R 的 SAS。

mod<-lmerTest::lmer(y~time1+treatment+time1:treatment+(1|PersonID),data=data)
lmerTest::summary(mod,ddf = "Kenward-Roger")
Run Code Online (Sandbox Code Playgroud)

这个输出:

Fixed effects:
                Estimate Std. Error      df t value Pr(>|t|)    
(Intercept)      49.0768     1.0435 56.4700  47.029  < 2e-16 ***
time1             5.8224     0.5963 48.0000   9.764 5.51e-13 ***
treatment         1.6819     1.4758 56.4700   1.140   0.2592    
time1:treatment   2.0425     0.8433 48.0000   2.422   0.0193 * 
Run Code Online (Sandbox Code Playgroud)

允许时间 1 的 CI,例如:

5.8224+abs(qt(0.05/2, 48))*0.5963 #7.021342
5.8224-abs(qt(0.05/2, 48))*0.5963 #4.623458
Run Code Online (Sandbox Code Playgroud)

我想为固定系数的线性对比做同样的事情。这是 p 值,但没有 SE 输出。 …

r lme4 mixed-models

3
推荐指数
1
解决办法
1666
查看次数

Pyspark专栏的十分位数或其他分位数等级

我有一个带有多个数字列的pyspark DF,我希望每列根据每个变量计算该行的十分位数或其他分位数等级.

这对于pandas来说很简单,因为我们可以使用qcut函数为每个变量创建一个新列,为'q'分配值0到n-1,如pd.qcut(x,q = n).

怎么能在pyspark完成?我已经尝试了以下但很明显这些三分之一的断点并不是唯一的.我想得到分配1的下1/3,下一个1/3分配2和前1/3分配3.我希望能够改变这个并且可能使用1/10,1/32等

w =  Window.partitionBy(data.var1).orderBy(data.var1)
d2=df.select(
    "var1",
     ntile(3).over(w).alias("ntile3")
)


agged=d2.groupby('ntile3').agg(F.min("var1").alias("min_var1"),F.max("var1").alias("max_var1"),F.count('*'))
agged.show()

+------+--------+--------+--------+
|ntile3|min_var1|max_var1|count(1)|
+------+--------+--------+--------+
|     1|     0.0|   210.0|  517037|
|     3|     0.0|   206.0|  516917|
|     2|     0.0|   210.0|  516962|
+------+--------+--------+--------+
Run Code Online (Sandbox Code Playgroud)

pyspark

3
推荐指数
1
解决办法
2954
查看次数

Pyspark - 日期偏移之间的窗口函数范围

鉴于下面的示例数据,我想对每一行计算过去 3 天内看到相同“var1”值的行数。

_schema = StructType([StructField("date", StringType(), True),
                               StructField("var1", IntegerType(), True),
                         StructField("var2", StringType(), True)])


test_list = [('2017-01-30',123,'A'),
('2017-01-17',123,'B'),
('2017-01-15',123,'A'),
('2017-01-15',123,'A'),
('2017-01-14',123,'A'),
('2017-01-11',123,'B'),
('2017-01-29',456,'A'),
('2017-01-22',789,'B'),
('2017-01-21',789,'B'),
('2017-01-20',789,'A'),
('2017-01-19',789,'A')

]

df = sqlContext.createDataFrame(test_list,schema=_schema) 
df=(df.withColumn('date',df.date.cast(DateType())))
Run Code Online (Sandbox Code Playgroud)

我不确定如何设置 rangeBetween 来表示仅包含 var1(例如 123)存在且日期为 3 天前的行,不包括当前日期。

wSpec1=Window.partitionBy('var1').orderBy('date').rangeBetween(-3,-1)

df.withColumn("events_past_3days",F.count(df.var2).over(wSpec1))
Run Code Online (Sandbox Code Playgroud)

这给了我一个超出我经验的错误:

AnalysisException: u'Window specification windowspecdefinition(var1#368, date#374 ASC, RANGE BETWEEN 3 PRECEDING AND 1 PRECEDING) is not valid because The data type of the expression in the ORDER BY clause should be a numeric type.;;\nProject [date#374, var1#368, var2#369, dayssinceJan11900#379, events_past_3days#856L]\n+- …
Run Code Online (Sandbox Code Playgroud)

pyspark

3
推荐指数
1
解决办法
1695
查看次数

从 Flexmix 中提取最佳参数:单变量数据

我正在尝试复制HMM书中的一个表:

在此输入图像描述

具体来说,k=2模型。

我正在使用代码:

dat<-as.data.frame(c(13,  8,  23,   22, 18, 15, 14, 11, 24, 18, 14, 16, 8,  14, 27, 15, 10, 13, 10, 23, 41, 20, 15, 15, 16, 18, 31, 15, 8,  16, 26, 17, 27, 22, 15, 11, 32, 19, 35, 19, 6,  11, 27, 20, 26, 16, 11, 18, 22, 28, 30, 8,  32, 19, 36, 27, 7,  36, 13, 39, 29, 18, 24, 26, 21, 23, 16, 22, 13, 17, 20, 13, 23, 14, 22, 16, …
Run Code Online (Sandbox Code Playgroud)

r

2
推荐指数
1
解决办法
355
查看次数

Pandas Apply - 返回多行

我有两个数据框,我需要比较行的完整组合并返回符合条件的组合.事实证明,对于我们的小型集群来说Spark(使用交叉连接)过于密集,所以我正在尝试这种方法,最终会看到是否Dask可以改进它.

如果表A和B是

a=pd.DataFrame(np.array([[1,2,3],[4,5,6]]), columns=['a','b','c'])

b=pd.DataFrame(np.array([[4,7,4],[6,5,1],[8,6,0]]), columns=['d','e','f'])
Run Code Online (Sandbox Code Playgroud)

然后所有组合看起来像这样,其中计算AD.假设我只想保留AD> = - 3的行

A   B   C   D   E   F   A-D
1   2   3   4   7   4   -3
1   2   3   6   5   1   -5
1   2   3   8   6   0   -7
4   5   6   4   7   4   0
4   5   6   6   5   1   -2
4   5   6   8   6   0   -4
Run Code Online (Sandbox Code Playgroud)

我尝试使用apply执行此操作,但似乎我无法返回dataframe函数的多行(该函数创建'A'的单行和'B'的整个表的所有组合并返回行符合标准.

这是我测试的功能:

def return_prox_branches(a, B, cutthresh):

    aa=a['a']-B['d']

    keep_B = B.copy().loc[(aa.values >= cutthresh),:]

    keep_B['A']=a['a']

    keep_B['B']=a['b'] …
Run Code Online (Sandbox Code Playgroud)

python pandas dask

2
推荐指数
1
解决办法
870
查看次数

每次Pytorch正向通行证都会发生变化?

我正在学习pytorch并运行玩具回归问题。我似乎每次对模型运行张量时,预测都会改变,这一事实令我感到困惑。显然不是这样,但是我想念的是什么?

Pytorch版本: 0.4.0

我在没有GPU的情况下运行以消除该潜在问题。

码:

from __future__ import division
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import torch
import torch.utils.data as utils_data
from torch.autograd import Variable
from torch import optim, nn
from torch.utils.data import Dataset 
import torch.nn.functional as F
from torch.nn.init import xavier_uniform_, xavier_normal_,uniform_
from sklearn.datasets import load_boston
from sklearn.metrics import mean_squared_error

cuda=False #set to true uses GPU


#load boston data from scikit
boston = load_boston()
x=boston.data
y=boston.target
y=y.reshape(y.shape[0],1)

#change to tensors
x = torch.from_numpy(x) …
Run Code Online (Sandbox Code Playgroud)

neural-network pytorch

2
推荐指数
1
解决办法
1051
查看次数

Python Nltk中的斯坦福实体识别器(无壳)

我试图弄清楚如何使用NLTK的实体识别器的无壳版本.我下载了http://nlp.stanford.edu/software/stanford-ner-2015-04-20.zip并将其放在python的site-packages文件夹中.然后我下载了http://nlp.stanford.edu/software/stanford-corenlp-caseless-2015-04-20-models.jar并将其放在文件夹中.然后我在NLTK中运行了这段代码

from nltk.tag.stanford import NERTagger
english_nertagger = NERTagger(‘/home/anaconda/lib/python2.7/site-packages/stanford-ner-2015-04-20/classifiers/english.conll.4class.distsim.crf.ser.gz’, ‘/home/anaconda/lib/python2.7/site-packages/stanford-ner-2015-04-20/stanford-corenlp-caseless-2015-04-20-models.jar’)
Run Code Online (Sandbox Code Playgroud)

但当我运行这个:

english_nertagger.tag(‘Rami Eid is studying at stony brook university in NY’.split())
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

Error: Could not find or load main class edu.stanford.nlp.ie.crf.CRFClassifier
Run Code Online (Sandbox Code Playgroud)

如果您有经验,任何帮助表示赞赏!

PS我可以让非caseless版本工作正常,但我发现在分析搜索查询时,用户几乎不会大写单词,而非caseless版本似乎完全错过了单词,如果它们没有大写.

python nlp nltk

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

Pyspark SQL 表达式与 when() 作为 case 语句

我在之前的查询中创建了一个名为 v1 的字段。然后我尝试从中创建一个新的派生字段。

一种方法有效,另一种则无效。我不明白,我希望它们是等价的。

这有效:

df = df.withColumn("outcome",expr("case when v1 = 0 then 1 when v1 > 0 then 2 else 0 end"))
Run Code Online (Sandbox Code Playgroud)

这失败了:

df = df.withColumn("outcome", F.when(F.col("v1") == 0, 1)
      .F.when(F.col("v1") >0, 2)
      .otherwise(0))
Run Code Online (Sandbox Code Playgroud)

有错误:

Py4JJavaError: An error occurred while calling o520.when.
: java.lang.IllegalArgumentException: when() can only be applied on a Column previously generated by when() function
Run Code Online (Sandbox Code Playgroud)

apache-spark-sql pyspark

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