小编Gre*_*nXY的帖子

如何在rpart中应用权重?

我有 Kaggle 实践竞赛中的房屋数据,我正在使用 rpart 训练一个简单的第一个模型来预测销售价格。

该模型无法正确识别销售状况异常或预付款的销售。因此,我想增加这个在模型中显然被忽视的变量的重要性。

我假设这是通过使用“权重”参数来完成的,但如何使用该参数?如何确定我想要哪些变量具有更高的权重?

r rpart

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

根据上一个和下一个正确值替换向量中的值?

如果我有一个像

x = c(1, 2, -1, -2, 5, 6, 7, -1, -2, -3, 8, 9)
Run Code Online (Sandbox Code Playgroud)

我希望对于每个负值,向前看并计算前方有多少个负值,包括当前值。所以结果看起来像

y = c(0, 0, 2, 1, 0, 0, 0, 3, 2, 1, 0, 0)
Run Code Online (Sandbox Code Playgroud)

我的最终目标是使用这些结果根据最接近的正值的平均值创建负值的替换值。在这种情况下,我希望结果是:

result = {1,2,(2+5)/2,(2+5)/2,5,6,7,(7+8)/2,(7+8)/2,(7+8)/2,8,9}
Run Code Online (Sandbox Code Playgroud)

现在,我可以使用mutatelead使用不同的偏移量来执行此操作,但是必须有更简单的方法吗?

r

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

在 mutate_at 中使用列名称向量

这是我的数据:

ID a b c d
1  x 1 2 3
2  y 1 2 3
3  z NA NA NA
4  z 1 2 3
5  y NA NA NA
Run Code Online (Sandbox Code Playgroud)

现在,如果我想用 a 组的 b 平均值替换单列中的 NA(例如 b),我知道如何使用以下代码来实现:

data %>%
  group_by(a) %>%
  mutate(b = ifelse(is.na(b), as.integer(mean(b, na.rm=TRUE)), b)
Run Code Online (Sandbox Code Playgroud)

我想使用基本相同的代码,但将其应用于 b、c、d 列。但我的代码不起作用,我不知道为什么,它说“错误,大小不兼容 (3),期望 10(组大小)或 1”

cols <- c("b","c","d")
data %>%
  group_by(a) %>%
  mutate_at(.cols = cols, funs(ifelse(is.na(cols), 
    as.integer(mean(cols, na.rm=TRUE)), cols)
Run Code Online (Sandbox Code Playgroud)

我假设问题与查看数据时未正确应用列名称的代码有关?

r dplyr

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

标签的长度必须等于输入数据中的行数

我不知道为什么我收到这个错误!我的数据training是稀疏矩阵.

dim(training)
> 14407 161

dim(label.train)
> 14407 1

xgb.train <- xgb.DMatrix(data = training, label = label.train)
> Error in setinfo.xgb.DMatrix(dmat, names(p), p[[1]]) : 
The length of labels must equal to the number of rows in the input data
Run Code Online (Sandbox Code Playgroud)

我检查了我的数据并且:

  • label.train 是一个data.frame
  • training 没有所有零行或列
  • 所有值training都是数字

PS.我的数据非常庞大,因此我无法发布可重现的代码,只需要提供可能出现此错误的人可能出错的提示.

r xgboost

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

如何使用 R 中的 map() 内部的函数,使用推荐的参数传递方式?

我以为我了解 map() 的工作原理,但显然我不明白。我有一个与工作目录中的真实文件相对应的文件名向量:

\n
file_names <- c("filename1", "filename2", "filename3")\n
Run Code Online (Sandbox Code Playgroud)\n

这有效:

\n
library(tidyverse)\n\ndata <- data_frame(filename = file_names) %>%\n  mutate(content = map(file_names, read_tsv))\n
Run Code Online (Sandbox Code Playgroud)\n

但是当我想使用推荐的格式向 read_tsv 添加参数时map(\\\\(x) f(x, arg1, arg2))

\n
data <- data_frame(filename = file_names) %>%\n mutate(content = map(\\(file_names) read_tsv(file_names, skip = 1, col_names = FALSE)))\n
Run Code Online (Sandbox Code Playgroud)\n

我收到错误:

\n
\n

错误mutate():\n\xe2\x84\xb9 参数:content = map(function(file_names) read_tsv(file_names, skip = 1, col_names = FALSE))。\n由以下错误引起map():\n!.x必须是向量,而不是函数。

\n
\n

我尝试将 file_names 更改为 .x 等,但我不知道它是如何工作的。任何帮助表示赞赏。

\n

r dataframe purrr

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

标签 统计

r ×5

dataframe ×1

dplyr ×1

purrr ×1

rpart ×1

xgboost ×1