Изучение SQL является одним из них!

Машинное обучение — это не язык программирования, вы можете делать это с помощью Python, R, Julia и даже Excel, у которого есть несколько отличных расширений, которые могут помочь вам в этом.

Однако, если вы действительно хотите профессионально работать с данными в целом, SQL (язык структурированных запросов) является обязательным требованием. Он понадобится вам для извлечения данных из баз данных, таких как BigQuery, MySQL, Microsoft Server, и, как я упоминал в моей первой статье, большая часть данных, с которыми вы будете работать, представляет собой табличные данные. И хорошая новость заключается в том, что даже некоторые базы данных NoSQL также имеют язык, подобный SQL, например Cassandra и CosmosDB.

Даже для визуализации данных с помощью таких инструментов, как Metabase, Redash или даже Tableau и Power BI, вам потребуется использовать SQL для создания визуальных элементов или преобразования и объединения данных перед их анализом.

И не стоит недооценивать возможности SQL, вы можете делать гораздо больше, чем просто извлекать данные из источника данных. Например, вы можете сделать на нем отличную разработку функций, например, извлечь месяц, день недели и другие функции из дат, а также использовать оконные функции, чтобы получить среднее значение метрики. может агрегировать данные, получать процент от общего количества и многое другое. Более того, если вы знаете математику, лежащую в основе какого-то алгоритма, вы можете разработать всю модель на SQL. Линейная регрессия была бы не такой уж сложной, но я уже видел людей, выполняющих даже НЛП на SQL, выполняющих векторизацию TF IDF и использующих подход softmax для получения вероятностей, и все они полностью используют SQL.

Изучение SQL является обязательным требованием, но если вы сделаете это хорошо, оно может быть очень мощным!

Существует множество automl, которые можно использовать для моделирования и запуска SQL, например BQML.

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

Итак, чтобы вы начали, давайте рассмотрим базовый SQL и советы по нему. Вы заметите, что это не сложно.

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

Базовая структура SQL-запроса:

SELECT
- Input the fields you want here -> you can use raw fields, or aggregations like COUNT(field), SUM(field) and so on…
FROM
- Input the table -> you can use one table or join with others
WHERE
- Input some where clauses to filter the data if you want
GROUP BY
- If you did some aggregation in the select statement, you will need to group the other fields in here, everything that is not an aggregation in the select statement
ORDER BY
- If you want the results ordered by a specific column, if you don’t want to, just skip it
HAVING
- Similar to where clause, but for filtering groups, if you did not use ‘group by’ above or don’t want to filter on groups you can just skip it
LIMIT
- If you only want a certain amount of rows, you can specify here, if you want all the rows that fit your criteria above don’t add this clause

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

  1. ОТ
  2. ГДЕ
  3. ГРУППА ПО
  4. НАЛИЧИЕ
  5. ВЫБИРАТЬ
  6. СОРТИРОВАТЬ ПО
  7. ПРЕДЕЛ

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

Учитывайте, как вы соединяете таблицы. В общем, вы будете делать соединения один ко многим, один к одному или многие к одному. Если вы устанавливаете много-много соединений, вы дублируете свои данные, а это может быть не то, что вам нужно! Один из советов здесь — сделать COUNT(*) и проверить, соответствует ли количество строк ожидаемому.

Если вы делаете левое соединение, но используете поле из правой таблицы (таблица B относительно изображения выше) внутри предложения where, оно автоматически становится внутренним соединением. Вы должны взять предложение where и использовать его внутри самого From, чтобы получить правильное поведение.

Вы можете создавать временные таблицы, используя WITH ‹имя новой таблицы› AS (запрос, который вам нужен), а затем запрашивать из этой таблицы. Это сделает ваш код чище и понятнее.

Есть несколько платформ, которые вы можете использовать для бесплатной практики:

- sqlbolt.ru

- sqlteaching.com

- w3schools.com/sql

SQL не сложен, вы можете изучить основы за 4 часа плюс-минус. Если вам нужен более структурированный курс, я бы порекомендовал DataCamp.

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

И помните, вам не нужно знать все наизусть, вам просто нужно знать базовую структуру и логику, а затем вы можете погуглить конкретные вопросы и найти то, что вам нужно.

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