Прогнозирование сбоев при запуске с помощью классификации

[Этот проект был выполнен как часть иммерсивной программы обработки данных под названием Metis. Вы можете найти файлы этого проекта на моем GitHub, а слайды - здесь. Окончательная модель доступна здесь]

Немного предыстории

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

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

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

Процесс

Набор данных CrunchBase предоставляет исчерпывающий список компаний с большим количеством информации о них, а также разбивку по каждому раунду финансирования и отдельным инвестициям. Я смотрел только на компании, основанные в течение последних 10 лет из-за постоянно меняющегося ландшафта стартапов. Я также исключил компании, потерпевшие крах после всего лишь одного раунда финансирования. Тысячи компаний были разделены на две группы: те, которые потерпели неудачу, и те, кто добился успеха (также были исключены компании, которые все еще находились на начальной стадии). У меня осталось около 10 000 компаний.

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

Я использовал это вместе с другой метрикой для сравнения каждой из моделей: f_beta, которая представляет собой взвешенное гармоническое среднее между отзывом и точностью. Я установил бета-значение на 3, что гораздо важнее для отзыва, чем для точности. При рассмотрении венчурных инвестиций большая часть прибыли обычно приходится на менее 20% инвестиций. Гораздо важнее поймать всех потенциальных единорогов, даже если вложить деньги в довольно много неудачников. Учитывая, что единорог может легко вернуть более чем 100-кратное первоначальное вложение, потребуется немало «неудач», чтобы отменить одно из них.

Полученные результаты

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

Выбранная модель представляет собой логистическую регрессию, которая рассчитывает шансы компании на успех в зависимости от характеристик, описанных ранее. Оценка f_beta для этой модели составляет 0,85 из 1, что довольно неплохо.

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

Неудивительно, что чем больше денег собирает компания, тем больше у нее шансов на успех. Я обнаружил, что на каждый дополнительный 1 миллион долларов, который компания собирает за раунд (в среднем), их шансы на успех увеличиваются на 16%. Я был удивлен разбивкой по времени между раундами финансирования. Как правило, чем дольше компания продержится между раундами финансирования, тем лучше для них; каждый дополнительный месяц между раундами финансирования увеличивает шансы на успех на 5%. Этого не происходит между раундами Seed и Series A, где каждый дополнительный месяц фактически снижает эти шансы на 3%.

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

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