首页 > 解决方案 > 使用数组而不是列作为 R 中的特征进行回归

问题描述

我想知道是否可以对将在单个列中的特征进行回归以及如何进行。

例子。假设我的数据集是这样的:

my_dataset <- data.frame(users=c(1,1,1,2,2),
                         items=c('A','B',"C","A","D"),
                         target=c(0,0,0,1,1))

输出:

在此处输入图像描述

我知道通常要进行任何类型的回归,需要将列转置为每个客户有一行,其特征是这样的列

normal_dataset <- data.frame(users=c(1,2),
                             A =c(1,1),
                             B =c(1,0),
                             C= c(1,0),
                             D= c(0,1),
                             target=c(0,1)
                             )

在此处输入图像描述

但我想知道是否有模型可以直接使用第一个数据帧 my_dataset 而无需转置,因为它需要数据操作而且还需要大量数据操作

我在想也许可以将所有数据保持在一行中但像这样连接起来的东西

library("dplyr")
maybelikethis <-  my_dataset %>%
  group_by(users) %>%
  summarise(item_list = paste(items, collapse = ' '),
            target = sum(target)) %>% 
      mutate(target = ifelse(target >0,1,0))

在此处输入图像描述

我愿意接受任何建议

标签: arraysrdeep-learninglogistic-regressiondecision-tree

解决方案


我们可以spread在这里使用

library(dplyr)
library(tidyr)
my_dataset %>%
   mutate(n = 1) %>% 
   spread(items, n, fill = 0)
#.  users target A B C D
#1     1      0 1 1 1 0
#2     2      1 1 0 0 1

推荐阅读