От Sharp Sight Labs

(Эта статья была впервые опубликована на сайте r-bloggers — SHARP SIGHT LABS и была любезно предоставлена ​​R-bloggers

Когда новички приступают к машинному обучению, неизбежным вопросом является Каковы предварительные условия? Что мне нужно знать, чтобы начать?

И как только они начинают исследовать, новички часто находят благонамеренные, но обескураживающие советы, такие как следующие:

Вам нужно освоить математику. Вам потребуется все следующее:
– Исчисление
– Дифференциальные уравнения
– Математическая статистика
– Оптимизация
– Анализ алгоритмов
– и
– и
– и ……..

Такого списка достаточно, чтобы напугать любого, кроме человека с высшим математическим образованием.

Очень жаль, потому что я думаю, что многие новички падают духом и пугаются этого совета.

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

Но ты не совсем в теме.

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

Математика не является основной предпосылкой для машинного обучения

Если вы новичок и ваша цель — работать в промышленности или бизнесе, математика не является основной предпосылкой для машинного обучения. Это, вероятно, противоречит тому, что вы слышали в прошлом, так что позвольте мне объяснить.

Большинство советов по машинному обучению дают люди, изучавшие науку о данных в академической среде.

Прежде чем я продолжу, я хочу подчеркнуть, что это не джеб. Использование термина «академический» не является оскорблением. Люди, работающие в академических кругах, часто создают инструменты, которые используют люди в промышленности. И благодаря исследованиям они также продвигают эту область вперед. Я восхищаюсь этими людьми.

Однако в академической среде существуют разные стимулы. Эти стимулы формируют мышление и работу людей в академических кругах иначе, чем стимулы людей, работающих в промышленности. Более того, стимулы формируют подготовку людей, поступающих в академию: студенты в академической среде тренируются, чтобы быть продуктивными в основном как ученые и исследователи.

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

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

Готовые инструменты позаботятся о математике за вас

Почти все распространенные библиотеки и инструменты машинного обучения позаботятся о сложной математике за вас. Это включает в себя пакет caret для R, а также scikit-learn для Python. Это означает, что совсем необязательно знать линейную алгебру и исчисление, чтобы заставить их работать.

По этому поводу есть хорошая цитата Эндрю Гельмана в его высоко оцененной книге о регрессии:

«В большинстве книг регрессия определяется с точки зрения матричных операций. Мы избегаем большей части этой матричной алгебры по той простой причине, что теперь она выполняется компьютерами автоматически… [вычисления] важны, но их можно выполнять незаметно для пользователя».

Имейте в виду, что Гельман — очень уважаемый статистик. Он профессор статистики в Колумбийском университете (университет Лиги плюща) и написал несколько лучших в своем классе книг по таким темам, как регрессия и байесовская статистика. И хотя эта цитата касается конкретно регрессии, тот же принцип применим и к машинному обучению в широком смысле.

Этот момент необходимо подчеркнуть: современное программное обеспечение для статистики и машинного обучения позаботится о большей части математики за вас.

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

Это отличная новость для начинающего специалиста по данным, который хочет начать работу с машинным обучением. Вы можете вызвать функцию R из курсора или функцию из Python’s scikit-learn, и она позаботится обо всей математике за вас. Знание того, как вся эта математика работает «под капотом», не является ни необходимым, ни достаточным для построения прогностических моделей новичком.

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

Большинство специалистов по данным не занимаются математикой

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

Это просто не точно.

Итак, как много математики на самом деле делает специалист по обработке и анализу данных?

Если мы говорим о специалистах по данным начального и среднего уровня, по моим оценкам, они тратят менее 5% своего времени на математику. И, честно говоря, 5%, наверное, немного щедро.

Даже если мы говорим только о машинном обучении, вы все равно потратите менее 5% своего времени на математику. (И, честно говоря, большинство специалистов по данным начального уровня не будут тратить много времени на машинное обучение.) Когда вы строите модель, вы тратите очень и очень мало времени на какие-либо математические вычисления.

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

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

Если вы хотите начать работу с машинным обучением, вам необходимо научиться анализу данных.

Основным условием машинного обучения является анализ данных.

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

Но вам абсолютно необходимо знать анализ данных.

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

Это реальная предпосылка для начала работы с машинным обучением в качестве практика.

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

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

Но построить модель будет практически невозможно, если у вас нет твердых навыков анализа данных.

Даже если вы используете «готовые» инструменты, такие как caret в R и scikit-learn в Python — инструменты, которые делают за вас большую часть сложной математики — вы не сможете заставить эти инструменты работать без четкого понимания исследовательского анализа данных и визуализация данных. Чтобы правильно применять такие инструменты, как Caret и scikit-learn, вам необходимо уметь собирать, подготавливать и исследовать данные. Вам необходимо твердое понимание анализа данных.

80% вашей работы будет подготовка данных, EDA и визуализация

Среди специалистов по данным общеизвестно, что 80% вашей работы будет составлять подготовка данных. Это правда, хотя я хочу уточнить, что это значит. Когда люди говорят, что 80% вашей работы будет подготовка данных, это своего рода сокращенный способ сказать: 80% вашей работы будет заключаться в получении данных (из баз данных, электронных таблиц, плоских файлов), выполнении исследовательского анализа данных, изменении формы. данные, «визуализация данных для поиска идей и использование EDA».

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

Чтобы быть немного более прямолинейным, если вы не знаете исчисления и линейной алгебры, вы все равно можете построить полезные модели, но если вы не очень хорошо разбираетесь в анализе данных, вы облажались.

Для начинающих практиков взлом данных лучше математики

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

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

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

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

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

Я хочу подчеркнуть, что этот конкретный друг не является единорогом. Я знаю десятки таких людей (она просто хороший пример). Более того, эти специалисты не работают в «дешевых» компаниях. Все они работают в таких компаниях, как Apple и других компаниях из списка Fortune 500; компании, которые достигают своих целей и получают огромные прибыли. Эти люди являются солидными сотрудниками в отличных компаниях.

Математика важна, но не для практиков начального уровня

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

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

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

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

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

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

Новичкам нужна математика для машинного обучения

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

Я напишу свой полный совет в другом посте в блоге, но я кратко изложу его здесь: чтобы начать изучение практического машинного обучения, специалист по данным начального уровня должен иметь базовые навыки работы с числами, вычисления процентов и т. д. Вам нужно по крайней мере, такие же математические способности, как у первокурсника хорошего университета. Вам также понадобятся базовые знания статистики… примерно столько же знаний, сколько вы получите на базовом курсе «Введение в статистику». То есть вам нужно понимать такие понятия, как среднее значение, стандартное отклонение, дисперсия и другие вещи, которые вы изучаете на вводном уроке статистики.

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

Ваша первая веха: анализ основных данных

Что это значит для вас, начинающего специалиста по данным?

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

Так что, если ваша цель — устроиться на работу в бизнес или промышленность, первым этапом станет освоение анализа данных.

Это не овладение исчислением.

Это не возможность писать доказательства или решать математические задачи.

Это анализ данных.

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

Если вы работаете в R, то я рекомендую вам изучить следующее:
— ggplot2 для визуализации данных, включая базовые визуализации, такие как диаграммы рассеяния, гистограммы, гистограммы
dplyr для агрегирования и изменения формы набор данных
– Узнайте, как использовать ggplot и dplyr вместе для исследовательского анализа данных

Если вы работаете на Python, изучите следующее:
— Базовый Python
— Pandas для агрегирования и изменения формы ваших данных
— Matplotlib для визуализации данных. В частности, изучите pyplot для базовых визуализаций и используйте Seaborn для более продвинутой статистической графики
— научитесь использовать Pandas и визуализацию данных вместе для исследовательского анализа данных.

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

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

Пост Настоящей предпосылкой для машинного обучения является не математика, а анализ данных впервые появился на SHARP SIGHT LABS.

Чтобы узнать больше об анализе данных, подпишитесь на нашу рассылку www.muoro.io.