Как использовать функцию createdatapartition() в r


Вы можете использовать функцию createDataPartition() пакета Caret в R, чтобы разделить фрейм данных на обучающий и тестовый наборы для построения модели.

Эта функция использует следующий базовый синтаксис:

createDataPartition(y, times = 1, p = 0,5, list = TRUE, …)

Золото:

  • y : вектор результатов
  • times : количество создаваемых разделов.
  • p : процент данных для использования в обучающем наборе
  • list : сохранять ли результаты в списке или нет

В следующем примере показано, как использовать эту функцию на практике.

Пример: использование createDataPartition() в R

Предположим, у нас есть фрейм данных в R с 1000 строк, содержащий информацию о часах, проведенных студентами, и их соответствующих баллах на выпускном экзамене:

 #make this example reproducible
set. seeds (0)

#create data frame
df <- data. frame (hours=runif(1000, min=0, max=10),
                 score=runif(1000, min=40, max=100))

#view head of data frame
head(df)

     hours score
1 8.966972 55.93220
2 2.655087 71.84853
3 3.721239 81.09165
4 5.728534 62.99700
5 9.082078 97.29928
6 2.016819 47.10139

Предположим, мы хотим применить простую модель линейной регрессии , которая использует изученные часы для прогнозирования итоговой оценки за экзамен.

Допустим, мы хотим обучить модель на 80% строк во фрейме данных и протестировать ее на оставшихся 20% строк.

Следующий код показывает, как использовать функцию createDataPartition() пакета Caret для разделения кадра данных на обучающий и тестовый наборы:

 library (caret)

#partition data frame into training and testing sets
train_indices <- createDataPartition(df$score, times= 1 , p= .8 , list= FALSE )

#create training set
df_train <- df[train_indices, ]

#create testing set
df_test <- df[-train_indices, ]

#view number of rows in each set
nrow(df_train)

[1] 800

nrow(df_test)

[1] 200

Мы видим, что наш набор обучающих данных содержит 800 строк, что составляет 80% исходного набора данных.

Аналогичным образом мы видим, что наш тестовый набор данных содержит 200 строк, что составляет 20% исходного набора данных.

Мы также можем визуализировать первые строки каждого набора:

 #view head of training set
head(df_train)

     hours score
1 8.966972 55.93220
2 2.655087 71.84853
3 3.721239 81.09165
4 5.728534 62.99700
5 9.082078 97.29928
7 8.983897 42.34600

#view head of testing set
head(df_test)

      hours score
6 2.016819 47.10139
12 2.059746 96.67170
18 7.176185 92.61150
23 2.121425 89.17611
24 6.516738 50.47970
25 1.255551 90.58483

Затем мы можем приступить к обучению регрессионной модели с использованием обучающего набора и оценить ее производительность с помощью тестового набора.

Дополнительные ресурсы

В следующих руководствах объясняется, как использовать другие распространенные функции в R:

Как выполнить перекрестную проверку K-Fold в R
Как выполнить множественную линейную регрессию в R
Как выполнить логистическую регрессию в R

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *