小编Wer*_*ner的帖子

“SparseTensor”对象不可下标 keras

在学习机器学习之后,我现在在神经网络中,我有一个作业 - 文本分类 - 使用神经网络。

下面,我将展示到目前为止我所拥有的

  1. 处理数据
  2. 计数器矢量化器

现在我正在尝试编译 NN 但是我收到以下错误

TypeError:“SparseTensor”对象不可下标回溯(最近一次调用最后一次):文件“/opt/conda/lib/python3.7/site-packages/tensorflow/python/ops/script_ops.py”,第 242 行,调用 return func(device, token, args) 文件“/opt/conda/lib/python3.7/site-packages/tensorflow/python/ops/script_ops.py”,第 131 行,调用中

我的数据形状如下

X_train.shape = (17621, 8014)

type(X_train) = scipy.sparse.csr.csr_matrix
Run Code Online (Sandbox Code Playgroud)

该模型

model = Sequential()
model.add(Dense(1015, input_shape=(17621, 8014) , activation = 'relu'))
model.add(Dense(5, activation = 'sigmoid'))
model.add(Dense(1,activation='sigmoid'))
model.compile(loss = 'binary_crossentropy',metrics = ['accuracy'], optimizer = 'adam')
model.fit(x=X_train, y=y_train,epochs=500,batch_size=125,
          validation_data=(X_test,y_test))
Run Code Online (Sandbox Code Playgroud)

另外,我还有2个问题

  1. input_shape ~ input_dimension 之间有什么区别?
  2. 当我添加第一层时。我应该设置多少个感知器?
  3. 最重要的是我做错了什么?

欢迎大家多提建议

python keras tensorflow

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

如何创建包含每行之间平均绝对分数的距离矩阵?

给定矩阵

     X1 X2 X3 X4 X5
[1,]  1  2  3  2  1
[2,]  2  3  4  4  3
[3,]  3  4  4  6  2
[4,]  4  5  5  5  4
[5,]  2  3  3  3  6
[6,]  5  6  2  8  4
Run Code Online (Sandbox Code Playgroud)

我想创建一个距离矩阵,其中包含每列每行之间的绝对平均差异.例如,X1和X3之间的距离应为= 1.67,前提是:

abs(1-3)+ abs(2-4)+ abs(3-4)+ abs(4-5)+ abs(2-3)+ abs(5-2)= 10/6 = 1.67.

我已经尝试过使用纯素包中的designdist函数:

designdist(t(test), method = "abs(A-B)/6", terms = "minimum")
Run Code Online (Sandbox Code Playgroud)

第1列和第3列的最终距离为0.666.这个函数的问题是它将每列中的所有值相加,然后减去它们.但我需要将每一行之间的绝对差值(单独,绝对)相加,然后除以N.

r distance matrix

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

错误:L-BFGS-B需要有限值'fn'

我有一个相关矩阵,当我尝试使用“ factanal”函数对其进行最大似然因子分析时,出现以下错误:

factanal(covmat=matches_adjusted, factors=5, rotation=none, na.omit(matches_adjusted))
Warning in log(e) : NaNs produced
Error in optim(start, FAfn, FAgr, method = "L-BFGS-B", lower = lower,  : 
L-BFGS-B needs finite values of 'fn'
Run Code Online (Sandbox Code Playgroud)

是什么原因造成的?

analysis r correlation r-factor

5
推荐指数
0
解决办法
1192
查看次数

在Rmarkdown中显示长表

有没有办法在 PDF 输出中很好地显示多列表格rmarkdown?寻找一些包装器选项来将其显示为 3 个连续的表,但不会将数据帧分成 3 个单独的帧。这是我的块,它使表格非常小​​并且几乎难以辨认。

library(knitr)
library(readr)
library(kableExtra)
dat_url <- 'https://gender-pay-gap.service.gov.uk/viewing/download-data/2019'
dat <- read_csv(dat_url) 
kable(head(dat), caption='Sample Data: 6 rows', booktabs=TRUE, linesep="")  %>%
kable_styling(latex_options =c('striped', 'scale_down'))
Run Code Online (Sandbox Code Playgroud)

r r-markdown kableextra

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

dplyr:按组汇总(sum)非常慢

我有两个数据集:(inds个人)和hhs(家庭)。

我正在尝试对inds$incomeUID(唯一 ID)分组的所有内容hhs求和,并在家庭中所有个人的收入总和上创建一个新列。有些人没有任何收入,在这种情况下,他们对该变量有“NA”。我正在使用的代码是:

hhs <- left_join(hhs, inds %>% group_by(UID) %>% summarize(hhincome = sum(income, na.rm=TRUE)))
Run Code Online (Sandbox Code Playgroud)

但是,它非常慢。inds有超过 200 万行,hhs大约有 550k 行。我曾经dplyr在相同的数据集中对相似的变量进行平均或计数,通常需要 10 秒或更短的时间来完成这项工作。有什么我做错了吗?有没有办法让它更快?

编辑:正如我所说,我过去常常dplyer获得平均家庭价值而没有问题

hhs <- left_join(hhs, inds %>% filter(AGE > 2) %>% group_by(UID) %>% summarize(L_Bilingual = mean(Bilingual, na.rm=TRUE)))
Run Code Online (Sandbox Code Playgroud)

用上面的代码计算均值需要 5 秒。该功能是否有任何sum()特别之处使其变慢?

r dplyr

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

用矩阵中的列表替换奇异值

给定矩阵

test <- structure(list(X1 = c(3L, 0L, 3L, 1L, 2L, 2L, 1L, 2L, 2L, 3L), 
X2 = c(2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), X3 = c(0L, 
0L, 3L, 0L, 2L, 2L, 3L, 0L, 0L, 2L), X4 = c(1L, 1L, 1L, 0L, 
3L, 1L, 3L, 1L, 1L, 1L), X5 = c(3L, 3L, 1L, 3L, 1L, 3L, 2L, 
3L, 3L, 3L), X6 = c(3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L
), X7 = c(2L, 2L, …
Run Code Online (Sandbox Code Playgroud)

replace r matrix

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

估计 SEM 模型的方差膨胀因子 (VIF) (lavaan)

我试图从结构方程模型 (SEM) 中找到方差膨胀因子 (VIF)。我的模型是:

# load the data
library(readxl)
Log_And_SurveyResult <- read_excel("C:/Users/Aakash/Desktop/analysis/Today/Mot-Log.xlsx")

# load lavaan
library(lavaan)

#scale the variables
Log_And_SurveyResult$Time <-
scale(Log_And_SurveyResult$TotalActivity)

model <-
Ct =~ CT1 + CT2 + CT3
R =~ R1 + R2 + R3
B =~ B1 + B2 + B3
UserActivity =~ Time + TotalActivity

fit <- sem(model,data = Log_And_SurveyResult, std.lv = TRUE)
summary(fit, standardized=T)
Run Code Online (Sandbox Code Playgroud)

这是我的数据示例:

Time,TotalActivity,CT1,CT2,CT3,R1,R2,R3,B1,B2,B3
-0.4923798,-0.09991485,4,4,4,3,3,3,3,3,2
-1.0519708,-1.12771752,3,2,2,2,2,3,4,2,3
-0.5330384,-0.06320762,4,4,5,5,4,4,4,4,4
-1.0134522,-0.67805386,5,4,4,5,5,4,4,5,5
-1.1568273,-1.18277838,4,3,4,3,2,3,3,4,4
-0.8561675,-0.12744528,3,4,4,4,4,3,3,3,3
Run Code Online (Sandbox Code Playgroud)

当我运行时vif(fit),出现错误:

Error: $ operator not defined for this S4 class …
Run Code Online (Sandbox Code Playgroud)

r r-lavaan

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

连续,非二进制数据的简单匹配相似性矩阵?

给定矩阵

structure(list(X1 = c(1L, 2L, 3L, 4L, 2L, 5L), X2 = c(2L, 3L, 
4L, 5L, 3L, 6L), X3 = c(3L, 4L, 4L, 5L, 3L, 2L), X4 = c(2L, 4L, 
6L, 5L, 3L, 8L), X5 = c(1L, 3L, 2L, 4L, 6L, 4L)), .Names = c("X1", 
"X2", "X3", "X4", "X5"), class = "data.frame", row.names = c(NA, 
-6L))
Run Code Online (Sandbox Code Playgroud)

我想创建一个5 x 5距离矩阵,其中匹配比率和所有列之间的总行数.例如,X4和X3之间的距离应为0.5,假设两列匹配6次中的3次.

我尝试使用dist(test, method="simple matching")包"代理",但此方法仅适用于二进制数据.

r distance similarity metric matching

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

计算一个数据框中的发生次数,将结果输入到另一个数据框中

我有两个数据框: householdsindividuals

这是households

structure(list(ID = 1:5), class = "data.frame", row.names = c(NA, 
-5L))
Run Code Online (Sandbox Code Playgroud)

这是individuals

structure(list(ID = c(1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L, 
3L, 4L, 4L, 4L, 4L, 5L, 5L), Yesno = c(1L, 0L, 1L, 0L, 0L, 0L, 
1L, 1L, 1L, 0L, 0L, 1L, 1L, 0L, 0L, 1L, 0L)), class = "data.frame", row.names = c(NA, 
-17L))
Run Code Online (Sandbox Code Playgroud)

我试图添加一个新列来计算变量等于 1households的次数,并按 分组结果。YesnoID

我努力了

households$Count <- as.numeric(ave(individuals$Yesno[individuals$Yesno == 1], households$ID, …
Run Code Online (Sandbox Code Playgroud)

r

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

sf::st_make_grid() 中的单元格大小似乎与地图单位无关

我正在尝试使用网格覆盖地图sf。我的问题是在尝试设置网格的单元格大小时出现的。

demo(nc, ask = FALSE, echo = FALSE)
my_grid <- sf::st_make_grid(x = nc, cellsize = c(1, 4))
Run Code Online (Sandbox Code Playgroud)

根据文档(我在某处找到但无法将其挖掘出来:-/),像元大小应以底层地图的单位表示。这些是米,请参阅:

sf::st_length(nc)
Units: [m]
  [1] 141665.40 119928.97 ...
Run Code Online (Sandbox Code Playgroud)

然而,看一下上面代码生成的图,可以清楚地看到没有 1 x 4 米的网格单元,而是更大的网格单元。如果您愿意,您可以帮助我们了解如何将网格单元尺寸设置为 1 x 4 米吗?

plot(nc['NAME'])
plot(my_grid, add = TRUE)
Run Code Online (Sandbox Code Playgroud)

网格单元格大小应为 1 x 4 米,但显然不是:

网格单元大小应为 1 x 4 米,但显然不是。

r geospatial r-sf

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