Чи є інструменти для художньої інженерії?


29

Зокрема, я шукаю інструменти з деякою функціональністю, яка є специфічною для інженерії функцій. Я хотів би мати можливість легко згладжувати, візуалізувати, заповнювати прогалини тощо. Щось подібне до MS Excel, але ця мова має R як основну мову замість VB.

Відповіді:


21

Дуже цікаве запитання (+1). Хоча я не знаю жодних програмних засобів, які наразі пропонують всебічну функціональність для інженерних функцій , напевно існує широкий спектр варіантів у цьому плані. В даний час, наскільки мені відомо, інженерія функцій все ще в значній мірі є трудомістким і ручним процесом (тобто дивіться цю публікацію в блозі ). Якщо говорити про тематику предметної галузі, ця чудова стаття Джейсона Браунлі дає досить всебічний огляд теми.

Бен Лоріка, головний науковець з питань даних та директор контент-стратегії даних O'Reilly Media Inc., написав дуже приємну статтю , в якій описує сучасні (станом на червень 2014 року) підходи, методи, інструменти та стартапи в програмі область автоматизації (або, як він сказав, упорядкування ) функціональної інженерії.

Я коротко ознайомився з деякими стартапами, на які звернувся Бен, і продукт Skytree справді виглядає досить вражаюче, особливо що стосується теми цього питання. Сказавши це, деякі їхні претензії мені здаються дуже підозрілими (тобто "Skytree прискорює методи машинного навчання до 150 разів порівняно з опціями з відкритим кодом" ). Продовжуючи розмову про комерційну науку про дані та пропозиції машинного навчання, я повинен згадати рішення Microsoft, зокрема їхню студію машинного навчання Azure . Цей веб-продукт є досить потужним та елегантним та пропонує певну функціональну інженерну функціональність (FEF). Для прикладу декількох простих FEF дивіться це приємне відео .

Повертаючись до питання, я думаю, що найпростіший підхід, який можна застосувати для автоматизації інженерних функцій, - це використання відповідних ІДЕ . Оскільки ви (мене теж) цікавите мовою R як бекенда науки, я б запропонував перевірити, крім RStudio, ще один подібний IDE з відкритим кодом, який називається RKWard . Однією з переваг RKWard проти RStudio є те, що він підтримує написання плагінів для IDE, таким чином, дозволяє науковцям даних автоматизувати функціональну інженерію та впорядкувати їх аналіз на основі R.

Нарешті, з іншого боку спектру функціональних інженерних рішень ми можемо знайти деякі дослідницькі проекти . Два найбільш помітні, здається, проекти Колумба університету Стенфордського університету , детально описані у відповідному дослідницькому документі , та Brainwash , описані в цій роботі .


5

Featuretools - це нещодавно випущена бібліотека пітонів для автоматизованої інженерії функцій. Він заснований на алгоритмі під назвою Deep Feature Synthesis, спочатку розробленому в 2015 році MIT та протестованому на змаганнях з питань загальнодоступних даних на Kaggle.

Ось як вона вписується у загальний процес дослідження даних.

введіть тут опис зображення

Метою бібліотеки є не лише допомогти експертам швидше побудувати кращі моделі машинного навчання, але зробити процес наукових даних менш заляканим для людей, які намагаються вчитися. Якщо у вас є дані про події або реляційні дані, я настійно рекомендую перевірити це!

Відмова: Я один із розробників проекту.


2

Техніка функцій лежить в основі машинного навчання і є досить трудомістким і трудомістким. Існували різні спроби автоматизації функціональної інженерії, сподіваючись вивести людину з петлі. Однією конкретною реалізацією, яка робить це для проблем класифікації, є автосклеарн . Для вибору відповідного набору перетворень та алгоритму (та параметрів алгоритму) використовується процедура оптимізації під назвою SMAC .

Зауважте, що Trifacta пропонує дійсно простий у використанні інструмент для перетворення даних. Він має інтуїтивно зрозумілий графічний інтерфейс, що дозволяє налаштувати інженерні карти перетворення / функції. Існує також безкоштовна пробна версія, яку можна використовувати для досить розумних проблем.


2

Нещодавно Scikit-learn випустив нові трансформатори, які займаються багатьма аспектами інженерної характеристики. Наприклад:

  1. За допомогою SimpleImputer( http://scikit-learn.org/stable/modules/generated/sklearn.impute.SimpleImputer.html ) ви можете виконати кілька методів введення відсутніх даних , включаючи середнє, середнє та довільне внесення значень як в числових, так і в категоричних змінних. .

  2. Можна зробити багатоваріантну імпутацію за допомогою кількох оцінювачів, таких як Байєс, випадковий ліс та інші (еквівалентні MICE R, Amelia та MissForest) за допомогою IterativeImputer( https://scikit-learn.org/stable/modules/generated/sklearn.impute.IterativeImputer .html # sklearn.impute.IterativeImputer )

  3. Ви можете зробити категоричне одне гаряче кодування за допомогою OneHotEncoder()Scikit-learn

  4. Ви можете кодувати категоричні змінні за номерами за допомогою LabelEncoder.

  5. Ви можете зробити змінну перетворення Yeo-Johnson за допомогою PowerTransformer( http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.PowerTransformer.html )

  6. Можна дискретизувати за допомогою KBinsDiscretiser( https://scikit-learn.org/stable/auto_examples/preprocessing/plot_discretization.html )

У Scikit-learn є потенційно інші інженерні трансформатори, і розробники оновлюють бібліотеку досить регулярно.

Як альтернатива загальновідомій бібліотеці Scikit-learning є нова нещодавно випущена бібліотека з відкритим кодом, яка називається функціональним механізмом . За допомогою функціонального двигуна ви можете:

  1. Мати на увазі медіану, довільну, кінець хвоста та випадкову імпутацію в числових та категоричних змінних
  2. Робіть різні типи категоріального кодування, включаючи одне гаряче, ціле, порядкове, середнє кодування та вагу доказів.
  3. Робіть різні змінні перетворення, включаючи журнал, зворотну, exp та box cox
  4. Різні типи дискретизації, включаючи однакову частоту, рівну відстань та на основі дерев
  5. Зовнішня обробка.

Більш детально в репозиторії github та документах ( https://feature-engine.readthedocs.io/en/latest/ )

Відмова: Я створив функціональний движок і зробив його з відкритим кодом.

Інший пакет python з відкритим кодом дозволяє застосовувати різні типи кодування категоричної змінної: https://contrib.scikit-learn.org/categorical-encoding/

Нарешті, інструменти Feature - це хороша бібліотека з відкритим кодом для транзакційних даних.


1

Вам слід розглянути можливість перевірки платформи машинного навчання Azure . Він в Інтернеті, і ви можете користуватися ним безкоштовно.

Azure ML надає вам робочий процес, використовуючи модулі в графічному інтерфейсі користувача. Багато з них пов'язані з обміном даними, і ви можете легко очистити свої дані. Якщо у графічному інтерфейсі є щось, що ви не можете зробити, ви можете просто додати модуль, який дозволяє вам запускати користувацький скрипт R або Python для маніпулювання вашими даними.

Приємною частиною цього є те, що ви можете легко візуалізувати свої дані в будь-який час і перевірити прості статистичні дані, такі dataframe.describe()як Р.


1

Амазонське машинне навчання - це інструмент, який я кілька разів використовую для інженерних функцій.

Оскільки послуги Amazon AWS показали багато обіцянок та стандартів, я б точно розраховував на Amazon ML, з його перспективами та обіцянками спростити робочий процес даних вчених. Але, як і зараз, це ще мало.

Але, як ви попросили інструмент для інженерної інженерії, то це один із них.

Деякі поширені запитання про / для використання Amazon ML.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.