Из блога ни о чем

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

1) Импорт функций из предыдущих блокнотов

(Код не показан для краткости.)

#process functions
process_numerical_class(.)
process_binary_class(.)
process_text_class(.)
process_time_class(.)
#category evaluation
evalcategory(.)
#ML infill functions
NArows(.)
createMLinfillsets(.)
labelbinarizercorrect(.)
predictinfill(.)
insertinfill(.)

2) Обновите нашу функцию automunge

Включены следующие обновления для этой версии 1.02:

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

2) Добавлен вывод из automunge со словарным ключом для кодировок меток, чтобы облегчить обратное кодирование после предсказаний.

3) Сделал randomseed входом для функции automunge, хотя он по-прежнему не используется в моделях scikit MLinfill (будущее расширение).

4) Создан новый аргумент для automunge, служащий списком столбцов для исключения из преобразований (excludetransformscolumns = []). Обратите внимание, что они должны быть в формате, готовом к ML, иначе функция прогнозирования MLinfill вернет ошибки.

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

6) В функцию automunge добавлен аргумент, устанавливающий количество итераций для методов Predictinfill ML. Идея состоит в том, что, поскольку отсутствующие значения инициализируются стандартными методами заполнения, для набора с большим количеством заполняющих ячеек дополнительные итерации машинного обучения могут улучшить значения заполнения.

7) Создан вывод списка имен столбцов для выходных массивов.

8) Убрано перемешивание тестовых данных (тестовые данные не нужно перемешивать).

2) Протестируйте наши функции

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

titanic_df_train.head()

Из моего последнего поста напоминание о нашей предварительной обработке перед применением:

Теперь есть определенные аспекты проектирования функций, которые не затрагивает наша автоматизация. Поскольку каждая строка уникальна, я ожидаю, что для столбцов Cabin, Name или Ticket не будет никакого обучения, поэтому мы продолжим и удалим эти строки для нашей демонстрации. Вполне возможно, что в этих столбцах скрыта некоторая обучаемая функция, которую можно извлечь до применения автоподбора с дальнейшей обработкой. Например, из обозначения миссис/мисс/мисс в столбце «Имя» можно извлечь информацию о том, замужем ли женщина или не замужем. Возможно, по полю «Каюта» мы могли бы сделать вывод, на какой палубе спал пассажир и была ли у него вообще каюта. Поскольку эта текущая итерация не оценивает отдельные символы текстового поля, а только группы символов, этот тип оценки необходимо будет выполнить до применения автоматического поиска — такая дальнейшая оценка может стать будущим расширением.

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

Теперь мы быстро перекодируем прогнозы в формат исходного набора поездов. Оказывается, это довольно глупый пример, поскольку наш первоначальный набор поездов уже был закодирован численно как 0/1, но, пожалуйста, поверьте мне на слово, что это сработало бы так же хорошо, если бы исходное кодирование было, например, текстовой классификацией. Мы также объединимся со столбцом ID, чтобы соответствовать типичному подходу, запрашиваемому в отправках Kaggle.

Отлично, я думаю, что я запишу это как успех. До скорого.

Книги, которые были упомянуты здесь или иным образом вдохновили на создание этого поста:

Инновации и предпринимательство — Питер Друкер

(Как партнер Amazon я зарабатываю на соответствующих покупках.)

*Для дальнейшего чтения, пожалуйста, ознакомьтесь с моими Оглавлением, Рекомендациями по книгам и Рекомендациями по музыке. Подробнее об AutoMunge:

Привет, я блоггер, пишу для развлечения. Если вам понравился этот пост или вы получили какую-то ценность, не стесняйтесь ставить лайки, комментировать или делиться — или, я не знаю, подумайте о том, чтобы нанять меня или что-то в этом роде :). Со мной также можно связаться в LinkedIn для профессиональных запросов или в Твиттере для личных.

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