在学习机器学习之后,我现在在神经网络中,我有一个作业 - 文本分类 - 使用神经网络。
下面,我将展示到目前为止我所拥有的
现在我正在尝试编译 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个问题
欢迎大家多提建议
给定矩阵
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.
我有一个相关矩阵,当我尝试使用“ 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)
是什么原因造成的?
有没有办法在 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) 我有两个数据集:(inds个人)和hhs(家庭)。
我正在尝试对inds$income按UID(唯一 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()特别之处使其变慢?
给定矩阵
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) 我试图从结构方程模型 (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) 给定矩阵
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")包"代理",但此方法仅适用于二进制数据.
我有两个数据框: households和individuals。
这是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) 我正在尝试使用网格覆盖地图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 米,但显然不是:

r ×9
distance ×2
matrix ×2
analysis ×1
correlation ×1
dplyr ×1
geospatial ×1
kableextra ×1
keras ×1
matching ×1
metric ×1
python ×1
r-factor ×1
r-lavaan ×1
r-markdown ×1
r-sf ×1
replace ×1
similarity ×1
tensorflow ×1