Big Data и лучшие инструменты аналитики в 2021 году

Big Data и лучшие инструменты аналитики в 2021 году Аналитика

Big data analytics — введение в sql

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

Ядром SQL являются три оператора: SELECT, FROM и WHERE. В следующих примерах используются наиболее распространенные варианты использования SQL. Перейдите в папку bda / part2 / SQL_introduction и откройте файл SQL_introduction.Rproj .

# Install the sqldf package
install.packages('sqldf')  

# load the library 
library('sqldf') 
library(nycflights13)  

# We will be working with the fligths dataset in order to introduce SQL  

# Let’s take a look at the table 
str(flights) 
# Classes 'tbl_d', 'tbl' and 'data.frame': 336776 obs. of  16 variables: 

# $ year     : int  2021 2021 2021 2021 2021 2021 2021 2021 2021 2021 ... 
# $ month    : int  1 1 1 1 1 1 1 1 1 1 ... 
# $ day      : int  1 1 1 1 1 1 1 1 1 1 ... 
# $ dep_time : int  517 533 542 544 554 554 555 557 557 558 ... 
# $ dep_delay: num  2 4 2 -1 -6 -4 -5 -3 -3 -2 ... 
# $ arr_time : int  830 850 923 1004 812 740 913 709 838 753 ... 
# $ arr_delay: num  11 20 33 -18 -25 12 19 -14 -8 8 ...
# $ carrier  : chr  "UA" "UA" "AA" "B6" ... 

# $ tailnum  : chr  "N14228" "N24211" "N619AA" "N804JB" ... 
# $ flight   : int  1545 1714 1141 725 461 1696 507 5708 79 301 ... 
# $ origin   : chr  "EWR" "LGA" "JFK" "JFK" ... 
# $ dest     : chr  "IAH" "IAH" "MIA" "BQN" ... 
# $ air_time : num  227 227 160 183 116 150 158 53 140 138 ... 
# $ distance : num  1400 1416 1089 1576 762 ... 
# $ hour     : num  5 5 5 5 5 5 5 5 5 5 ... 
# $ minute   : num  17 33 42 44 54 54 55 57 57 58 ...

Оператор select используется для извлечения столбцов из таблиц и выполнения расчетов по ним. Простейшее утверждение SELECT продемонстрировано в ej1 . Мы также можем создать новые переменные, как показано в ej2 .

### SELECT statement
ej1 = sqldf(" 
   SELECT  
   dep_time 
   ,dep_delay 
   ,arr_time 
   ,carrier 
   ,tailnum 
   FROM 
   flights
")  

head(ej1) 
#    dep_time   dep_delay  arr_time  carrier  tailnum 
# 1      517         2      830      UA       N14228 
# 2      533         4      850      UA       N24211 
# 3      542         2      923      AA       N619AA 
# 4      544        -1     1004      B6       N804JB 
# 5      554        -6      812      DL       N668DN 
# 6      554        -4      740      UA       N39463  

# In R we can use SQL with the sqldf function. It works exactly the same as in 
a database 

# The data.frame (in this case flights) represents the table we are querying 
and goes in the FROM statement  
# We can also compute new variables in the select statement using the syntax: 

# old_variables as new_variable 
ej2 = sqldf(" 
   SELECT 
   arr_delay - dep_delay as gain, 
   carrier 
   FROM 
   flights
")  

ej2[1:5, ] 
#    gain   carrier 
# 1    9      UA 
# 2   16      UA 
# 3   31      AA 
# 4  -17      B6 
# 5  -19      DL

Одной из наиболее часто используемых функций SQL является оператор group by. Это позволяет вычислить числовое значение для разных групп другой переменной. Откройте скрипт 02_group_by.R.

### GROUP BY      

# Computing the average 
ej3 = sqldf(" 
  SELECT 
   avg(arr_delay) as mean_arr_delay, 
   avg(dep_delay) as mean_dep_delay, 
   carrier 
   FROM 
   flights 
   GROUP BY 
   carrier 
")  

#    mean_arr_delay   mean_dep_delay carrier 
# 1       7.3796692      16.725769      9E 
# 2       0.3642909       8.586016      AA 
# 3      -9.9308886       5.804775      AS 
# 4       9.4579733      13.022522      B6 
# 5       1.6443409       9.264505      DL 
# 6      15.7964311      19.955390      EV 
# 7      21.9207048      20.215543      F9 
# 8      20.1159055      18.726075      FL 
# 9      -6.9152047       4.900585      HA 
# 10     10.7747334      10.552041      MQ
# 11     11.9310345      12.586207      OO 
# 12      3.5580111      12.106073      UA 
# 13      2.1295951       3.782418      US 
# 14      1.7644644      12.869421      VX 
# 15      9.6491199      17.711744      WN 
# 16     15.5569853      18.996330      YV  

# Other aggregations 
ej4 = sqldf(" 
   SELECT 
   avg(arr_delay) as mean_arr_delay, 
   min(dep_delay) as min_dep_delay, 
   max(dep_delay) as max_dep_delay, 
   carrier 
   FROM  
   flights 
   GROUP BY 
   carrier 
")  

# We can compute the minimun, mean, and maximum values of a numeric value 
ej4 
#      mean_arr_delay    min_dep_delay   max_dep_delay   carrier 
# 1       7.3796692           -24           747          9E 
# 2       0.3642909           -24          1014          AA 
# 3      -9.9308886           -21           225          AS 
# 4       9.4579733           -43           502          B6
# 5       1.6443409           -33           960         DL 
# 6      15.7964311           -32           548         EV 
# 7      21.9207048           -27           853         F9 
# 8      20.1159055           -22           602         FL 
# 9      -6.9152047           -16          1301         HA 
# 10     10.7747334           -26          1137         MQ 
# 11     11.9310345           -14           154         OO 
# 12      3.5580111           -20           483         UA 
# 13      2.1295951           -19           500         US 
# 14      1.7644644           -20           653         VX 
# 15      9.6491199           -13           471         WN 
# 16     15.5569853           -16           387         YV  

### We could be also interested in knowing how many observations each carrier has  
ej5 = sqldf(" 
   SELECT 
   carrier, count(*) as count 
   FROM  
   flights 
   GROUP BY 
   carrier 
")  

ej5 
#      carrier  count 
# 1       9E    18460
# 2       AA   32729 
# 3       AS   714 
# 4       B6   54635 
# 5       DL   48110 
# 6       EV   54173 
# 7       F9   685 
# 8       FL   3260 
# 9       HA   342 
# 10      MQ   26397 
# 11      OO   32 
# 12      UA   58665 
# 13      US   20536 
# 14      VX   5162 
# 15      WN   12275 
# 16      YV   601 

Самая полезная особенность SQL — это объединения. Объединение означает, что мы хотим объединить таблицу A и таблицу B в одну таблицу, используя один столбец, чтобы соответствовать значениям обеих таблиц. Существуют различные типы объединений, с практической точки зрения, для начала они будут наиболее полезными: внутреннее объединение и левое внешнее объединение.

Big data и лучшие инструменты аналитики в 2021 году

Авторегрессивная скользящая средняя

Модель ARMA (p, q) объединяет p членов авторегрессии и q членов скользящего среднего. Математически модель выражается следующей формулой:

Дополнительный анализ:  Профессия – аналитик в сфере образования :: Федеральный образовательный портал - ЭКОНОМИКА, СОЦИОЛОГИЯ, МЕНЕДЖМЕНТ

Xt=c  varepsilont  sumPi=1 phiiXt−1  sumqi=1 thetai varepsilonti

Мы видим, что модель ARMA (p, q) представляет собой комбинацию моделей AR (p) и MA (q) .

Чтобы дать некоторую интуицию модели, рассмотрим, что AR-часть уравнения стремится оценить параметры для наблюдений X t — i , чтобы предсказать значение переменной в X t . В конце концов, это средневзвешенное значение прошлых значений.

Следующий фрагмент кода демонстрирует, как реализовать ARMA (p, q) в R.

# install.packages("forecast")
library("forecast")  

# Read the data 
data = scan('fancy.dat') 
ts_data <- ts(data, frequency = 12, start = c(1987,1)) 
ts_data  
plot.ts(ts_data)

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

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

# Fit the ARMA model
fit = auto.arima(ts_data) 
summary(fit) 

# Series: ts_data  
# ARIMA(1,1,1)(0,1,1)[12]                     
#    Coefficients: 
#    ar1     ma1    sma1 
# 0.2401  -0.9013  0.7499 
# s.e.  0.1427   0.0709  0.1790 

#  
# sigma^2 estimated as 15464184:  log likelihood = -693.69 
# AIC = 1395.38   AICc = 1395.98   BIC = 1404.43 

# Training set error measures: 
#                 ME        RMSE      MAE        MPE        MAPE      MASE       ACF1 
# Training set   328.301  3615.374  2171.002  -2.481166  15.97302  0.4905797 -0.02521172

Аналитика больших данных — кластеризация k-means

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

При заданном наборе наблюдений (x 1 , x 2 ,…, x n ) , где каждое наблюдение представляет собой вещественный реальный вектор в d-измерении, кластеризация k-средних имеет целью разделить n наблюдений на k групп G = {G 1 , G 2 ,…, G k }, чтобы минимизировать сумму квадратов в пределах кластера (WCSS), определенную следующим образом:

argmin sumki=1 sumx inSi параллельныйx− mui параллельный2

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

В следующем примере показано, как запустить алгоритм кластеризации k-средних в R.

library(ggplot2)# Prepare Data 
data = mtcars  

# We need to scale the data to have zero mean and unit variance 
data <- scale(data)# Determine number of clusters 
wss <-(nrow(data)-1)*sum(apply(data,2,var))for(i in2:dim(data)[2]){ 
   wss[i]<- sum(kmeans(data, centers = i)$withinss)}# Plot the clusters 
plot(1:dim(data)[2], wss, type ="b", xlab ="Number of Clusters", 
   ylab ="Within groups sum of squares")

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

Теперь, когда значение K определено, необходимо запустить алгоритм с этим значением.

# K-Means Cluster Analysis
fit <- kmeans(data, 5) # 5 cluster solution 

# get cluster means  
aggregate(data,by = list(fit$cluster),FUN = mean) 

# append cluster assignment 
data <- data.frame(data, fit$cluster) 

Аналитика больших данных — логистическая регрессия

Логистическая регрессия — это классификационная модель, в которой переменная ответа является категориальной. Этот алгоритм основан на статистике и используется для контролируемых задач классификации. В логистической регрессии мы стремимся найти вектор β параметров в следующем уравнении, которое минимизирует функцию стоимости.

logit(pi)=ln left( fracpi1−pi right)= beta0  beta1x1,i …  betakxk,i

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

Исходя из результатов прогнозов с точки зрения точности, мы находим, что регрессионная модель достигает 92,5% точности в тестовом наборе по сравнению с 72%, достигнутыми классификатором Наивного Байеса.

Аналитика больших данных — наивный байесовский классификатор

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

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

Наивный байесовский алгоритм — это условная вероятностная модель: учитывая классифицируемый экземпляр задачи, представленный вектором x = (x 1 ,…, x n ), представляющим некоторые n признаков (независимых переменных), он присваивает этому экземпляру вероятности для каждого из K возможные результаты или занятия.

p(Ck|x1,…..,xn)

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

p(Ck|x)= fracp(Ck)p(x|Ck)p(x)

Это означает, что при указанных выше предположениях о независимости условное распределение по переменной класса C равно:

p(Ck|x1,…..,xn)= frac1Zp(Ck) prodni=1p(xi|Ck)

где доказательство Z = p ( x ) — это масштабный коэффициент, зависящий только от x 1 ,…, x n , то есть константа, если известны значения характерных переменных. Одно общее правило — выбрать наиболее вероятную гипотезу; это называется максимальным апостериорным или MAP-правилом принятия решения.

Соответствующий классификатор, классификатор Байеса, является функцией, которая присваивает метку класса  haty=Ck для некоторого k следующим образом:

 haty=argmaxp(Ck) prodni=1p(xi|Ck)

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

Следующий скрипт доступен в файле bda / part3 / naive_bayes / naive_bayes.R .

Аналитика больших данных — онлайн-обучение

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

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

J( theta)= frac−1m left[ summi=1y(i)log(h theta(x(i))) (1−y(i))log(1−h theta(x(i)))) right]

где J (θ) представляет функцию стоимости, а h θ (x) представляет гипотезу. В случае логистической регрессии это определяется по следующей формуле —

h theta(x)= frac11 e thetaTx

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

 thetaj:= thetaj− alpha(h theta(x)−y)x

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

Мы будем работать с титановым набором данных из соревнований по борьбе. Исходные данные можно найти в папке bda / part3 / vw . Здесь у нас есть два файла —

  • У нас есть тренировочные данные (train_titanic.csv), и
  • немаркированные данные для новых прогнозов (test_titanic.csv).

Чтобы преобразовать формат csv во входной формат vowpal wabbit, используйте скрипт Python csv_to_vowpal_wabbit.py . Для этого вам, очевидно, потребуется установить python. Перейдите в папку bda / part3 / vw , откройте терминал и выполните следующую команду —

python csv_to_vowpal_wabbit.py

Обратите внимание, что для этого раздела, если вы используете Windows, вам нужно установить командную строку Unix, для этого зайдите на веб-сайт cygwin .

Дополнительный анализ:  Жизнь лида аналитики или «я рассчитывала, что ты сама это сделаешь» / Хабр

Откройте терминал, а также в папке bda / part3 / vw и выполните следующую команду —

vw train_titanic.vw -f model.vw --binary --passes 20 -c -q ff --sgd --l1 
0.00000001 --l2 0.0000001 --learning_rate 0.5 --loss_function logistic

Давайте разберем, что означает каждый аргумент вызова vw .

  • -f model.vw — означает, что мы сохраняем модель в файле model.vw для последующего прогнозирования

  • —binary — сообщает о потере как двоичная классификация с -1,1 метками

  • —passes 20 — данные используются 20 раз, чтобы узнать вес

  • -c — создать файл кеша

  • -q ff — использовать квадратичные функции в пространстве имен f

  • —sgd — использовать регулярное / классическое / простое обновление стохастического градиентного спуска, т. е. неадаптивное, ненормализованное и неинвариантное.

  • —l1 —l2 — регуляризация нормы L1 и L2

  • —learning_rate 0.5 — Скорость обучения, определенная в формуле правила обновления

-f model.vw — означает, что мы сохраняем модель в файле model.vw для последующего прогнозирования

—binary — сообщает о потере как двоичная классификация с -1,1 метками

—passes 20 — данные используются 20 раз, чтобы узнать вес

-c — создать файл кеша

-q ff — использовать квадратичные функции в пространстве имен f

—sgd — использовать регулярное / классическое / простое обновление стохастического градиентного спуска, т. е. неадаптивное, ненормализованное и неинвариантное.

—l1 —l2 — регуляризация нормы L1 и L2

—learning_rate 0.5 — Скорость обучения, определенная в формуле правила обновления

Следующий код показывает результаты запуска модели регрессии в командной строке. В результате мы получаем среднее значение log-loss и небольшой отчет о производительности алгоритма.

-loss_function logistic
creating quadratic features for pairs: ff  
using l1 regularization = 1e-08 
using l2 regularization = 1e-07 

final_regressor = model.vw 
Num weight bits = 18 
learning rate = 0.5 
initial_t = 1 
power_t = 0.5 
decay_learning_rate = 1 
using cache_file = train_titanic.vw.cache 
ignoring text input in favor of cache input 
num sources = 1 

average    since         example   example  current  current  current 
loss       last          counter   weight    label   predict  features 
0.000000   0.000000          1      1.0    -1.0000   -1.0000       57 
0.500000   1.000000          2      2.0     1.0000   -1.0000       57 
0.250000   0.000000          4      4.0     1.0000    1.0000       57 
0.375000   0.500000          8      8.0    -1.0000   -1.0000       73 
0.625000   0.875000         16     16.0    -1.0000    1.0000       73 
0.468750   0.312500         32     32.0    -1.0000   -1.0000       57 
0.468750   0.468750         64     64.0    -1.0000    1.0000       43 
0.375000   0.281250        128    128.0     1.0000   -1.0000       43 
0.351562   0.328125        256    256.0     1.0000   -1.0000       43 
0.359375   0.367188        512    512.0    -1.0000    1.0000       57 
0.274336   0.274336       1024   1024.0    -1.0000   -1.0000       57 h 
0.281938   0.289474       2048   2048.0    -1.0000   -1.0000       43 h 
0.246696   0.211454       4096   4096.0    -1.0000   -1.0000       43 h 
0.218922   0.191209       8192   8192.0     1.0000    1.0000       43 h 

finished run 
number of examples per pass = 802 
passes used = 11 
weighted example sum = 8822 
weighted label sum = -2288 
average loss = 0.179775 h 
best constant = -0.530826 
best constant’s loss = 0.659128 
total feature number = 427878

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

vw -d test_titanic.vw -t -i model.vw -p predictions.txt 

Прогнозы, сгенерированные в предыдущей команде, не нормализуются для соответствия диапазону [0, 1]. Для этого мы используем сигмовидную трансформацию.

Дисперсионный анализ

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

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

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

x ij = x (x i — x) (x ij — x)

Это приводит к следующей модели —

x ij = μ α i ∈ ij

где μ — среднее значение, а α i — среднее по i -й группе. Предполагается, что ошибочный член ∈ ij является iid из нормального распределения. Нулевая гипотеза теста заключается в том, что —

α 1 = α 2 =… = α k

С точки зрения вычисления тестовой статистики нам нужно вычислить два значения:

  • Сумма квадратов для разности групп —

SSDB= sumki sumnj( barx bari− barx)2

  • Суммы квадратов внутри групп

SSDW= sumki sumnj( barx barij− barx bari))2

где SSD B имеет степень свободы k − 1, а SSD W имеет степень свободы N − k. Затем мы можем определить среднеквадратичные различия для каждой метрики.

MS B = SSD B / (k — 1)

MS w = SSD w / (N — k)

Наконец, тестовая статистика в ANOVA определяется как отношение двух вышеуказанных величин.

F = MS B / MS w

который следует F-распределению с k − 1 и N − k степенями свободы. Если нулевая гипотеза верна, F, вероятно, будет близок к 1. В противном случае среднеквадратичное MSB между группами, вероятно, будет большим, что приводит к большому значению F.

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

С точки зрения вычисления статистики, это на самом деле довольно просто сделать в R. Следующий пример продемонстрирует, как это делается, и отобразит результаты.

library(ggplot2)
# We will be using the mtcars dataset 

head(mtcars) 
#                    mpg  cyl disp  hp drat  wt  qsec   vs am  gear carb 
# Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4 
# Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4 
# Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1 
# Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1 
# Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2 
# Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1  

# Let's see if there are differences between the groups of cyl in the mpg variable. 
data = mtcars[, c('mpg', 'cyl')]  
fit = lm(mpg ~ cyl, data = mtcars) 
anova(fit)  

# Analysis of Variance Table 
# Response: mpg 
#           Df Sum Sq Mean Sq F value    Pr(>F)     
# cyl        1 817.71  817.71  79.561 6.113e-10 *** 
# Residuals 30 308.33   10.28 
# Signif. codes:  0 *** 0.001 ** 0.01 * 0.05 . 
# Plot the distribution 
plot(mpg ~ as.factor(cyl), data = mtcars, col = 'deepskyblue3')

Код выдаст следующий вывод —

Значение p, которое мы получаем в этом примере, значительно меньше 0,05, поэтому R возвращает символ «***», чтобы обозначить это. Это означает, что мы отвергаем нулевую гипотезу и находим различия между средними значениями mpg между различными группами переменной cyl .

Технология big data

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

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

Техники и методы анализа, применимые к Big data по McKinsey:

  • Data Mining;
  • Краудсорсинг;
  • Смешение и интеграция данных;
  • Машинное обучение;
  • Искусственные нейронные сети;
  • Распознавание образов;
  • Прогнозная аналитика;
  • Имитационное моделирование;
  • Пространственный анализ;
  • Статистический анализ;
  • Визуализация аналитических данных.

Горизонтальная масштабируемость, которая обеспечивает обработку данных — базовый принцип обработки больших данных. Данные распределены на вычислительные узлы, а обработка происходит без деградации производительности. McKinsey включил в контекст применимости также реляционные системы управления и Business Intelligence.

Дополнительный анализ:  Как сменить профессию и стать крутым аналитиком? / Блог компании ProductStar / Хабр

Технологии:

  • NoSQL;
  • MapReduce;
  • Hadoop;
  • R;
  • Аппаратные решения.

Для больших данных выделяют традиционные определяющие характеристики, выработанные Meta Group ещё в 2001 году, которые называются «Три V»:

  1. Volume — величина физического объёма.
  2. Velocity — скорость прироста и необходимости быстрой обработки данных для получения результатов.
  3. Variety — возможность одновременно обрабатывать различные типы данных.

Big data: применение и возможности

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

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

Сюзан Этлиджер: Как быть с большими данными?

Решения на основе big data: «сбербанк», «билайн» и другие компании

У «Билайна» есть огромное количество данных об абонентах, которые они используют не только для работы с ними, но и для создания аналитических продуктов, вроде внешнего консалтинга или IPTV-аналитики. «Билайн» сегментировали базу и защитили клиентов от денежных махинаций и вирусов, использовав для хранения HDFS и Apache Spark, а для обработки данных — Rapidminer и Python.

Или вспомним «Сбербанк» с их старым кейсом под названием АС САФИ. Это система, которая анализирует фотографии для идентификации клиентов банка и предотвращает мошенничество. Система была внедрена ещё в 2021 году, в основе системы — сравнение фотографий из базы, которые попадают туда с веб-камер на стойках благодаря компьютерному зрению. Основа системы — биометрическая платформа. Благодаря этому, случаи мошенничества уменьшились в 10 раз.

Big data в мире

По данным компании IBS, к 2003 году мир накопил 5 эксабайтов данных (1 ЭБ = 1 млрд гигабайтов). К 2008 году этот объем вырос до 0,18 зеттабайта (1 ЗБ = 1024 эксабайта), к 2021 году — до 1,76 зеттабайта, к 2021 году — до 4,4 зеттабайта. В мае 2021 года глобальное количество данных превысило 6,5 зеттабайта (подробнее).

К 2020 году, по прогнозам, человечество сформирует 40-44 зеттабайтов информации. А к 2025 году вырастет в 10 раз, говорится в докладе The Data Age 2025, который был подготовлен аналитиками компании IDC. В докладе отмечается, что большую часть данных генерировать будут сами предприятия, а не обычные потребители.

Аналитики исследования считают, что данные станут жизненно-важным активом, а безопасность — критически важным фундаментом в жизни. Также авторы работы уверены, что технология изменит экономический ландшафт, а обычный пользователь будет коммуницировать с подключёнными устройствами около 4800 раз в день. 

Рынок big data в россии

В 2021 году мировой доход на рынке big data должен достигнуть $150,8 млрд, что на 12,4% больше, чем в прошлом году. В мировом масштабе российский рынок услуг и технологий big data ещё очень мал. В 2021 году американская компания IDC оценивала его в $340 млн. В России технологию используют в банковской сфере, энергетике, логистике, государственном секторе, телекоме и промышленности.

Что касается рынка данных, он в России только зарождается. Внутри экосистемы RTB поставщиками данных выступают владельцы программатик-платформ управления данными (DMP) и бирж данных (data exchange). Телеком-операторы в пилотном режиме делятся с банками потребительской информацией о потенциальных заёмщиках.

Обычно большие данные поступают из трёх источников:

  • Интернет (соцсети, форумы, блоги, СМИ и другие сайты);
  • Корпоративные архивы документов;
  • Показания датчиков, приборов и других устройств.

Big data в банках

Помимо системы, описанной выше, в стратегии «Сбербанка» на 2021-2021 гг. говорится о важности анализа супермассивов данных для качественного обслуживания клиентов, управления рисками и оптимизации затрат. Сейчас банк использует Big data для управления рисками, борьбы с мошенничеством, сегментации и оценки кредитоспособности клиентов, управления персоналом, прогнозирования очередей в отделениях, расчёта бонусов для сотрудников и других задач.

«ВТБ24» пользуется большими данными для сегментации и управления оттоком клиентов, формирования финансовой отчётности, анализа отзывов в соцсетях и на форумах. Для этого он применяет решения Teradata, SAS Visual Analytics и SAS Marketing Optimizer.

«Альфа-Банк» за большие данные взялся в 2021 году. Банк использует технологии для анализа соцсетей и поведения пользователей сайта, оценки кредитоспособности, прогнозирования оттока клиентов, персонализации контента и вторичных продаж. Для этого он работает с платформами хранения и обработки Oracle Exadata, Oracle Big data Appliance и фреймворком Hadoop.

«Тинькофф-банк» с помощью EMC Greenplum, SAS Visual Analytics и Hadoop управляет рисками, анализирует потребности потенциальных и существующих клиентов. Большие данные задействованы также в скоринге, маркетинге и продажах.

Big data в бизнесе

Для оптимизации расходов внедрил Big data и «Магнитогорский металлургический комбинат», который является крупным мировым производителем стали. В конце прошлого года они внедрили сервис под названием «Снайпер», который оптимизирует расход ферросплавов и других материалов при производстве. Сервис обрабатывает данные и выдаёт рекомендации для того, чтобы сэкономить деньги на производстве стали. 

Большие данные и будущее — одна из самых острых тем для обсуждения, ведь в основе коммерческой деятельности лежит информация. Идея заключается в том, чтобы «скормить» компьютеру большой объем данных и заставить его отыскивать типовые алгоритмы, которые не способен увидеть человек, или принимать решения на основе процента вероятности в том масштабе, с которым прекрасно справляется человек, но который до сих пор не был доступен для машин, или, возможно, однажды — в таком масштабе, с которым человек не справится никогда.

Чтобы оптимизировать бизнес-процессы,«Сургутнефтегаз» воспользовался платформой данных и приложений «in-memory» под названием SAP HANA, которая помогает в ведении бизнеса в реальном времени. Платформа автоматизирует учёт продукции, расчёт цен, обеспечивает сотрудников информацией и экономит аппаратные ресурсы. Как большие данные перевернули бизнес других предприятий — вы можете прочитать здесь.

Big data в маркетинге

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

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

Сервис Google.Trends вам в помощь, если нужен прогноз сезонной активности спроса. Всё, что надо — сопоставить сведения с данными сайта и составить план распределения рекламного бюджета.

Биг дата изменит мир?

От технологий нам не спрятаться, не скрыться. Big data уже меняет мир, потихоньку просачиваясь в наши города, дома, квартиры и гаджеты. Как быстро технология захватит планету — сказать сложно. Одно понятно точно — держись моды или умри в отстое, как говорил Боб Келсо в сериале «Клиника». 

А что вам интересно было бы узнать о больших данных? Пишите в комментариях 🙂


Материалы по теме:

Некоторые специалисты по big data могут зарабатывать космические суммы

Можно ли не зависеть от больших данных?

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

Как FinTech использует большие данные — хрестоматийные примеры

Оцените статью
Аналитик-эксперт
Добавить комментарий

Adblock
detector