Этот пример показывает, как выполнить статистический анализ и машинное обучение на данных, которые не помещаются в память, с MATLAB® и Statistics and Machine Learning Toolbox™.
Длинные массивы и таблицы разработаны для работы с данными, которые не помещаются в память. Этот тип данных состоит из очень большого количества строк (наблюдения) по сравнению с меньшим числом столбцов (переменные). Вместо того, чтобы писать специализированный код, который учитывает огромный размер данных, такой как с MapReduce, длинные массивы позволяют вам работать с большими наборами данных способом, подобным массивам MATLAB в оперативной памяти. Принципиальное различие - то, что длинные массивы обычно остаются неоцененными, пока вы не запрашиваете, чтобы вычисления были выполнены.
Когда вы выполняете вычисления на длинных массивах, среда выполнения по умолчанию использует или локальный сеанс работы с MATLAB или локальный параллельный пул (если у вас есть Parallel Computing Toolbox™). Можно использовать функцию mapreducer, чтобы изменить среду выполнения.
Этот пример работает с подмножеством данных по одиночному компьютеру, чтобы разработать модель линейной регрессии, и затем это масштабирует, чтобы анализировать весь набор данных. Можно увеличить этот анализ еще больше к:
Работа с данными, которые не могут быть считаны в память
Работа с данными, распределенными на кластерах с помощью MATLAB Parallel Server™
Объединяйтесь с большими системами передачи и обработки данных как Hadoop® и Spark®
Несколько безнадзорных и контролируемых алгоритмов изучения в Statistics and Machine Learning Toolbox доступны, чтобы работать с длинными массивами, чтобы выполнить анализ данных и прогнозирующее моделирование с данными, которые не помещаются в память. Эти алгоритмы подходят для данных, которые не помещаются в память, и могут включать небольшие изменения из алгоритмов в оперативной памяти. Возможности включают:
кластеризация k-средств
Линейная регрессия
Обобщенная линейная регрессия
Логистическая регрессия
Дискриминантный анализ
Рабочий процесс машинного обучения для данных, которые не помещаются в память, в MATLAB подобен данным в оперативной памяти:
Предварительно обработать
Исследовать
Модель Develop
Модель Validate
Масштабируйте до больших данных
Этот пример следует за подобной структурой в разработке прогнозирующей модели для задержек авиакомпании. Данные включают большой файл информации о полете от 1 987 до 2008. Цель в качестве примера состоит в том, чтобы предсказать исходную задержку на основе многих переменных.
Детали об основных аспектах длинных массивов включены в пример Анализ больших данных в MATLAB Используя Длинные массивы (MATLAB). Этот пример расширяет анализ, чтобы включать машинное обучение с длинными массивами.
Datastore является репозиторием для наборов данных, которые являются слишком большими, чтобы уместиться в памяти. Можно создать datastore из многих различных форматов файлов как первый шаг, чтобы создать длинный массив из внешнего источника данных.
Создайте datastore для файла примера airlinesmall.csv. Выберите переменные интереса, обработайте значения 'NA' как недостающие данные и сгенерируйте таблицу предварительного просмотра данных.
ds = datastore(fullfile(matlabroot,'toolbox','matlab','demos','airlinesmall.csv')); ds.SelectedVariableNames = {'Year','Month','DayofMonth','DayOfWeek',... 'DepTime','ArrDelay','DepDelay','Distance'}; ds.TreatAsMissing = 'NA'; pre = preview(ds)
pre =
8×8 table
Year Month DayofMonth DayOfWeek DepTime ArrDelay DepDelay Distance
____ _____ __________ _________ _______ ________ ________ ________
1987 10 21 3 642 8 12 308
1987 10 26 1 1021 8 1 296
1987 10 23 5 2055 21 20 480
1987 10 23 5 1332 13 12 296
1987 10 22 4 629 4 -1 373
1987 10 28 3 1446 59 63 308
1987 10 8 4 928 3 -2 447
1987 10 10 6 859 11 -1 954
Составьте длинную таблицу, поддержанную datastore, чтобы упростить работу с данными. Базовый тип данных длинного массива зависит от типа datastore. В этом случае datastore является табличным текстом и возвращает tall table. Отображение включает предварительный просмотр данных с индикацией, что размер неизвестен.
tt = tall(ds)
Starting parallel pool (parpool) using the 'local' profile ...
Connected to the parallel pool (number of workers: 6).
tt =
M×8 tall table
Year Month DayofMonth DayOfWeek DepTime ArrDelay DepDelay Distance
____ _____ __________ _________ _______ ________ ________ ________
1987 10 21 3 642 8 12 308
1987 10 26 1 1021 8 1 296
1987 10 23 5 2055 21 20 480
1987 10 23 5 1332 13 12 296
1987 10 22 4 629 4 -1 373
1987 10 28 3 1446 59 63 308
1987 10 8 4 928 3 -2 447
1987 10 10 6 859 11 -1 954
: : : : : : : :
: : : : : : : :
Этот пример стремится исследовать время суток и день недели более подробно. Преобразуйте день недели к категориальным данным с метками и определите час дня от числовой переменной времени отправления.
tt.DayOfWeek = categorical(tt.DayOfWeek,1:7,{'Sun','Mon','Tues',...
'Wed','Thu','Fri','Sat'});
tt.Hr = discretize(tt.DepTime,0:100:2400,0:23)
tt =
M×9 tall table
Year Month DayofMonth DayOfWeek DepTime ArrDelay DepDelay Distance Hr
____ _____ __________ _________ _______ ________ ________ ________ __
1987 10 21 Tues 642 8 12 308 6
1987 10 26 Sun 1021 8 1 296 10
1987 10 23 Thu 2055 21 20 480 20
1987 10 23 Thu 1332 13 12 296 13
1987 10 22 Wed 629 4 -1 373 6
1987 10 28 Tues 1446 59 63 308 14
1987 10 8 Wed 928 3 -2 447 9
1987 10 10 Fri 859 11 -1 954 8
: : : : : : : : :
: : : : : : : : :
Включайте только спустя годы после этого 2000 и проигнорируйте строки с недостающими данными. Идентифицируйте данные интереса логическим условием.
idx = tt.Year >= 2000 & ...
~any(ismissing(tt),2);
tt = tt(idx,:);
Много исследовательских функций доступны для длинных массивов. Для списка поддерживаемых функций статистики смотрите Поддержку Длинного массива, Указания по применению и Ограничения.
Функция grpstats вычисляет сгруппированную статистику длинных массивов. Исследуйте данные путем определения центрированности и распространения данных с итоговой статистикой, сгруппированной за день недели. Кроме того, исследуйте корреляцию между исходной задержкой и задержкой прибытия.
g = grpstats(tt(:,{'ArrDelay','DepDelay','DayOfWeek'}),'DayOfWeek',...
{'mean','std','skewness','kurtosis'})
g =
M×11 tall table
GroupLabel DayOfWeek GroupCount mean_ArrDelay std_ArrDelay skewness_ArrDelay kurtosis_ArrDelay mean_DepDelay std_DepDelay skewness_DepDelay kurtosis_DepDelay
__________ _________ __________ _____________ ____________ _________________ _________________ _____________ ____________ _________________ _________________
? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ?
: : : : : : : : : : :
: : : : : : : : : : :
C = corr(tt.DepDelay,tt.ArrDelay)
C =
M×N×... tall array
? ? ? ...
? ? ? ...
? ? ? ...
: : :
: : :
Эти команды производят больше длинных массивов. Команды не выполняются, пока вы явным образом не собираете результаты в рабочую область. Команда gather инициировала выполнение и пытается минимизировать количество передач, требуемых через данные выполнять вычисления. gather требует, чтобы получившиеся переменные поместились в память.
[statsByDay,C] = gather(g,C)
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 13 sec
Evaluation completed in 22 sec
statsByDay =
7×11 table
GroupLabel DayOfWeek GroupCount mean_ArrDelay std_ArrDelay skewness_ArrDelay kurtosis_ArrDelay mean_DepDelay std_DepDelay skewness_DepDelay kurtosis_DepDelay
__________ _________ __________ _____________ ____________ _________________ _________________ _____________ ____________ _________________ _________________
'Wed' Wed 8489 9.3324 37.406 5.1638 57.479 10 33.426 6.4336 85.426
'Fri' Fri 7339 4.1512 32.1 7.082 120.53 7.0857 29.339 8.9387 168.37
'Sat' Sat 8045 7.132 33.108 3.6457 22.991 9.1557 29.731 4.5135 31.228
'Tues' Tues 8381 6.4786 32.322 4.374 38.694 7.6083 28.394 5.2012 46.249
'Mon' Mon 8443 5.2487 32.453 4.5811 37.175 6.8319 28.573 5.6468 50.271
'Sun' Sun 8570 7.7515 36.003 5.7943 80.91 9.3324 32.516 7.2146 118.25
'Thu' Thu 8601 10.053 36.18 4.1381 37.051 10.923 34.708 1.1414 138.38
C =
0.8966
Переменные, содержащие результаты, являются теперь переменными в оперативной памяти в Рабочей области. На основе этих вычислений изменение происходит в данных и существует корреляция между задержками, которые можно исследовать далее.
Исследуйте эффект дня недели и часа дня и получите дополнительную статистическую информацию, такую как стандартная погрешность среднего значения и 95%-го доверительного интервала для среднего значения. Можно передать целую длинную таблицу и задать который переменные выполнить вычисления на.
byDayHr = grpstats(tt,{'Hr','DayOfWeek'},...
{'mean','sem','meanci'},'DataVar','DepDelay');
byDayHr = gather(byDayHr);
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 3 sec Evaluation completed in 6.7 sec
Из-за разделения данных длинного массива, вывод может быть не упорядочен. Перестройте данные в памяти для дальнейшего исследования.
x = unstack(byDayHr(:,{'Hr','DayOfWeek','mean_DepDelay'}),...
'mean_DepDelay','DayOfWeek');
x = sortrows(x)
x =
24×8 table
Hr Sun Mon Tues Wed Thu Fri Sat
__ _______ ________ ________ _______ _______ _______ _______
0 38.519 71.914 39.656 34.667 90 25.536 65.579
1 45.846 27.875 93.6 125.23 52.765 38.091 29.182
2 NaN 39 102 NaN 78.25 -1.5 NaN
3 NaN NaN NaN NaN -377.5 53.5 NaN
4 -7 -6.2857 -7 -7.3333 -10.5 -5 NaN
5 -2.2409 -3.7099 -4.0146 -3.9565 -3.5897 -3.5766 -4.1474
6 0.4 -1.8909 -1.9802 -1.8304 -1.3578 0.84161 -2.2537
7 3.4173 -0.47222 -0.18893 0.71546 0.08 1.069 -1.3221
8 2.3759 1.4054 1.6745 2.2345 2.9668 1.6727 0.88213
9 2.5325 1.6805 2.7656 2.683 5.6138 3.4838 2.5011
10 6.37 5.2868 3.6822 7.5773 5.3372 6.9391 4.9979
11 6.9946 4.9165 5.5639 5.5936 7.0435 4.8989 5.2839
12 5.673 5.1193 5.7081 7.9178 7.5269 8.0625 7.4686
13 8.0879 7.1017 5.0857 8.8082 8.2878 8.0675 6.2107
14 9.5164 5.8343 7.416 9.5954 8.6667 6.0677 8.444
15 8.1257 4.8802 7.4726 9.8674 10.235 7.167 8.6219
16 12.302 7.4968 11.406 12.413 12.874 10.962 12.908
17 11.47 8.9495 10.658 12.961 13.487 7.9034 8.9327
18 15.148 13.849 11.266 15.406 16.706 11.022 13.042
19 14.77 11.618 15.053 17.561 21.032 12.644 16.404
20 17.711 13.942 17.105 22.382 25.945 11.223 22.152
21 23.727 17.276 23.092 25.794 28.828 14.011 22.682
22 29.383 24.949 28.265 30.649 37.38 24.328 36.272
23 38.296 33.966 34.904 47.592 49.523 29.5 44.122
В настоящее время можно визуализировать данные о длинном массиве с помощью histogram, histogram2, binScatterPlot и ksdensity. Визуализация все триггерное выполнение, подобное вызыванию функции gather.
Используйте binScatterPlot, чтобы исследовать отношение между переменными Hr и DepDelay.
binScatterPlot(tt.Hr,tt.DepDelay,'Gamma',0.25) ylim([0 500]) xlabel('Time of Day') ylabel('Delay (Minutes)')
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.5 sec Evaluation completed in 1.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.4 sec Evaluation completed in 1.4 sec

Как отмечено в выходном отображении, визуализация часто берет два прохода через данные: один, чтобы выполнить раскладывание, и один, чтобы выполнить сгруппированное вычисление и произвести визуализацию.
Чтобы разработать модель машинного обучения, полезно зарезервировать часть данных, чтобы обучить и разработать модель и другую часть данных, чтобы протестировать модель. Много путей существуют для вас, чтобы разделить данные в наборы обучения и валидации.
Используйте datasample, чтобы получить случайную выборку данных. Затем используйте cvpartition, чтобы разделить данные в наборы тестов и наборы обучающих данных. Чтобы получить нерасслоенные разделы, установите универсальную группирующую переменную путем умножения выборок данных на нуль.
Для воспроизводимости, набор seed генератора случайных чисел с помощью tallrng. Результаты могут отличаться в зависимости от количества рабочих и среды выполнения для длинных массивов. Для получения дополнительной информации смотрите Управление Где Ваши Выполнения Кода (MATLAB).
tallrng('default') data = datasample(tt,25000,'Replace',false); groups = 0*data.DepDelay; y = cvpartition(groups,'HoldOut',1/3);
dataTrain = data(training(y),:); dataTest = data(test(y),:);
Создайте модель, чтобы предсказать исходную задержку на основе нескольких переменных. Функция модели линейной регрессии fitlm ведет себя так же к функции в оперативной памяти. Однако вычисления с длинными массивами приводят к CompactLinearModel, который более эффективен для больших наборов данных. Модель, соответствующая триггерному выполнению, потому что это - итеративный процесс.
model = fitlm(dataTrain,'ResponseVar','DepDelay')
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 2: Completed in 2.3 sec
- Pass 2 of 2: Completed in 3.7 sec
Evaluation completed in 6.1 sec
model =
Compact linear regression model:
DepDelay ~ [Linear formula with 9 terms in 8 predictors]
Estimated Coefficients:
Estimate SE tStat pValue
__________ __________ ________ __________
(Intercept) 30.715 75.873 0.40482 0.68562
Year -0.01585 0.037853 -0.41872 0.67543
Month 0.03009 0.028097 1.0709 0.28421
DayofMonth -0.0094266 0.010903 -0.86457 0.38729
DayOfWeek_Mon -0.36333 0.35527 -1.0227 0.30648
DayOfWeek_Tues -0.2858 0.35245 -0.81091 0.41743
DayOfWeek_Wed -0.56082 0.35309 -1.5883 0.11224
DayOfWeek_Thu -0.25295 0.35239 -0.71782 0.47288
DayOfWeek_Fri 0.91768 0.36625 2.5056 0.012234
DayOfWeek_Sat 0.45668 0.35785 1.2762 0.20191
DepTime -0.011551 0.0053851 -2.145 0.031964
ArrDelay 0.8081 0.002875 281.08 0
Distance 0.0012881 0.00016887 7.6281 2.5106e-14
Hr 1.4058 0.53785 2.6138 0.0089613
Number of observations: 16667, Error degrees of freedom: 16653
Root Mean Squared Error: 12.4
R-squared: 0.834, Adjusted R-Squared: 0.833
F-statistic vs. constant model: 6.41e+03, p-value = 0
Отображение указывает на подходящую информацию, а также коэффициенты и сопоставленную содействующую статистику.
Переменная model содержит информацию о подобранной модели как свойства, которые можно получить доступ к записи через точку использования. Также дважды щелкните по переменной в Рабочей области, чтобы исследовать свойства в интерактивном режиме.
model.Rsquared
ans =
struct with fields:
Ordinary: 0.8335
Adjusted: 0.8334
Предскажите новые значения на основе модели, вычислите невязки и визуализируйте использование гистограммы. Функция predict предсказывает новые значения и для высоких и для данных в оперативной памяти.
pred = predict(model,dataTest); err = pred - dataTest.DepDelay; figure histogram(err,'BinLimits',[-100 100],'Normalization','pdf') title('Histogram of Residuals')
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 2: Completed in 3.6 sec - Pass 2 of 2: Completed in 2.2 sec Evaluation completed in 6.1 sec

При рассмотрении выходных p-значений в отображении некоторые переменные могут быть ненужными в модели. Можно уменьшать сложность модели путем удаления этих переменных.
Исследуйте значение переменных в модели более тесно с помощью anova.
a = anova(model)
a =
9×5 table
SumSq DF MeanSq F pValue
__________ _____ __________ _______ __________
Year 26.88 1 26.88 0.17533 0.67543
Month 175.84 1 175.84 1.1469 0.28421
DayofMonth 114.6 1 114.6 0.74749 0.38729
DayOfWeek 3691.4 6 615.23 4.0129 0.00050851
DepTime 705.42 1 705.42 4.6012 0.031964
ArrDelay 1.2112e+07 1 1.2112e+07 79004 0
Distance 8920.9 1 8920.9 58.188 2.5106e-14
Hr 1047.5 1 1047.5 6.8321 0.0089613
Error 2.5531e+06 16653 153.31
На основе p-значений переменные Year, Month и DayOfMonth не являются значительными к этой модели, таким образом, можно удалить их, негативно не влияя на образцовое качество.
Чтобы исследовать эти параметры модели далее, используйте интерактивную визуализацию, такую как plotSlice, plotInterations и plotEffects. Например, используйте plotEffects, чтобы исследовать предполагаемый эффект, который каждая переменная прогноза имеет на исходную задержку.
plotEffects(model)

На основе этих вычислений ArrDelay является основным эффектом в модели (это высоко коррелируется к DepDelay). Другие эффекты заметны, но оказывают намного меньше влияния. Кроме того, Hr был определен от DepTime, таким образом, только одна из этих переменных необходима для модели.
Сократите количество переменных, чтобы исключить все компоненты даты, и затем соответствовать новой модели.
model2 = fitlm(dataTrain,'DepDelay ~ DepTime + ArrDelay + Distance')
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 2: Completed in 1.2 sec
- Pass 2 of 2: Completed in 2 sec
Evaluation completed in 3.2 sec
model2 =
Compact linear regression model:
DepDelay ~ 1 + DepTime + ArrDelay + Distance
Estimated Coefficients:
Estimate SE tStat pValue
_________ __________ _______ __________
(Intercept) -1.4646 0.31696 -4.6207 3.8538e-06
DepTime 0.0025087 0.00020401 12.297 1.3333e-34
ArrDelay 0.80767 0.0028712 281.3 0
Distance 0.0012981 0.00016886 7.6875 1.5838e-14
Number of observations: 16667, Error degrees of freedom: 16663
Root Mean Squared Error: 12.4
R-squared: 0.833, Adjusted R-Squared: 0.833
F-statistic vs. constant model: 2.77e+04, p-value = 0
Даже с упрощенной моделью, может быть полезно далее настроить отношения между переменными и включать определенные взаимодействия. Чтобы экспериментировать далее, повторите этот рабочий процесс с меньшими длинными массивами. Для производительности при настройке модели можно рассмотреть работу с небольшой экстракцией данных в оперативной памяти перед увеличением масштаба к целому длинному массиву.
В этом примере можно использовать функциональность как пошаговая регрессия, которая подходит для итеративной, разработки моделей в оперативной памяти. После настройки модели можно масштабировать, чтобы использовать длинные массивы.
Соберите подмножество данных в рабочую область и используйте stepwiselm, чтобы итеративно разработать модель в памяти.
subset = gather(dataTest); sModel = stepwiselm(subset,'ResponseVar','DepDelay')
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 1: Completed in 1.8 sec
Evaluation completed in 1.8 sec
1. Adding ArrDelay, FStat = 42200.3016, pValue = 0
2. Adding DepTime, FStat = 51.7918, pValue = 6.70647e-13
3. Adding DepTime:ArrDelay, FStat = 42.4982, pValue = 7.48624e-11
4. Adding Distance, FStat = 15.4303, pValue = 8.62963e-05
5. Adding ArrDelay:Distance, FStat = 231.9012, pValue = 1.135326e-51
6. Adding DayOfWeek, FStat = 3.4704, pValue = 0.0019917
7. Adding DayOfWeek:ArrDelay, FStat = 26.334, pValue = 3.16911e-31
8. Adding DayOfWeek:DepTime, FStat = 2.1732, pValue = 0.042528
sModel =
Linear regression model:
DepDelay ~ [Linear formula with 9 terms in 4 predictors]
Estimated Coefficients:
Estimate SE tStat pValue
___________ __________ ________ __________
(Intercept) 1.1799 1.0675 1.1053 0.26904
DayOfWeek_Mon -2.1377 1.4298 -1.4951 0.13493
DayOfWeek_Tues -4.2868 1.4683 -2.9196 0.0035137
DayOfWeek_Wed -1.6233 1.476 -1.0998 0.27145
DayOfWeek_Thu -0.74772 1.5226 -0.49109 0.62338
DayOfWeek_Fri -1.7618 1.5079 -1.1683 0.2427
DayOfWeek_Sat -2.1121 1.5214 -1.3882 0.16511
DepTime 7.5229e-05 0.00073613 0.10219 0.9186
ArrDelay 0.8671 0.013836 62.669 0
Distance 0.0015163 0.00023426 6.4728 1.0167e-10
DayOfWeek_Mon:DepTime 0.0017633 0.0010106 1.7448 0.081056
DayOfWeek_Tues:DepTime 0.0032578 0.0010331 3.1534 0.0016194
DayOfWeek_Wed:DepTime 0.00097506 0.001044 0.93398 0.35034
DayOfWeek_Thu:DepTime 0.0012517 0.0010694 1.1705 0.24184
DayOfWeek_Fri:DepTime 0.0026464 0.0010711 2.4707 0.013504
DayOfWeek_Sat:DepTime 0.0021477 0.0010646 2.0174 0.043689
DayOfWeek_Mon:ArrDelay -0.11023 0.014744 -7.4767 8.399e-14
DayOfWeek_Tues:ArrDelay -0.14589 0.014814 -9.8482 9.2943e-23
DayOfWeek_Wed:ArrDelay -0.041878 0.012849 -3.2593 0.0011215
DayOfWeek_Thu:ArrDelay -0.096741 0.013308 -7.2693 3.9414e-13
DayOfWeek_Fri:ArrDelay -0.077713 0.015462 -5.0259 5.1147e-07
DayOfWeek_Sat:ArrDelay -0.13669 0.014652 -9.329 1.3471e-20
DepTime:ArrDelay 6.4148e-05 7.7372e-06 8.2909 1.3002e-16
ArrDelay:Distance -0.00010512 7.3888e-06 -14.227 2.1138e-45
Number of observations: 8333, Error degrees of freedom: 8309
Root Mean Squared Error: 12
R-squared: 0.845, Adjusted R-Squared: 0.845
F-statistic vs. constant model: 1.97e+03, p-value = 0
Модель, которая следует из пошаговой подгонки, включает периоды взаимодействия.
Теперь попытайтесь подобрать модель для высоких данных при помощи fitlm с формулой, возвращенной stepwiselm.
model3 = fitlm(dataTrain,sModel.Formula)
Evaluating tall expression using the Parallel Pool 'local':
- Pass 1 of 2: Completed in 1.5 sec
- Pass 2 of 2: Completed in 1.4 sec
Evaluation completed in 3 sec
model3 =
Compact linear regression model:
DepDelay ~ [Linear formula with 9 terms in 4 predictors]
Estimated Coefficients:
Estimate SE tStat pValue
___________ __________ ________ __________
(Intercept) -0.31595 0.74499 -0.4241 0.6715
DayOfWeek_Mon -0.64218 1.0473 -0.61316 0.53978
DayOfWeek_Tues -0.90163 1.0383 -0.86836 0.38521
DayOfWeek_Wed -1.0798 1.0417 -1.0365 0.29997
DayOfWeek_Thu -3.2765 1.0379 -3.157 0.0015967
DayOfWeek_Fri 0.44193 1.0813 0.40869 0.68277
DayOfWeek_Sat 1.1428 1.0777 1.0604 0.28899
DepTime 0.0014188 0.00051612 2.7489 0.0059853
ArrDelay 0.72526 0.011907 60.913 0
Distance 0.0014824 0.00017027 8.7059 3.4423e-18
DayOfWeek_Mon:DepTime 0.00040994 0.00073548 0.55738 0.57728
DayOfWeek_Tues:DepTime 0.00051826 0.00073645 0.70373 0.48161
DayOfWeek_Wed:DepTime 0.00058426 0.00073695 0.79281 0.4279
DayOfWeek_Thu:DepTime 0.0026229 0.00073649 3.5614 0.00036991
DayOfWeek_Fri:DepTime 0.0002959 0.00077194 0.38332 0.70149
DayOfWeek_Sat:DepTime -0.00060921 0.00075776 -0.80396 0.42143
DayOfWeek_Mon:ArrDelay -0.034886 0.010435 -3.3432 0.00082993
DayOfWeek_Tues:ArrDelay -0.0073661 0.010113 -0.72837 0.4664
DayOfWeek_Wed:ArrDelay -0.028158 0.0099004 -2.8441 0.0044594
DayOfWeek_Thu:ArrDelay -0.061065 0.010381 -5.8821 4.1275e-09
DayOfWeek_Fri:ArrDelay 0.052437 0.010927 4.7987 1.6111e-06
DayOfWeek_Sat:ArrDelay 0.014205 0.01039 1.3671 0.1716
DepTime:ArrDelay 7.2632e-05 5.3946e-06 13.464 4.196e-41
ArrDelay:Distance -2.4743e-05 4.6508e-06 -5.3203 1.0496e-07
Number of observations: 16667, Error degrees of freedom: 16643
Root Mean Squared Error: 12.3
R-squared: 0.837, Adjusted R-Squared: 0.836
F-statistic vs. constant model: 3.7e+03, p-value = 0
Можно повторить этот процесс, чтобы продолжить настраивать линейную модель. Однако в этом случае необходимо исследовать различные типы регрессии, которая может более подходить для этих данных. Например, если вы не хотите включать задержку прибытия, затем этот тип линейной модели более не не является соответствующим. Смотрите Логистическую регрессию с Длинными массивами для получения дополнительной информации.
Ключевая возможность длинных массивов в MATLAB и Statistics and Machine Learning Toolbox является возможностью соединения на платформы, такие как Hadoop и Spark. Можно даже скомпилировать код и запустить его на Spark с помощью MATLAB Compiler™. Смотрите Расширение длинных массивов с помощью других продуктов (MATLAB) для получения дополнительной информации об использовании этих продуктов:
Database Toolbox™
Parallel Computing Toolbox™
MATLAB® Parallel Server™
MATLAB Compiler™