Каре

Неровное каре: Неровное каре (62 фото)

Неровное каре (106 фото)

Асимметричное каре Деметриус

Кэти Перри стрижка каре

Стрижка каре градуированное каре

Стрижка Боб филированный

Bob Kare стрижка

Bob Kare стрижка

Филированный Боб

Bob Kare стрижка

Боб каре с челкой 2021

Стрижка Боб каре

Каре Блант Боб 2020 с чёлкой

Стрижки женские на средние волосы без челки Боб каре

Джена Татум стрижка каре

Стрижка полубоб каре

Стрижка Боб сессон на средние волосы

Кайли Дженнер 2021

Bob Kare стрижка

Карэ удлиненное каре 2020

Карли Клосс стрижка каре

Каре Блант Боб

Каре Блант Боб

Стрижка каре асимметрия Боб Боб

Стрижка удлиненное каре Боб 2021

Каре растрепка

Полубоб каре Деметриус

Боб каре Деметриус

Стрижка Боб-каре на средние волосы

Эмили Ратажковски с каре

Удлинённый Боб филированный

Каре Блант Боб 2020 блонд

Удлинённое каре асимметрия

Боб и Боб каре с асимметрией

Боб-каре на средние рваные

Ана де Армас 2021

Сара Хардинг стрижки Боб

Боб и Боб каре с асимметрией

Каре Блант Боб 2020 с чёлкой

Виктория Бекхэм стрижка каре удлиненное

Карэ Боб стрижка блонд

Боб каре с филировкой

Кира Найтли стрижки

Филированный Боб каре

Каре-Боб без челки на средние

Каре Блант Боб 2020

Классическое Боб каре без челки

Удлиненный Боб каре асимметрия

Асимметричное удлиненное Боб каре

Стрижка каре

Боб каре Кэти Холмс

Стрижки под каре

Боб каре с косым пробором

Классический Боб каре

Стрижка Боб каре блонд

Каре Блант Боб 2020

Bob Kare стрижка

Дженни Маккарти каре

Тейлор Свифт. Классическое каре.

Каре стрижка женская

Боб каре Пэрис Хилтон

Каре тренд 2021-2022

Стрижка бобкарэ до плеч

Стрижка Боб-каре каре на удлие

Гладкое каре

Боб 2021

Классическое каре 2021

Прямое каре

Bob Kare стрижка

Стрижка Боб асимметрия на длинные волосы

Асимметричное градуированное каре

Боб каре без челки

Укороченный градуированный Боб

Ванесса Хадженс стрижка каре

Каре Блант Боб с челкой

Стрижка полубоб каре

Боб каре Деметриус

Стрижка каре Боб удлиненная с челкой

Стрижка Боб сэссун

Рианна стрижка каре

Классический Боб каре с челкой

Боб-каре на среднем волосы без челки

Bob Kare стрижка до плеч

Деметриус стрижки каре

Стрижки Боб каре с ровными челками

Стрижка Боб каре удлиненное на средние волосы

Боб каре асимметрия удлиненное

Каре Боб Трэйси

Джена Татум стрижка каре

Дженни Маккарти каре

Темный Боб каре с челкой

Стрижка Боб каре без челки

Стрижки женские

Стрижка каре

Стрижка Боб филированный

Каре с челкой филированное

Виктория Бекхэм стрижка Боб

Стрижка полубоб каре

Стрижка каре классическое

Каре Блант Боб 2020 шатенка

Лонг Боб

Стрижка Боб каре видал Сассун

Прическа Виктории Бекхэм удлиненное каре

Стрижка боб-каре

Эта вариация прически объединяет в себе элементы каре и боба — традиционный боб слегка удлинился и к нему добавляется челка. Боб-каре — модная женская стрижка 2013 года, имеющая множество самых разнообразных вариаций. Хотите быть в тренде? Тогда выбирайте тот вариант, который идеально подойдет вашему лицу и подчеркнет его красоту.

Виды стрижки боб

Вид стрижки боб формируется в зависимости от челки, структуры и длины волос. Боб удобен тем, что в этой стрижке не существует определенных требований к длине и типу челки. Возможно выбрать вариант стрижки боб, учитывая форму своего лица и тип волос, а не только экспериментируя с модными веяниями. Для тонких волос можно выбрать вариант без челки, а вот если волосы густые, то лучше выбрать прямую челку, подчеркивающую силу волос. Рассмотрим три популярных варианта стрижки боб.

  1. Стрижка короткий боб — идеально подходит молодым девушкам с правильными чертами лица и утонченной фигурой. Но выполняется она только на прямых волосах. Благодаря оголенной шее образ обретает дополнительную сексуальность и соблазнительность. Хорошо сочетается короткий боб с рваной или косой челкой. Небольшие эксперименты с модными оттенками при колорировании добавят стильность этой стрижке. Гламурная короткая стрижка боб-каре — отличная идея для кардинального и смелого перевоплощения в роковую красавицу.
  2. Стрижка удлиненный боб — смотрится женственно и элегантно. Здесь возможно выбрать для себя один из двух основных вариантов: резкий переход от затылка к передним прядям либо создание более плавных линий. Первый вариант — для кокетливых особ, любящих гламур. Удлиненный боб поможет зрительно смягчить лицо с массивными чертами. Эта стрижка на длинных или средних волосах прекрасно сочетается с овальным или круглым лицом, а также выигрышно смотрится на девушках с худощавым лицом и длинной шеей.
  3. Стрижка асимметричный боб, предполагающая неровное расположение волос или непрямой пробор, — это достаточно оригинальный вариант для искушенных модниц, готовых на интересные эксперименты с внешностью. У такой стрижки множество возможностей для сотворения всевозможных причесок, и ее можно в любой миг превратить обратно в классический боб. Вариацию асимметричного боба возможно подобрать под любой тип лица и для женщин любого возраста. Кроме того, эта стрижка позволит отвлечь внимание от невыгодных черт лица или же, наоборот, сделать акцент на том, что лицо украшает.

Технология стрижки боб-каре

Технология этой стрижки может быть многообразной, каждый парикмахер имеет свои секреты, учитывая нюансы структуры волос, однако несколько правил соблюдаются всегда. Стрижку выполняют на влажных волосах, начиная с затылочной области. Центральную прядь оттягивают и срезают до установленной длины, далее по этой пряди выравнивают все остальные. Так стригут до макушки, затем переходят к вискам. Пряди височной зоны оттягивают и состригают, приравнивая к длине прядей на затылке. Далее при необходимости формируется челка.

Укладка стрижки боб

Как правило, для укладки такой стрижки требуется фен, брашинг и одно из укладочных средств. Вариантов причесок на основе этой стрижки — масса, и есть возможность выбирать каждый раз что-то новое.

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

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

 


Статьи по теме:


Стрижка каре


Каре уже много лет является одной из наиболее популярных женских стрижек. В нашем новом материале мы расскажем о технологии стрижки каре и о том, кому она подходит.

Короткие стрижки с челкой


Короткие стрижки с челкой являются одновременно элегантными и простыми в исполнении. Разнообразие вариантов укладки позволяет создать совершенно новый неповторимый образ. Наша статья подробнее расскажет о том, какой вид прически подойдет именно вам.

Женские стрижки для круглого лица

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

Каскадная стрижка


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

11 Подвыборка для дисбалансов классов

Содержание

  • Методы подвыборки
  • Подвыборка во время передискретизации
  • Осложнения
  • Использование пользовательских методов подвыборки

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

  • понижение частоты дискретизации : случайное подмножество всех классов в обучающем наборе, чтобы частота их классов соответствовала наименее распространенному классу. Например, предположим, что 80 % выборок обучающей выборки относятся к первому классу, а остальные 20 % — ко второму классу. Понижающая выборка будет случайным образом выбирать первый класс, чтобы он был того же размера, что и второй класс (так что только 40% всего обучающего набора используется для соответствия модели). каретка содержит функцию ( downSample ), чтобы сделать это.
  • повышающая выборка : случайная выборка (с заменой) класса меньшинства, чтобы он был того же размера, что и класс большинства. каретка содержит функцию ( upSample ) для этого.
  • гибридные методы : методы, такие как SMOTE и ROSE, уменьшают выборку большинства классов и синтезируют новые точки данных в меньшинстве классов. Есть два пакета ( DMwR и ROSE ), которые реализуют эти процедуры.

Обратите внимание, что этот тип выборки отличается от разделения данных на обучающую и тестовую выборку. Вы никогда не захотите искусственно сбалансировать тестовый набор; частоты его класса должны соответствовать тому, что можно было бы увидеть «в дикой природе». Кроме того, описанные выше процедуры не зависят от методов повторной выборки, таких как перекрестная проверка и начальная загрузка.

На практике можно взять обучающую выборку и перед подгонкой модели произвести выборку данных. Есть две проблемы с этим подходом

  • Во-первых, во время настройки модели пропущенные выборки, созданные во время повторной выборки, также просматриваются и могут не отражать дисбаланс классов, с которым столкнутся будущие прогнозы. Это может привести к чрезмерно оптимистичным оценкам производительности.
  • Во-вторых, процесс подвыборки, вероятно, вызовет большую неопределенность модели. Будут ли результаты модели отличаться для другой подвыборки? Как и выше, статистика повторной выборки, скорее всего, сделает модель более эффективной, чем она есть на самом деле.

Альтернативой является включение подвыборки в обычную процедуру повторной выборки. Это также рекомендуется для этапов предварительной обработки и выбора функций. Два недостатка заключаются в том, что это может увеличить время вычислений, а также может усложнить анализ другими способами (см. Раздел ниже о ловушках).

11.1 Методы подвыборки

Чтобы проиллюстрировать эти методы, давайте смоделируем некоторые данные с дисбалансом классов, используя этот метод. Мы смоделируем обучающий и тестовый наборы, каждый из которых содержит 10 000 образцов, а коэффициент меньшинства составляет около 5,9.%:

 библиотека(вставка)
set. seed(2969)
imbal_train <- twoClassSim (10000, перехват = -20, linearVars = 20)
imbal_test <- twoClassSim (10000, перехват = -20, linearVars = 20)
таблица (imbal_train $ класс) 
 ##
## Класс1 Класс2
## 9411 589 

Давайте создадим разные версии тренировочного набора перед настройкой модели:

 set.seed(9560)
down_train <- downSample(x = imbal_train[ -ncol(imbal_train)],
                         y = imbal_train$класс)
таблица (down_train $ класс) 
 ##
## Класс1 Класс2
## 589 589 
 набор семян (9560)
up_train <- upSample(x = imbal_train[ -ncol(imbal_train)],
                     y = imbal_train$класс)
таблица (up_train $ класс) 
 ##
## Класс1 Класс2
## 9411 9411 
 библиотека (DMwR)
set.seed(9560)
smote_train <- SMOTE (класс ~ ., данные = imbal_train)
Таблица (smote_train $ Класс) 
 ##
## Класс1 Класс2
## 2356 1767 
 библиотека (РОЗА)
set.seed (9560)
rose_train <- ROSE(класс ~ ., данные = imbal_train)$данные
таблица (rose_train $ класс) 
 ##
## Класс1 Класс2
## 4939 5061 

Для этих данных мы будем использовать групповую классификацию и оценим площадь под ROC-кривой, используя пять повторений 10-кратного CV.

 ctrl <- trainControl (метод = "repeatedcv", повторы = 5,
                     классПробс = ИСТИНА,
                     SummaryFunction = twoClassSummary)
set.seed(5627)
orig_fit <- train (класс ~ ., data = imbal_train,
                  метод = "деревянная сумка",
                  nбагг = 50,
                  метрика = "РПЦ",
                  трКонтрол = Ctrl)
set.seed(5627)
down_outside <- train (класс ~ ., data = down_train,
                      метод = "деревянная сумка",
                      nбагг = 50,
                      метрика = "РПЦ",
                      трКонтрол = Ctrl)
set.seed(5627)
up_outside <- train (класс ~ ., data = up_train,
                    метод = "деревянная сумка",
                    nбагг = 50,
                    метрика = "РПЦ",
                    трКонтрол = Ctrl)
set.seed(5627)
rose_outside <- поезд (класс ~ ., данные = rose_train,
                      метод = "деревянная сумка",
                      nбагг = 50,
                      метрика = "РПЦ",
                      трКонтрол = Ctrl)
set. seed(5627)
smote_outside <- train (класс ~ ., data = smote_train,
                       метод = "деревянная сумка",
                       nбагг = 50,
                       метрика = "РПЦ",
                       trControl = ctrl) 

Мы сопоставим результаты повторной выборки и создадим оболочку для оценки производительности набора тестов:

 external_models <- list(original = orig_fit,
                       вниз = вниз_снаружи,
                       вверх = вверх_снаружи,
                       SMOTE = smote_outside,
                       РОЗА = rose_outside)
external_resampling <- ресамплинг (внешние_модели)
test_roc <- функция (модель, данные) {
  библиотека (pROC)
  roc_obj <- roc(данные$класс,
                 предсказать (модель, данные, тип = "проблема") [ "Класс1"],
                 уровни = c("Класс2", "Класс1"))
  ci(roc_obj)
  }
external_test <- lapply (outside_models, test_roc, data = imbal_test)
external_test <- lapply (outside_test, as.vector)
external_test <- do. call("rbind", external_test)
colnames(outside_test) <- c("нижний", "ROC", "верхний")
external_test <- as.data.frame(outside_test)
сводка (outside_resampling, metric = "ROC") 
 ##
## Вызов:
## summary.resamples(object = external_resampling, metric = "ROC")
##
## Модели: оригинал, вниз, вверх, SMOTE, ROSE
## Количество ресемплов: 50
##
## ОКР
## Мин. 1 кв. Медиана Среднее 3-е кв. Максимум. АН
## исходный 0,9098237 0,9298348 0,9386021 0,9394130 0,9493394 0,9685873 0
## вниз 0,9095558 0,9282175 0,9453907 0,9438384 0,9596021 0,9836254 0
## вверх 0,9989350 0,9999980 1,0000000 0,9998402 1,0000000 1,0000000 0
## УДАР 0.9697171 0,9782214 0,9834234 0,9817476 0,9857071 0,9928255 0
## ROSE 0.8782985 0.8941488 0.8980313 0.8993135 0.9056404 0.9203092 0 
 external_test 
 ## нижний ROC верхний
## исходный 0,9130010 0,9247957 0,9365905
## вниз 0,9286964 0,9368361 0,9449758
## вверх 0,9244128 0,9338499 0,9432869
## СМЕТ 0,9429536 0,9490585 0,9551634
## ROSE 0,9383809 0,9459729 0,9535649 

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

На самом деле все методы выборки работают примерно одинаково (на основе набора тестов). Статистические данные для базовой модели, подходящей без выборки, в значительной степени совпадают друг с другом (0,939 с помощью повторной выборки и 0,925 для тестового набора).

11.2 Подвыборка во время передискретизации

Последние версии Caret позволяют пользователю указать подвыборку при использовании последовательности , чтобы она выполнялась внутри передискретизации. Доступ ко всем четырем методам, показанным выше, можно получить из базового пакета, используя простой синтаксис. Если вы хотите использовать свою технику или хотите изменить некоторые параметры для SMOTE или ROSE , в последнем разделе ниже показано, как использовать пользовательскую субдискретизацию.

Чтобы включить подвыборку, используйте еще одну опцию в trainControl , называемую сэмплированием . Самый простой синтаксис — использовать строку символов с именем метода выборки, либо «вниз» , «вверх» , «smote» , либо «поднялся» . Обратите внимание, что для использования SMOTE и ROSE вам потребуется установить пакеты DMwR и ROSE соответственно.

Одна сложность связана с предварительной обработкой. Должна ли субдискретизация происходить до или после предварительной обработки? Например, если вы уменьшаете выборку данных и используете PCA для извлечения сигнала, должны ли нагрузки оцениваться по всему обучающему набору? Оценка потенциально лучше, поскольку используется весь обучающий набор, но подвыборка может захватывать небольшую часть пространства PCA. Нет очевидного ответа.

Поведение по умолчанию — подвыборка данных перед предварительной обработкой. Это можно легко изменить, и пример приведен ниже.

Теперь давайте повторно запустим наши модели дерева в мешках во время выборки внутри перекрестной проверки:

 ctrl <- trainControl(method = "repeatedcv", Repeats = 5,
                     классПробс = ИСТИНА,
                     SummaryFunction = twoClassSummary,
                     ## новая опция здесь:
                     выборка = "вниз")
set.seed(5627)
down_inside <- train (класс ~ ., data = imbal_train,
                     метод = "деревянная сумка",
                     nбагг = 50,
                     метрика = "РПЦ",
                     трКонтрол = Ctrl)
## теперь просто измените эту опцию
ctrl$sampling <- "вверх"
set.seed(5627)
up_inside <- train (класс ~ ., data = imbal_train,
                   метод = "деревянная сумка",
                   nбагг = 50,
                   метрика = "РПЦ",
                   трКонтрол = Ctrl)
ctrl$sampling <- "роза"
set. seed(5627)
rose_inside <- поезд (класс ~ ., данные = imbal_train,
                     метод = "деревянная сумка",
                     nбагг = 50,
                     метрика = "РПЦ",
                     трКонтрол = Ctrl)
ctrl$sampling <- "ударил"
set.seed(5627)
smote_inside <- train (класс ~ ., data = imbal_train,
                      метод = "деревянная сумка",
                      nбагг = 50,
                      метрика = "РПЦ",
                      trControl = ctrl) 

Вот результаты передискретизации и набора тестов:

 inside_models <- list(original = orig_fit,
                      вниз = вниз_внутри,
                      вверх = вверх_внутри,
                      SMOTE = smote_inside,
                      РОЗА = роза_внутри)
inside_resampling <- resamples(inside_models)
inside_test <- lapply(inside_models, test_roc, data = imbal_test)
inside_test <- lapply(inside_test, as.vector)
inside_test <- do.call("rbind", inside_test)
colnames(inside_test) <- c("нижний", "ROC", "верхний")
inside_test <- as. data.frame(inside_test)
сводка (inside_resampling, metric = "ROC") 
 ##
## Вызов:
## summary.resamples(object = inside_resampling, metric = "ROC")
##
## Модели: оригинал, вниз, вверх, SMOTE, ROSE
## Количество ресемплов: 50
##
## ОКР
## Мин. 1 кв. Медиана Среднее 3-е кв. Максимум. АН
## исходный 0,9098237 0,9298348 0,9386021 0,9394130 0,9493394 0,9685873 0
## вниз 0,9140294 0,9381766 0,9453610 0,9438490 0,9492917 0,9684522 0
## вверх 0,8887678 0,9308075 0,9393226 0,9392084 0,9517913 0,9679569 0
## УДАР 0.9203876 0,9453453 0,9520074 0,9508721 0,9596354 0,9746933 0
## ROSE 0.9305013 0.9442821 0.9489859 0.9511117 0.9572416 0.9756750 0 
 inside_test 
 ## нижний ROC верхний
## исходный 0,9130010 0,9247957 0,9365905
## вниз 0,9354534 0,9419704 0,9484875
## вверх 0,9353945 0,9431074 0,9508202
## УДАР 0,9465262 0,9524213 0,9583164
## ROSE 0,9369170 0,9448367 0,9527563 

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

11.3 Осложнения

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

  • Редко представленные категории в факторных переменных могут превратиться в предикторы с нулевой дисперсией или могут быть полностью исключены из модели.
  • Базовые функции, выполняющие выборку (например, SMOTE , downSample и т. д.) работают совершенно по-разному, и это может повлиять на ваши результаты. Например, SMOTE и ROSE преобразуют входной аргумент предиктора во фрейм данных (даже если вы начинаете с матрицы).
  • В настоящее время веса выборки не поддерживаются при субвыборке.
  • Если вы используете tuneLength для указания сетки поиска, имейте в виду, что данные, которые используются для определения сетки, не были выбраны. В большинстве случаев это не имеет значения, но если на процесс создания сетки влияет размер выборки, вы можете в конечном итоге использовать неоптимальную сетку настройки.
  • Для некоторых моделей, требующих больше выборок, чем параметров, уменьшение размера выборки может помешать подбору модели.

11.4 Использование пользовательских методов подвыборки

Пользователи могут создавать собственные процедуры подвыборки. Для этого используется альтернативный синтаксис с аргументом выборки trainControl . Раньше мы использовали простую строку в качестве значения этого аргумента. Другой способ указать аргумент — использовать список с тремя (именованными) элементами:

  • Значение имени представляет собой строку символов, используемую при печати объекта train . Это может быть любая строка.
  • Элемент func — это функция, выполняющая субдискретизацию. У него должны быть аргументы с именами x и y , которые будут содержать данные предикторов и результатов соответственно. Функция должна возвращать список с одноименными элементами.
  • Элемент first представляет собой одиночное логическое значение, указывающее, должна ли субдискретизация выполняться первой относительно предварительной обработки. Значение FALSE означает, что функция подвыборки получит выборочные версии x и y .

Например, вот как выглядит версия списка аргумента с выборкой при использовании простой понижающей выборки:

 down_inside$control$sampling 
 ## $name
## [1] "вниз"
##
## $функция
## функция(х, у)
## downSample(x, y, list = TRUE)
##
## $первый
## [1] TRUE 

В качестве другого примера предположим, что мы хотим использовать SMOTE, но использовать 10 ближайших соседей вместо 5 по умолчанию. Для этого мы можем создать простую оболочку вокруг SMOTE и вместо этого вызовите это:

 smotest <- list(name = "SMOTE с большим количеством соседей!",
                функция = функция (х, у) {
                  библиотека (DMwR)
                  dat <- if (is. data.frame(x)) x else as.data.frame(x)
                  дата$.y <- y
                  dat <- SMOTE(.y ~ ., data = dat, k = 10)
                  list(x = dat[ !grepl(".y", colnames(dat), fixed = TRUE)],
                       у = дата$.у)
                  },
                первый = ИСТИНА) 

Объект управления тогда будет:

 ctrl <- trainControl(method = "repeatedcv", repeats = 5,
                     классПробс = ИСТИНА,
                     SummaryFunction = twoClassSummary,
                     выборка = самый лучший) 

4 Разделение данных | Пакет каретки

Содержимое

  • Простое разделение на основе результата
  • Разделение на основе предикторов
  • Разделение данных для временных рядов
  • Разделение данных на важные группы

4.1 Простое разделение на основе результата

Функция createDataPartition может использоваться для создания сбалансированных разделений данных. Если аргумент y этой функции является фактором, случайная выборка происходит в каждом классе и должна сохранять общее распределение данных по классам. Например, чтобы создать одно разделение данных радужной оболочки 80/20%:

 библиотека (вставка)
set.seed(3456)
trainIndex <- createDataPartition(iris$Species, p = .8,
                                  список = ЛОЖЬ,
                                  раз = 1)
голова (индекс поезда) 
 ## Повторная выборка1
## [1,] 1
## [2,] 2
## [3,] 3
## [4,] 5
## [5,] 6
## [6,] 7 
 irisTrain <- iris[trainIndex,]
irisTest <- iris[-trainIndex,] 

Список = FALSE позволяет избежать возврата данных в виде списка. У этой функции также есть аргумент, умножить на , который может создать несколько разбиений одновременно; индексы данных возвращаются в виде списка целочисленных векторов. Точно так же createResample можно использовать для создания простых образцов начальной загрузки и createFolds можно использовать для создания сбалансированных групп перекрестной проверки из набора данных.

4.2 Разделение на основе предикторов

Кроме того, функция maxDissim может использоваться для создания подвыборок с использованием подхода максимального различия (Willett, 1999). Предположим, что имеется набор данных A с m выборками и более крупный набор данных B с n выборками. Мы можем захотеть создать подвыборку из B , отличающуюся разнообразием по сравнению с А . Для этого для каждой выборки в B функция вычисляет m различий между каждой точкой в ​​ A . Наиболее непохожая точка в B добавляется к A , и процесс продолжается. В R есть много методов для вычисления непохожести. Caret использует пакет proxy . См. руководство для этого пакета для получения списка доступных мер. Кроме того, существует множество способов вычислить, какая выборка является «наиболее непохожей». Аргумент obj можно использовать для указания любой функции, возвращающей скалярную меру. Caret включает две функции, minDiss и sumDiss , которые можно использовать для максимизации минимальных и полных различий соответственно.

В качестве примера на рисунке ниже показана диаграмма рассеяния двух химических дескрипторов для данных Cox2. Используя начальную случайную выборку из 5 соединений, мы можем выбрать из данных еще 20 соединений, чтобы новые соединения были максимально непохожи на исходные 5, которые были заданы. Панели на рисунке показывают результаты с использованием нескольких комбинаций показателей расстояния и функций оценки. Для этих данных мера расстояния оказывает меньшее влияние, чем метод подсчета для определения того, какие соединения наиболее непохожи.

 библиотека (mlbench)
данные (Бостон Жилье)
тестирование <- масштаб(BostonHousing[ c("возраст", "nox")])
сет.сид(5)
## Случайная выборка из 5 точек данных
startSet <- образец (1: тусклый (тестирование) [1], 5)
samplePool <- тестирование[-startSet,]
start <- тестирование[startSet,]
newSamp <- maxDissim(start, samplePool, n = 20)
head(newSamp) 
 ## [1] 460 142 491 156 498 82 

Визуализация ниже показывает набор данных (маленькие точки), начальные образцы (большие синие точки) и порядок, в котором добавляются другие 20 образцов. .

4.3 Разделение данных для временных рядов

Простая случайная выборка временных рядов, вероятно, не лучший способ повторной выборки данных временных рядов. Hyndman and Athanasopoulos (2013) обсуждают методов скользящего прогнозирования происхождения , которые перемещают обучающие и тестовые наборы во времени. каретка содержит функцию с именем createTimeSlices , которая может создавать индексы для этого типа разбиения.

Три параметра для этого типа разделения:

  • initialWindow : начальное количество последовательных значений в каждой выборке обучающего набора
  • горизонт : количество последовательных значений в образце тестового набора
  • fixedWindow : Логично: если FALSE , обучающая выборка всегда начинается с первой выборки, и размер обучающей выборки будет варьироваться в зависимости от разделения данных.

В качестве примера предположим, что у нас есть временной ряд с 20 точками данных. Мы можем исправить initialWindow = 5 и посмотрите на разные настройки двух других аргументов. На приведенном ниже графике строки на каждой панели соответствуют разным разбиениям данных (т. е. передискретизации), а столбцы соответствуют разным точкам данных. Кроме того, красным цветом обозначены образцы, включенные в обучающий набор, а синим — образцы в тестовом наборе.

4.4 Простое разделение с важными группами

В некоторых случаях в данных присутствует важный качественный фактор, который следует учитывать при (повторной) выборке. Например:

  • в клинических исследованиях могут быть различия между больницами
  • с данными продольных или повторных измерений, субъекты (или общая независимая экспериментальная единица) могут иметь несколько строк в наборе данных и т. д.

Может быть интересно убедиться, что эти группы не содержатся в обучающем и тестовом наборе, поскольку это может исказить производительность тестового набора, сделав его более оптимистичным.