В этом примере показано, как выполнить статистический анализ и машинное обучение на данных, которые не помещаются в память, с MATLAB® и Statistics and Machine Learning Toolbox™.
Длинные массивы и таблицы спроектированы для работы с данными, которые не помещаются в память. Этот тип данных состоит из очень большого количества строк (наблюдения) по сравнению с меньшим числом столбцов (переменные). Вместо того, чтобы писать специализированный код, который учитывает огромный размер данных, такой как с MapReduce, длинные массивы позволяют вам работать с большими наборами данных способом, похожим на массивы MATLAB в оперативной памяти. Принципиальное различие - то, что длинные массивы обычно остаются неоцененными, пока вы не запрашиваете, чтобы вычисления были выполнены.
Когда вы выполняете вычисления на длинных массивах, MATLAB использует любого параллельный пул (значение по умолчанию, если у вас есть Parallel Computing Toolbox™), или локальный сеанс работы с MATLAB. Если вы хотите запустить пример с помощью локального сеанса работы с MATLAB, когда у вас есть Parallel Computing Toolbox, можно изменить глобальную среду выполнения при помощи mapreducer
функция.
Этот пример работает с подмножеством данных по одиночному компьютеру, чтобы разработать модель линейной регрессии, и затем это масштабирует, чтобы анализировать весь набор данных. Можно увеличить этот анализ еще больше к:
Работа с данными, которые не могут быть считаны в память
Работа с данными, распределенными на кластерах с помощью MATLAB Parallel Server™
Объединяйтесь с большими системами передачи и обработки данных как Hadoop® и Spark®
Несколько безнадзорные и алгоритмы контролируемого обучения в Statistics and Machine Learning Toolbox доступны, чтобы работать с длинными массивами, чтобы выполнить анализ данных и прогнозирующее моделирование с данными, которые не помещаются в память. Эти алгоритмы подходят для данных, которые не помещаются в память, и могут включать небольшие изменения из алгоритмов в оперативной памяти. Возможности включают:
кластеризация k-средних значений
Линейная регрессия
Обобщенная линейная регрессия
Логистическая регрессия
Дискриминантный анализ
Рабочий процесс машинного обучения для данных, которые не помещаются в память, в MATLAB похож на данные в оперативной памяти:
Предварительно обработать
Исследовать
Модель Develop
Модель Validate
Масштабируйте до больших данных
Этот пример следует за подобной структурой в разработке прогнозной модели для задержек авиакомпании. Данные включают большой файл информации о полете от 1 987 до 2008. Цель в качестве примера состоит в том, чтобы предсказать исходную задержку на основе многих переменных.
Детали об основных аспектах длинных массивов включены в exampleAnalyze Большие данные в 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: 12). 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,:);
Много исследовательских функций доступны для длинных массивов. Например, grpstats
функция вычисляет сгруппированную статистику длинных массивов. Исследуйте данные путем определения центрированности и распространения данных с итоговой статистикой, сгруппированной за день недели. Кроме того, исследуйте корреляцию между исходной задержкой и задержкой прибытия.
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 ? ? ? ... ? ? ? ... ? ? ? ... : : : : : :
Эти команды производят больше длинных массивов. Команды не выполняются, пока вы явным образом не собираете результаты в рабочую область. gather
команда инициировала выполнение и пытается минимизировать количество передач, требуемых через данные выполнять вычисления. gather
требует, чтобы получившиеся переменные поместились в память.
[statsByDay,C] = gather(g,C)
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 8.2 sec Evaluation completed in 18 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
{'Tues'} Tues 8381 6.4786 32.322 4.374 38.694 7.6083 28.394 5.2012 46.249
{'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
{'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 2.9 sec Evaluation completed in 6.9 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 Parallel Pool 'local': - Pass 1 of 1: Completed in 1.6 sec Evaluation completed in 2.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.1 sec Evaluation completed in 1.5 sec
ylim([0 500]) xlabel('Time of Day') ylabel('Delay (Minutes)')
Как отмечено в выходном отображении, визуализация часто берет два прохода через данные: один, чтобы выполнить раскладывание, и один, чтобы выполнить сгруппированное вычисление и произвести визуализацию.
Чтобы разработать модель машинного обучения, полезно зарезервировать часть данных, чтобы обучить и разработать модель и другую часть данных, чтобы протестировать модель. Много путей существуют для вас, чтобы разделить данные в наборы обучения и валидации.
Используйте 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 1 sec - Pass 2 of 2: Completed in 2.9 sec Evaluation completed in 5.4 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 Parallel Pool 'local': - Pass 1 of 2: Completed in 2.9 sec - Pass 2 of 2: Completed in 1.3 sec Evaluation completed in 5.2 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
месяц
, и 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 1: 0% complete Evaluation 0% complete
- Pass 1 of 1: Completed in 1.3 sec Evaluation completed in 1.7 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 Parallel Pool 'local': - Pass 1 of 1: 0% complete Evaluation 0% complete
- Pass 1 of 1: Completed in 1.3 sec Evaluation completed in 1.4 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 Parallel Pool 'local': - Pass 1 of 1: Completed in 1.8 sec Evaluation completed in 2.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
Можно повторить этот процесс, чтобы продолжить настраивать линейную модель. Однако в этом случае необходимо исследовать различные типы регрессии, которая может более подходить для этих данных. Например, если вы не хотите включать задержку прибытия, затем этот тип линейной модели более не не является соответствующим. Смотрите Логистическую регрессию с Длинными массивами для получения дополнительной информации.
Ключевая возможность длинных массивов в MATLAB и Statistics and Machine Learning Toolbox является возможностью соединения на платформы, такие как Hadoop и Spark. Можно даже скомпилировать код и запустить его на Spark с помощью MATLAB Compiler™. Смотрите Расширение длинных массивов с помощью других продуктов (MATLAB) для получения дополнительной информации об использовании этих продуктов:
Database Toolbox™
Parallel Computing Toolbox™
MATLAB® Parallel Server™
MATLAB Compiler™