主要内容

逻辑回归有着高大的数组

这个例子展示了如何使用逻辑回归和其他技术来执行数据分析高数组。高大的数组表示数据太大而无法适应计算机内存。

执行环境定义

当你执行计算高数组,MATLAB®使用一个平行池(默认如果你有并行计算工具箱™)或当地的MATLAB会话。要运行示例使用当地的MATLAB会话并行计算工具箱后,改变全球执行环境使用mapreduce函数。

mapreduce (0)

获取数据到MATLAB

创建一个引用的数据存储与数据的文件夹位置。这些数据可以包含在一个文件中,文件的集合,或整个文件夹。治疗“NA”价值观缺失的数据,数据存储取代他们值。选择变量的子集,并包括航空公司的名称(UniqueCarrier)作为分类变量。创建一个高表上的数据存储。

ds =数据存储(“airlinesmall.csv”);ds。TreatAsMissing =“NA”;ds。SelectedVariableNames = {“DayOfWeek”,“UniqueCarrier”,“ArrDelay”,“DepDelay”,“距离”};ds。SelectedFormats {2} =“% C”;tt =高(ds);tt。DayOfWeek =分类(tt.DayOfWeek 1:7,{“太阳”,“我的”,“面前”,“结婚”,“星期四”,“星期五”,“坐”},“顺序”,真正的)
tt = Mx5高表DayOfWeek UniqueCarrier ArrDelay DepDelay距离_____ _________________说________ ?吗?吗?吗?吗?吗?吗?吗?吗?吗? ? ? ? ? ? : : : : : : : : : :

晚的航班

确定的航班迟到20分钟或更多通过定义一个逻辑变量,适用于晚期飞行。这个变量添加到高表的数据,指出尚不评估。预览这个变量包括前几行。

tt。LateFlight = tt.ArrDelay > = 20
tt = Mx6高表DayOfWeek UniqueCarrier ArrDelay DepDelay距离_________________ ________说__________ LateFlight ____ ?吗?吗?吗?吗?吗?吗?吗?吗?吗? ? ? ? ? ? ? ? ? : : : : : : : : : : : :

计算的均值LateFlight确定总体比例的航班。使用收集触发评估高数组并把结果到内存中。

m =意味着(tt.LateFlight)
m =高两倍?
m =收集(m)
评估高表达式使用当地的MATLAB会话:通过1 2:在0.49秒完成,通过2 2:在0.56秒完成评估在1.4秒完成
m = 0.1580

晚航班的航空公司

检查是否倾向于某些类型的航班迟到了。首先,检查某些航空公司更有可能晚航班。

tt。LateFlight =双(tt.LateFlight);late_by_carrier =收集(grpstats (tt,“UniqueCarrier”,“的意思是”,“DataVar”,“LateFlight”))
评估高表达式使用当地的MATLAB会话:通过1 1:在1.3秒完成评估在1.6秒完成
late_by_carrier =29日×4表GroupLabel UniqueCarrier GroupCount mean_LateFlight __________ _________________ __________售予{' 9 e '} 9 e 521 0.13436 {“AA”} AA 14930 0.051948 0.16236 {AQ的}AQ 154 {”“} 2910 0.23821 0.16014 {B6的}B6 806{‘公司’}公司8138 0.16319 {“DH”} DH 696 0.17672 {“DL”} DL 16578 0.15261 {' EA} EA 920 0.15217{“电动汽车”}电动车1699 0.21248 {‘F9} F9 335 0.18209 {FL的}FL 1263 0.19952{‘哈’}公顷273 0.047619{“惠普”}惠普3660 0.13907{毫升(1)的}69毫升(1)0.043478 {MQ的}MQ⋮3962 0.18778

航空公司B6电动汽车有更高比例的航班。航空公司AQ,毫升(1),有相对较少的航班,但低比例的晚了。

晚航班一天的星期

接下来,检查是否在每周的不同时间往往有以后的航班。

late_by_day =收集(grpstats (tt,“DayOfWeek”,“的意思是”,“DataVar”,“LateFlight”))
评估高表达式使用当地的MATLAB会话:通过1 1:在0.65秒完成评估在0.76秒完成
late_by_day =7×4表GroupLabel DayOfWeek GroupCount mean_LateFlight __________ _____ __________售予{“星期五”}星期五15839年0.12899{‘我的’}Mon 18077 0.15603 0.14234{“坐”}坐16958{‘太阳’}太阳18019年0.15117{“清华”}清华18227年0.18418{“面前”}外胎18163 0.15526 0.18399{‘结婚’}18240年结婚

周三和周四晚航班的比例最高,而周五的最低比例。

航班晚点的距离

检查航班长还是短会迟到。首先,看看飞行距离的密度对于迟到的航班,并对比航班准时。

ksdensity (tt.Distance (tt.LateFlight = = 1))
评估高表达式使用当地的MATLAB会话:通过1 2:在0.46秒完成,通过2 2:在0.46秒完成评估在1.1秒完成
持有ksdensity (tt.Distance (tt.LateFlight = = 0))
评估高表达式使用当地的MATLAB会话:通过1 2:在0.36秒完成,通过2 2:在0.47秒完成评估在1秒完成
持有传奇(“晚了”,“准时”)

图包含一个坐标轴对象。坐标轴对象包含2线类型的对象。这些对象代表迟到,准时。

飞行距离并不能使一个戏剧性的差异是否早或晚航班。然而,准时航班密度似乎略高约400英里的距离。晚航班密度也高的距离约为2000英里。计算一些简单的描述性统计和后期准时飞行。

late_by_distance =收集(grpstats (tt,“LateFlight”,{“的意思是”“性病”},“DataVar”,“距离”))
评估高表达式使用当地的MATLAB会话:通过1 1:在0.59秒完成评估在0.76秒完成
late_by_distance =2×5表GroupLabel LateFlight GroupCount mean_Distance std_Distance __________ __________ __________ _________________ _______ {' 0 '} 0 1.04 e + 05年693.14 - 544.75 {' 1 '}1 19519 750.24 - 574.12

晚航班平均约60英里长,虽然这个值只占一小部分的距离值的标准偏差。

逻辑回归模型

建立一个模型的概率飞行,同时使用(如连续变量距离(比如)和分类变量DayOfWeek)预测的概率。这个模型可以帮助确定以前的结果观察单独为每个预测也适用,当你考虑在一起。

glm = fitglm (tt,“LateFlight ~距离+ DayOfWeek ',“分布”,“二”)
迭代[1]:0%完成迭代[1]:100%完成迭代[2]:0%完成迭代[2]:100%完成迭代[3]:0%完成迭代[3]:100%完成迭代[4]:0%完成迭代[4]:100%完成迭代[5]:0%完成迭代[5]:100%完成
glm =紧凑的广义线性回归模型:分对数(LateFlight) ~ 1 + DayOfWeek +距离=二项分布估计系数:估计SE tStat pValue __________ __________和__________(拦截)-1.855 0.023052 -80.469 0 DayOfWeek_Mon DayOfWeek_Wed DayOfWeek_Tues 0.01483 -0.072603 0.029798 -2.4365 0.026909 0.029239 0.92029 0.35742 0.2359 0.028276 8.343 7.2452 e-17 DayOfWeek_Thu 0.23569 0.028282 8.3338 7.8286 e-17 DayOfWeek_Fri -0.19285 0.031583 -6.106 1.0213 e-09 DayOfWeek_Sat距离0.033542 0.029702 1.1293 0.25879 0.00018373 - 1.3507 13.602 - 3.8741 e-05 e-42 123319年观察,123311错误自由度色散:1 x ^ 2-statistic与常数模型:504年,假定值= 8.74 e - 105

模型证实了先前观察到的结论适用在这里:

  • 周三和周四系数是积极的,这表明更高概率的晚航班在这些天。周五的系数为负,表明较低的概率。

  • 距离系数为正,表明长航班迟到的概率更高。

所有这些系数非常小的假定值。这是常见的有许多观测的数据集,因为一个可以可靠地估计小影响,大量数据。事实上,模型的不确定性比估计的不确定性的参数模型。

预测的模型

预测的概率晚航班每周的每一天,和距离范围从0到3000英里。创建一个表来保存预测价值的原始表索引中的第一个100行tt

x =收集(tt (1:10 0, {“距离”“DayOfWeek”}));
评估高表达式使用当地的MATLAB会话:通过1 1:在0.14秒完成评估在0.24秒完成
x。距离= linspace (3000 0) ';x.DayOfWeek: =“太阳”;情节(x.Distance预测(glm x));天= {“太阳”“我的”“面前”“结婚”“星期四”“星期五”“坐”};持有j = 2:长度(天)x.DayOfWeek(:) =天{j};情节(x.Distance预测(glm x));结束传奇(天)

图包含一个坐标轴对象。坐标轴对象包含7线类型的对象。这些对象代表太阳,Mon,外胎,结婚,星期四,星期五,坐。

根据这个模型,周三或周四飞行500英里迟到的概率相同,大约18%,周五约3000英里。

因为这些概率都远低于50%,该模型不太可能预测,任何给定的飞行将使用这些信息迟到了。调查模型更多的关注航班的模型预测的概率20%或更多的迟到,和比较实际的结果。

C =收集(交叉表(tt.LateFlight,预测(glm tt) > .20))
评估高表达式使用当地的MATLAB会话:通过1 1:在0.49秒完成评估在0.55秒完成
C =2×299613 4391 18394 1125

在航班预计有20%或更高的概率迟到,迟到了大约20%1125 / (1125 + 4391)。在其余,迟到了不到16%18394 / (18394 + 99613)