我试图通过边缘特征(如其标签)对igraph图进行子集化.在可重复的例子中,我通过一点修改从另一个帖子中无耻地偷走了,我希望能够将最好的朋友关系(BF)与家庭关系(FAM)分开:
edges <- matrix(c(103, 86, 24, 103, 103, 2, 92, 103, 87, 103, 103, 101, 103, 44), ncol=2, byrow=T)
g <- graph(as.vector(t(edges)))
E(g)[c(2:4,7)]$label<-"FAM"
E(g)[c(1,5,6)]$label<-"BF"
Run Code Online (Sandbox Code Playgroud)
到目前为止我能做的最好的事情是显示有一种领带的边缘:
E(g)[E(g)$label=="BF"]
V(g)[E(g)$label=="BF"]
Run Code Online (Sandbox Code Playgroud) 假设我有这样的文字,
text<-c("[McCain]: We need tax policies that respect the wage earners and job creators. [Obama]: It's harder to save. It's harder to retire. [McCain]: The biggest problem with American healthcare system is that it costs too much. [Obama]: We will have a healthcare system, not a disease-care system. We have the chance to solve problems that we've been talking about... [Text on screen]: Senators McCain and Obama are talking about your healthcare and financial security. We need more than talk. …Run Code Online (Sandbox Code Playgroud) 我试图使用sklearn的凝聚聚类命令执行约束聚类.为了使算法受约束,它请求"连接矩阵".这被描述为:
连通性约束是通过连接矩阵强加的:scipy稀疏矩阵,其元素仅在行和列的交叉点处具有应该连接的数据集的索引.此矩阵可以根据先验信息构建:例如,您可能希望仅通过合并具有从一个指向另一个指向的链接的页面来对网页进行聚类.
我有一个观察对列表,我希望算法将强制保留在同一个集群中.我可以将其转换为稀疏scipy矩阵(coo或者csr),但是生成的集群无法强制约束.
一些数据:
import numpy as np
import scipy as sp
import pandas as pd
import scipy.sparse as ss
from sklearn.cluster import AgglomerativeClustering
# unique ids
ids = np.arange(10)
# Pairs that should belong to the same cluster
mustLink = pd.DataFrame([[1, 2], [1, 3], [4, 6]], columns=['A', 'B'])
# Features for training the model
data = pd.DataFrame([
[.0873,-1.619,-1.343],
[0.697456, 0.410943, 0.804333],
[-1.295829, -0.709441, -0.376771],
[-0.404985, -0.107366, 0.875791],
[-0.404985, -0.107366, 0.875791],
[-0.515996, 0.731980, -1.569586], …Run Code Online (Sandbox Code Playgroud) 给出一个向量:
vec <-1:5
Run Code Online (Sandbox Code Playgroud)
什么是创建矩阵的有效方法,其中矢量分量之间的差异以矩阵显示,差异矩阵,如果愿意的话.我显然可以使用两个for循环来完成此操作,但我需要使用更大的数据集来完成此操作.我试图制作这个矩阵可能有一个术语,但我找不到运气.这是结果的样子.
m<-matrix(c(NA), ncol=5, nrow=5, byrow=TRUE)
rownames(m)<-1:5;colnames(m)<-1:5
for(i in 1:5){for(j in 1:5){m[i,j]<-(as.numeric(rownames(m)[i])-as.numeric(rownames(m)[j]))}}
m
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!
当提供有关群集的信息时,Zelig似乎没有做任何事情。难道我做错了什么?我非常感谢此程序包为单个变量的更改生成预测值的便捷性-对了解我的变量之一的实质效果非常有用。
这是MWE:
library(Zelig)
data(bivariate)
summary(m_cluster <- zelig(formula=y1 ~ x1, data=bivariate, cluster="x4", "logit"))
summary(m_noCluster <- zelig(formula=y1 ~ x1, data=bivariate, "logit"))
Run Code Online (Sandbox Code Playgroud)
是否使集群变量成为一个因素似乎无关紧要:
summary(zelig(formula=y1 ~ x1, data=bivariate, cluster=as.factor(bivariate$x4), "logit"))
Run Code Online (Sandbox Code Playgroud)
感谢您的任何建议。
我想利用query_string查询的功能,但我需要查询默认在字段子集(不是全部,但也不仅仅是一个)中进行搜索。当我尝试传递许多默认字段时,查询失败。有什么建议么?
没有在查询中指定特定字段,所以我想默认搜索三个字段:
{
"query": {
"query_string" : {
"query" : "some search using advanced operators OR dog",
"default_field": ["Title", "Description", "DesiredOutcomeDescription"]
}
}
}
Run Code Online (Sandbox Code Playgroud) 上图来自Distributed Representations of Sentences and Documents,介绍 Doc2Vec 的论文。我正在使用 Gensim 的 Word2Vec 和 Doc2Vec 实现,它们很棒,但我正在寻找一些问题的清晰度。
dvm,什么是dvm.docvecs?我的印象是它是平均或连接的向量,包括所有的词嵌入和段落向量,d。这是正确的,还是d?dvm.docvecs不是d,可以自己访问 d 吗?如何?d计算?报纸上只说:在我们的段落向量框架(见图 2)中,每个段落都映射到一个唯一的向量,由矩阵 D 中的一列表示,每个词也映射到一个唯一的向量,由矩阵 W 中的一列表示。
感谢您的任何线索!
我有数据描述个人(玩家1)与另外两个人(玩家2和玩家3)的互动.每一行都描述了一个独特的玩家组合,但我想分别将玩家1分析为玩家2,将玩家1分析为玩家3对子.为了实现这一点,我设想了某种堆叠,我可以为第二和第三玩家融合描述性变量,同时保持每一行中玩家1的数据.使事情变得更复杂我为每个人提供了多个描述性变量.
这里有一小部分数据可供使用(我实际上对于玩家2和3有更多的描述性变量,我想叠加/融合):
p1_id <- c(1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1032, 1032, 1032, 1032, 1032, 1032)
p1_age <- c(53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 45, 45, 45, 45, 45)
p2_id <- c(14372, 15022, 9072, 15052, 2161, 18381, 15032, 14451, 16322, 11142, 8182, 1131, 7092, 4071, 16191, 18142, 4222, 11052, 2202, 16151)
p2_money <- c(4, 2, 2, 2, 2, 2, 2, 2, 2, 2, …Run Code Online (Sandbox Code Playgroud) 我有一个data.table,其中有许多个人(具有ID)在许多组中。在每个组中,我想找到id的每种组合(每对个体)。我知道如何使用split-apply-combine方法做到这一点,但我希望data.table会更快。
样本数据:
dat <- data.table(ids=1:20, groups=sample(x=c("A","B","C"), 20, replace=TRUE))
Run Code Online (Sandbox Code Playgroud)
拆分应用合并方法:
datS <- split(dat, f=dat$groups)
datSc <- lapply(datS, function(x){ as.data.table(t(combn(x$ids, 2)))})
rbindlist(datSc)
head(rbindlist(datSc))
V1 V2
1: 2 5
2: 2 10
3: 2 19
4: 5 10
5: 5 19
6: 10 19
Run Code Online (Sandbox Code Playgroud)
我最好的data.table尝试会产生一列,而不是包含所有可能组合的两列:
dat[, combn(x=ids, m=2), by=groups]
Run Code Online (Sandbox Code Playgroud)
提前致谢。
r ×6
python ×2
data.table ×1
doc2vec ×1
gensim ×1
igraph ×1
matrix ×1
nlp ×1
r-zelig ×1
regex ×1
regression ×1
reshape ×1
scikit-learn ×1
simulation ×1
stringr ×1
vector ×1