В этом примере показано, как выполнять статистический анализ и машинное обучение для данных, не находящихся в памяти, с помощью MATLAB ® и Statistics and Machine Learning Toolbox™.
Массивы и таблицы Tall предназначены для работы с данными, лишенными памяти. Этот тип данных состоит из очень большого количества строк (наблюдений) по сравнению с меньшим количеством столбцов (переменных). Вместо написания специализированного кода, учитывающего огромный размер данных, например, с помощью MapReduce, можно использовать массивы tall для работы с большими наборами данных способом, аналогичным наличию массивов MATLAB в памяти. Принципиальное отличие заключается в том, что массивы tall обычно остаются невысокими до тех пор, пока не будет запрошено выполнение вычислений.
При выполнении вычислений в массивах TALL MATLAB ® использует либо параллельный пул (по умолчанию при наличии Toolbox™ Parallel Computing), либо локальный сеанс MATLAB. Для выполнения примера с использованием локального сеанса MATLAB при наличии панели инструментов Parallel Computing Toolbox измените глобальную среду выполнения с помощью mapreducer функция.
mapreducer(0)
Этот пример работает с подмножеством данных на одном компьютере для разработки модели линейной регрессии, а затем масштабируется для анализа всего набора данных. Этот анализ можно масштабировать еще больше, чтобы:
Работа с данными, которые невозможно считать в память
Работа с данными, распределенными по кластерам, с помощью MATLAB Parallel Server™
Интеграция с такими системами больших данных, как Hadoop ® и Spark ®
Существует несколько неподконтрольных и контролируемых алгоритмов обучения в Statistics and Machine Learning Toolbox для работы с массивами tall для выполнения интеллектуального анализа данных и прогностического моделирования с данными, лишенными памяти. Эти алгоритмы подходят для данных вне памяти и могут включать небольшие отклонения от алгоритмов в памяти. Возможности включают в себя:
k - означает кластеризацию
Линейная регрессия
Обобщенная линейная регрессия
Логистическая регрессия
Дискриминантный анализ
Рабочий процесс машинного обучения для данных из памяти в MATLAB аналогичен данным из памяти:
Предварительно обработать
Исследовать
Разработка модели
Проверка модели
Масштабирование до больших объемов данных
Этот пример следует аналогичной структуре при разработке прогнозной модели задержек авиакомпаний. Данные включают большой файл информации о рейсах авиакомпании с 1987 по 2008 год. Целью примера является прогнозирование задержки отправления на основе ряда переменных.
Подробные сведения об основных аспектах массивов tall приведены в примере Анализ больших данных в MATLAB с использованием массивов Tall. Этот пример расширяет анализ, включив в него машинное обучение с помощью массивов tall.
Хранилище данных - это хранилище для наборов данных, слишком больших для размещения в памяти. В качестве первого шага для создания массива высокого уровня из внешнего источника данных можно создать хранилище данных из нескольких различных форматов файлов.
Создание хранилища данных для файла образца 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
Создайте таблицу высокого уровня, поддерживаемую хранилищем данных, чтобы упростить работу с данными. Базовый тип данных массива высокого уровня зависит от типа хранилища данных. В этом случае хранилище данных представляет собой табличный текст и возвращает высокую таблицу. Дисплей содержит предварительный просмотр данных с указанием на то, что размер неизвестен.
tt = tall(ds)
tt =
Mx8 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 =
Mx9 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,:);Для массивов tall доступен ряд исследовательских функций. Например, grpstats функция вычисляет сгруппированную статистику массивов tall. Изучение данных путем определения централизованности и распространения данных с помощью сводной статистики, сгруппированной по дням недели. Также изучите корреляцию между задержкой отправления и задержкой прибытия.
g = grpstats(tt(:,{'ArrDelay','DepDelay','DayOfWeek'}),'DayOfWeek',...
{'mean','std','skewness','kurtosis'})g =
Mx11 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 =
MxNx... tall array
? ? ? ...
? ? ? ...
? ? ? ...
: : :
: : :
Эти команды создают больше массивов tall. Команды не выполняются до тех пор, пока результаты не будут явно собраны в рабочую область. gather команда запускает выполнение и пытается минимизировать количество проходов, необходимых для выполнения вычислений через данные. gather требует, чтобы результирующие переменные помещались в память.
[statsByDay,C] = gather(g,C)
Evaluating tall expression using the Local MATLAB Session: - Pass 1 of 1: Completed in 2.9 sec Evaluation completed in 4.2 sec
statsByDay=7×11 table
GroupLabel DayOfWeek GroupCount mean_ArrDelay std_ArrDelay skewness_ArrDelay kurtosis_ArrDelay mean_DepDelay std_DepDelay skewness_DepDelay kurtosis_DepDelay
__________ _________ __________ _____________ ____________ _________________ _________________ _____________ ____________ _________________ _________________
{'Fri' } Fri 7339 4.1512 32.1 7.082 120.53 7.0857 29.339 8.9387 168.37
{'Mon' } Mon 8443 5.2487 32.453 4.5811 37.175 6.8319 28.573 5.6468 50.271
{'Sat' } Sat 8045 7.132 33.108 3.6457 22.991 9.1557 29.731 4.5135 31.228
{'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
{'Tues'} Tues 8381 6.4786 32.322 4.374 38.694 7.6083 28.394 5.2012 46.249
{'Wed' } Wed 8489 9.3324 37.406 5.1638 57.479 10 33.426 6.4336 85.426
C = 0.8966
Переменные, содержащие результаты, теперь находятся в памяти рабочей области. На основе этих вычислений в данных возникают вариации и существует корреляция между задержками, которые можно исследовать дополнительно.
Изучите влияние дня недели и часа дня и получите дополнительную статистическую информацию, такую как стандартная ошибка среднего значения и 95% доверительный интервал для среднего значения. Можно передать всю таблицу высот и указать, с какими переменными выполнять вычисления.
byDayHr = grpstats(tt,{'Hr','DayOfWeek'},...
{'mean','sem','meanci'},'DataVar','DepDelay');
byDayHr = gather(byDayHr);Evaluating tall expression using the Local MATLAB Session: - Pass 1 of 1: Completed in 2 sec Evaluation completed in 2.6 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
⋮
В настоящее время можно визуализировать данные массива высокого уровня с помощью histogram, histogram2, binScatterPlot, и ksdensity. Все визуализации запускают выполнение аналогично вызову gather функция.
Использовать binScatterPlot для изучения взаимосвязи между Hr и DepDelay переменные.
binScatterPlot(tt.Hr,tt.DepDelay,'Gamma',0.25)Evaluating tall expression using the Local MATLAB Session: - Pass 1 of 1: Completed in 1.3 sec Evaluation completed in 1.7 sec Evaluating tall expression using the Local MATLAB Session: - Pass 1 of 1: Completed in 0.98 sec Evaluation completed in 1.1 sec
ylim([0 500]) xlabel('Time of Day') ylabel('Delay (Minutes)')

Как отмечено на выходном дисплее, визуализации часто проходят через данные два прохода: один для выполнения гибки, а другой для выполнения связанного вычисления и создания визуализации.
Для разработки модели машинного обучения полезно зарезервировать часть данных для обучения и разработки модели и другую часть данных для тестирования модели. Существует ряд способов разделения данных на наборы обучения и проверки.
Использовать datasample для получения случайной выборки данных. Затем использовать cvpartition для разделения данных на тестовые и обучающие наборы. Чтобы получить нестратифицированные секции, задайте однородную группирующую переменную путем умножения выборок данных на ноль.
Для воспроизводимости задайте начальное число генератора случайных чисел с помощью tallrng. Результаты могут варьироваться в зависимости от количества работников и среды выполнения для массивов tall. Дополнительные сведения см. в разделе Управление местом запуска кода.
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 ведет себя аналогично функции в памяти. Однако вычисления с массивами tall приводят к CompactLinearModel, что является более эффективным для больших наборов данных. Фитинг модели запускает выполнение, поскольку это итеративный процесс.
model = fitlm(dataTrain,'ResponseVar','DepDelay')
Evaluating tall expression using the Local MATLAB Session: - Pass 1 of 2: Completed in 1.3 sec - Pass 2 of 2: Completed in 3 sec Evaluation completed in 5 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')
Evaluating tall expression using the Local MATLAB Session: - Pass 1 of 2: Completed in 1.8 sec - Pass 2 of 2: Completed in 1.3 sec Evaluation completed in 3.6 sec
title('Histogram of Residuals')
При просмотре выходных значений 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 Local MATLAB Session: - Pass 1 of 1: Completed in 1.3 sec Evaluation completed in 1.5 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);
Evaluating tall expression using the Local MATLAB Session: - Pass 1 of 1: Completed in 0.68 sec Evaluation completed in 0.72 sec
sModel = stepwiselm(subset,'ResponseVar','DepDelay')
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 Local MATLAB Session: - Pass 1 of 1: Completed in 1.8 sec Evaluation completed in 2 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
Можно повторить этот процесс, чтобы продолжить коррекцию линейной модели. Однако в этом случае следует изучить различные типы регрессии, которые могут быть более подходящими для этих данных. Например, если не требуется включать задержку поступления, этот тип линейной модели больше не подходит. Дополнительные сведения см. в разделе Логистическая регрессия с массивами Tall.
Ключевая возможность массивов tall в MATLAB и Statistics and Machine Learning Toolbox заключается в подключении к таким платформам, как Hadoop и Spark. Можно даже скомпилировать код и запустить его на Spark с помощью MATLAB Compiler™. Дополнительные сведения об использовании этих продуктов см. в разделе Расширение массивов с другими продуктами:
Toolbox™ базы данных
Параллельные вычисления Toolbox™
Параллельный Server™ MATLAB ®
MATLAB Compiler™