我对一个简单的大众汽车的输出有几个问题.我已经阅读了互联网和维基站点,但仍然不确定几个基本的东西.
我在波士顿住房数据上运行了以下内容:
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"值为零.大众真的把这个数字特征视为缺失吗?
在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) 我已经按照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)
我对理解链接和其他可能是问题的事物还很陌生。有人能够提供一些易于遵循的建议吗?
我很好奇大众通过-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) 在 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 输出。 …
我有一个带有多个数字列的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) 鉴于下面的示例数据,我想对每一行计算过去 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) 我正在尝试复制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) 我有两个数据框,我需要比较行的完整组合并返回符合条件的组合.事实证明,对于我们的小型集群来说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) 我正在学习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) 我试图弄清楚如何使用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版本似乎完全错过了单词,如果它们没有大写.
我在之前的查询中创建了一个名为 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) pyspark ×3
python ×3
r ×3
vowpalwabbit ×2
dask ×1
lme4 ×1
mixed-models ×1
nlp ×1
nltk ×1
opencv ×1
pandas ×1
pytorch ×1
quadratic ×1
redundancy ×1