{"id":14293,"url":"\/distributions\/14293\/click?bit=1&hash=05c87a3ce0b7c4063dd46190317b7d4a16bc23b8ced3bfac605d44f253650a0f","hash":"05c87a3ce0b7c4063dd46190317b7d4a16bc23b8ced3bfac605d44f253650a0f","title":"\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u043d\u0435 \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u0432 \u043d\u0438 \u043a\u043e\u043f\u0435\u0439\u043a\u0438","buttonText":"","imageUuid":""}

Про пользу развития digital навыков

Нам в работу поступила задача: проанализировать имеющиеся и придумать новые факторы, повышающие точность работы модели. Для анализа был дан массив в сотни тысяч записей. Собрав гипотезы, настал черед проверки их влияния на модель. Анализ массива в Excel привычными формулами/фильтрами привел бы к тому, что на проверку каждой гипотезы уходило бы по несколько часов.

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

PIVOT – это оператор Transact-SQL, применяющимся в Microsoft SQL Server, схожий по функционалу со сводными таблицами в Excel. В нем указывается какие параметры нас интересуют по вертикали и горизонтали, указываем способ заполнения таблицы – одну из агрегатных функций, – и получаем готовую таблицу для анализа. На выходе функция может производить группировку по нескольким показателям, выводя их иерархично.

Для наглядности же приведем пример применения функции в простом виде, схожим со сводной таблицей.

Пример:

Сотрудник должен проанализировать корректность расчета кредитного риска или кредитной истории клиентов на основании данных кредитных заявок.

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

Синтаксис оператора в описанном примере выглядит следующим образом:

With table as ( select Способ_рассмотрения, Кр_история, Заявки from [base].[table_test] ) Select * from table pivot (count (Заявки) for Кр_история in ([Положительная], [Средняя], [Отрицательная], [Нулевая])) pvt

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

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

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

0
Комментарии
-3 комментариев
Раскрывать всегда