主要内容

このペ,ジの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

線形回帰モデルの学習

统计和机器学习工具箱™には,線形回帰モデルに学習させるための機能がいくつか用意されています。

  • 低~中次元のデ,タセットで精度を向上させるには,fitlmを使用します。モデルをあてはめた後,オブジェクト関数を使用してあてはめたモデルを改善,評価,および可視化できます。回帰を正則化するには,套索またはを使用します。

  • 高次元デ,タセットで計算時間を短縮するには,fitrlinearを使用します。オプションがあります。

この例では,fitlmを使用した線形回帰解析の典型的なワ,クフロ,を示します。このワークフローには,データセットの準備,線形回帰モデルのあてはめ,あてはめたモデルの評価と改善,新しい予測子データの応答値の予測が含まれます。この例では,高配列で線形回帰モデルのあてはめと評価を行う方法も説明します。

デ,タの準備

標本デ,タセットNYCHousing2015を読み込みます。

负载NYCHousing2015

データセットには2015年のニューヨーク市における不動産の売上に関する情報を持つ10の変数が含まれます。この例では,これらの変数の一部を使用して売価を解析します。

標本デ,タセットNYCHousing2015を読み込む代わりに,纽约市开放数据Webサトからデタをダウンロドして,次の方法でンポトすることができます。

文件夹=“Annualized_Rolling_Sales_Update”;ds =电子表格数据存储“TextType”“字符串”“NumHeaderLines”4);ds。文件= ds.Files(包含(ds.Files,“2015”));ds。SelectedVariableNames = [“区”“社区”“BUILDINGCLASSCATEGORY”“RESIDENTIALUNITS”...“COMMERCIALUNITS”“LANDSQUAREFEET”“GROSSSQUAREFEET”“YEARBUILT”“SALEPRICE”“SALEDATE”];NYCHousing2015 = readall(ds);

デ,タセットを前処理して,対象の予測子変数を選択します。まず,可読性を高めるため,変数名を小文字に変更します。

NYCHousing2015.Properties。VariableNames = lower(NYCHousing2015.Properties.VariableNames);

次に,datetime配列として指定された変数saledateを,毫米(月)とDD(日)の2の数値列に変換し,変数saledateを削除します。すべて2015 年の標本のため、年は無視します。

[~, NYCHousing2015.MM NYCHousing2015。DD] = ymd(NYCHousing2015.saledate);NYCHousing2015。Saledate = [];

変数の数値は区の名前を示します。この変数を名前を使用したカテゴリカル変数に変更します。

NYCHousing2015。区= categorical(NYCHousing2015.borough,1:5,...“曼哈顿”“布鲁克斯”“布鲁克林”“皇后”“史泰登岛”]);

変数社区には254のカテゴリがあります。簡単にするため,この変数は削除します。

NYCHousing2015。社区= [];

変数buildingclasscategoryをカテゴリカル変数に変換し,関数wordcloudを使用して変数を確認します。

NYCHousing2015。buildingclasscategory = category (NYCHousing2015.buildingclasscategory);wordcloud (NYCHousing2015.buildingclasscategory);

1 .戸建て住宅,2 .戸建て住宅,3 .戸建て住宅のみに興味があると仮定します。これらの住宅の標本▪▪ンデックスを見▪▪け,それ以外の標本を削除します。次に,変数buildingclasscategoryのデ,タ型をに変更します。

idx = ismember(string(NYCHousing2015.buildingclasscategory),...《01户人家住宅》“02两家住宅”《03三家民居》]);NYCHousing2015 = NYCHousing2015(idx,:);NYCHousing2015。(NYCHousing2015.buildingclasscategory = renamecats)...《01户人家住宅》“02两家住宅”《03三家民居》),...“1”“2”“3”]);NYCHousing2015。buildclasscategory = double(nychousing2015 . buildclasscategory);

すると,変数buildingclasscategoryは,1の住宅に住む家族の数を示します。

関数总结を使用して,応答変数salepriceを確認します。

s = summary(NYCHousing2015);s.saleprice
ans =带字段的结构:大小:[37881 1]类型:“双”描述:“单位:”连续性:[]最小值:0中位数:352000最大:37000000 NumMissing: 0

1000ドル以下のsalepriceは,現金対価なしの所有権移転を示すものと仮定します。このようなsalepriceをも標本を削除します。

idx0 = NYCHousing2015。售价<= 1000;NYCHousing2015(idx0,:) = [];

変数salepriceのヒストグラムを作成します。

直方图(NYCHousing2015.saleprice)

salepriceの最大値は 3. 7 × 1 0 7 ですが,値の大半は 0 5 × 1 0 7 より小さくなります。salepriceの外れ値を特定するには,関数isoutlierを使用します。

idx = isoutlier(nychousing2015 .sale);

特定された外れ値を削除し,もう一度ヒストグラムを作成します。

NYCHousing2015(idx,:) = [];直方图(NYCHousing2015.saleprice)

cvpartitionを使用してデ,タセットを学習セットと検定セットに分割します。

rng (“默认”%用于再现性c = cvpartition(height(NYCHousing2015),“坚持”, 0.3);trainData = NYCHousing2015(training(c),:);testData = NYCHousing2015(test(c),:);

モデルの学習

関数fitlmを使用して線形回帰モデルをあてはめます。

mdl = fitlm(训练数据,“PredictorVars”,[“区”“grosssquarefeet”...“landsquarefeet”“buildingclasscategory”“yearbuilt”“毫米”“弟弟”),...“ResponseVar”“saleprice”
mdl =线性回归模型:销售价格~ 1 +行政区+建筑类别+土地平方英尺+建筑平方英尺+年建+ MM + DD估计SE tStat pValue ___________ __________ ________ ___________(拦截)2.0345e+05 1.0308e+05 1.9736 0.048441 borough_Bronx -3.0165e+05 56676 -5.3224 1.0378e-07 borough_Brooklyn -41160 56490 -0.72862 0.46624 borough_Queens - 911136 56537 -1.612 0.10699 borough_Staten Island -2.2199e+05 56726 -3.9134 9.1385e-05 buildingclasscategory 3165.7 3510.3 0.90185 0.36715 landsquarefeet 13.149 0.84534 15.555 3.714e-54 grosssquarefeet 112.34 2.9494 38.09 8.0393e-304 yearbuilt 100.07 45.464 2.201观测数:15848,误差自由度:15837均方根误差:2.32e+05 r平方:0.235,调整r平方:0.235 f统计量vs常数模型:487,p值= 0

mdlは,LinearModelオブジェクトです。モデルの表示には,モデル式,推定された係数,および要約統計が含まれています

は,曼哈顿布朗克斯布鲁克林皇后区史泰登岛の5のカテゴリをも。あてはめたモデルmdlは4。関数fitlmは1番目のカテゴリ曼哈顿を基準レベルとして使用するため,モデルには基準レベルに対する指標変数は含まれません。fitlmは,基準レベルの指標変数の係数を0に固定します。4の指標変数の係数値は曼哈顿を基準にします。関数がカテゴリカル予測子を扱う方法の詳細については、fitlmアルゴリズムを参照してください。

モデル表示の値を解釈する方法にいては,線形回帰の結果の解釈を参照してください。

あてはめた線形回帰モデルを調べるには,LinearModelオブジェクトのプロパティを使用できます。オブジェクトプロパティには,係数推定値,要約統計,近似法および入力データに関する情報が含まれています。たとえば,Rsquaredプロパティの決定係数と自由度調整済み決定係数の値を確認できます。プロパティの値には、ワークスペース ブラウザー経由またはドット表記を使用してアクセスできます。

mdl。Rsquared
ans =带字段的结构:普通:0.2352调整:0.2348

モデル表示にはこれらの値も表示されます。決定係数の値は,応答変数のばらきの約24%をこのモデルで説明できることを示しています。その他のプロパティの詳細にいては,LinearModelオブジェクトのプロパティを参照してください。

モデルの評価

モデル表示には,各係数のp値が表示されます。p値は,モデルに有意な変数がどれであるかを示します。カテゴリカル予測子にいて,モデルでは4の指標変数が使用され,4のp値が表示されます。カテゴリカル変数を指標変数のグル,プとして調べるには,オブジェクト関数方差分析を使用します。この関数は,モデルの分散分析(方差分析)統計量を返します。

方差分析(mdl)
ans =8×5表SumSq DF MeanSq F pValue __________ _____ __________ _______ ___________ borough 1.123e+14 4 2.8076e+13 520.96 0 buildingclasscategory 4.3833e+10 1 4.3833e+10 0.81334 0.36715 landsquarefeet 1.3039e+13 1 1.3039e+13 1 7.8189e+13 141.95 3.714148 8.0393e-304 yearbuilt 2.6108e+11 1 2.6108e+11 4.8444 0.02775 MM 2.7021e+12 1 2.7021e+12 50.138 1.4936e-12 DD 1.6867e+11 1 1.6867e+11 3.1297 0.076896 Error 8.535e+14 15837 5.3893e+10

指標変数borough_Brooklynborough_Queensp値は大きいですが,4の指標変数のグルp値はほぼ0です。これは,変数が統計的に有意であることを示しています。

buildingclasscategoryDDp値は0.05より大きい値です。これは,5%の有意水準ではこれらの変数が有意ではないことを示しています。そのため,これらの変数は削除することを検討できます。

また,coeffCIcoeefTestdwtを使用して,あてはめたモデルをさらに詳しく調べることもできます。

  • coefCIは,係数推定値の信頼区間を返します。

  • coefTestは,モデル係数に線形仮説検定を実行します。

  • dwtは,ダ,ビン·ワトソン検定を実行します(このテストは時系列デ,タに使用されます。そのため,dwtは本例の住宅デ,タには適切ではありません)。

モデルと要約統計の可視化

LinearModelオブジェクトには,複数のプロット関数が用意されています。

  • モデルを作成するときに,予測子変数の追加または削除による効果を理解するには,plotAddedを使用します。

  • モデルを検証するときに,問題があるデ,タを探し,各観測値の効果を理解するには,plotDiagnosticsを使用します。また,モデルの残差を分析するには、plotResidualsを使用します。

  • モデルをあてはめた後で,特定の予測子の効果を理解するには,plotAdjustedResponseplotPartialDependenceおよびplotEffectsを使用します。2 .の予測子の間の交互作用効果を調べるには,plotInteractionを使用します。また,予測曲面を通るスライスをプロットするには、plotSliceを使用します。

また,mdlに複数の予測子変数が含まれている場合,情节は全体から切片項を除外したモデルに対する追加変数プロットを作成します。

情节(mdl)

このプロットはplotAdded (mdl)と等価です。近似直線は,変数のグル,プとしてのモデルが応答変数をどのように説明できるかを表します。近似直線の勾配は0に近くなく,信頼限界に水平線が含まれていません。これは,このモデルのあてはまりが定数項のみから構成される縮退したモデルよりも良いことを示しています。モデル表示が示す検定統計値(f统计量与常数模型)も,このモデルのあてはまりが縮退したモデルよりも良いことを示しています。

有意でない変数buildingclasscategoryおよびDDにいて,追加変数プロットを作成します。これらの変数のp値は,0.05より大きい値です。まず,mdl。CoefficientNamesでこれらの係数の▪▪▪ンデックスを見▪▪▪けます。

mdl。CoefficientNames
ans =1×11单元{'(截距)'}{'borough_Bronx'} {'borough_Brooklyn'} {'borough_Queens'} {'borough_Staten Island'} {'buildingclasscategory'} {'landsquarefeet'} {'grosssquarefeet'} {'yearbuilt'} {'MM'} {'DD'}

buildingclasscategoryは6番目の係数,DDは11番目の係数です。この2の変数にいて追加プロットを作成します。

plotAdded (mdl[6、11])

近似直線の勾配は0に近くなっています。これは2つの変数からの情報では,他の予測子によって説明されない応答値の部分を説明できないことを示しています。追加変数プロットの詳細にいては,追加変数プロットを参照してください。

モデルの残差のヒストグラムを作成します。plotResidualsは,確率密度関数のスケ,ルを使用して,生の残差のヒストグラムをプロットします。

plotResiduals (mdl)

このヒストグラムから,いくかの残差が - 1 × 1 0 6 より小さいことが分かります。これらの外れ値を特定します。

找到(mdl.Residuals。Raw < -1*10^6)
ans =4×11327 4136 4997 13894

または,isoutlierを使用して外れ値を求めることができます。“拉布”オプションを指定して,グラブス検定を適用します。このオプションは正規分布のデ,タセットに適しています。

找到(isoutlier (mdl.Residuals.Raw,“拉布”))
ans =3×11327 4136 4997

関数isoutlierは残差13894を外れ値として識別しません。この残差は-1 × 10 6 に近い値です。残差の値を表示します。

mdl.Residuals.Raw (13894)
Ans = -1.0720e+06

線形回帰モデルをあてはめるとき,名前と値のペアの引数排除を使用して外れ値を除外できます。この例では,あてはめたモデルが調整され、改善されたモデルでも外れ値が説明できるかチェックされます。

モデルの調整

removeTermsを使用して,変数DDおよびbuildingclasscategoryを削除します。

newMdl1 = removeTerms(mdl,“DD +建筑分类”
newMdl1 =线性回归模型:售价~ 1 +行政区+土地平方英尺+建筑平方英尺+年建+ MM估计SE tStat pValue ___________ __________ ________ __________(拦截)2.0529e+05 1.0274e+05 1.9981 0.045726 borough_Bronx -3.0038e+05 56675 -5.3 1.1739e-07 borough_Brooklyn -39704 56488 -0.70286 0.48215 borough_Queens -90231 56537 -1.596 0.11052 borough_Staten Island -2.2149e+05 56720 -3.9049 9.4652e-05 landsquarefeet 13.04 0.83912 15.54 4.6278e-54 grosssquarefeet 113.85 2.5078 45.396 0 yearbuilt 96.649 45.395 2.1291 0.033265 MM 3875.6 543.49 7.131 1.0396e-12观测数量:15848,误差自由度:15839均方根误差:2.32e+05 r平方:0.235,调整r平方:0.235 f统计量vs常数模型:608,p值= 0

この2の変数は応答変数を説明するのに有意でないため,newMdl1の決定係数と自由度調整済み決定係数の値はmdlの値に近くなります。

一步を使用して変数を追加または削除してモデルを改善します。モデルの既定の上限は,切片項,各予測子の線形項,異なる予測子のペアのすべての積(二乗項なし)を含むモデルで,既定の下限は切片項を含むモデルです。実行する最大ステップ数を30と指定します。どのステップでもモデルが改良されなくなると,この関数は停止します。

newMdl1 = step(newMdl1,“NSteps”, 30)
1.新增自治区:grosssquarefeet, FStat = 58.7413, pValue = 2.63078e-49添加行政区:年建,FStat = 31.5067, pValue = 3.50645e-26新增行政区:landsquarefeet, FStat = 29.5473, pValue = 1.60885e-24添加大平方英尺:年建造,FStat = 69.312, pValue = 9.08599e-17添加landsquarefeet:grosssquarefeet, FStat = 33.2929, pValue = 8.07535e-09添加土地平方英尺:年建造,FStat = 45.2756, pValue = 1.7704e-118.添加yearbuilt:MM, FStat = 18.0785, pValue = 2.13196e-059.增加住宅单元,FStat = 16.0491, pValue = 6.20026e-05增加住宅单元:土地平方英尺,FStat = 160.2601, pValue = 1.49309e-36 Adding residentialunits:grosssquarefeet, FStat = 27.351, pValue = 1.71835e-07 11. Adding commercialunits, FStat = 14.1503, pValue = 0.000169381 12. Adding commercialunits:grosssquarefeet, FStat = 25.6942, pValue = 4.04549e-07 13. Adding borough:commercialunits, FStat = 6.1327, pValue = 6.3015e-05 14. Adding buildingclasscategory, FStat = 11.1412, pValue = 0.00084624 15. Adding buildingclasscategory:landsquarefeet, FStat = 66.9205, pValue = 3.04003e-16 16. Adding buildingclasscategory:yearbuilt, FStat = 15.0776, pValue = 0.0001036 17. Adding buildingclasscategory:grosssquarefeet, FStat = 18.3304, pValue = 1.86812e-05 18. Adding residentialunits:yearbuilt, FStat = 15.0732, pValue = 0.00010384 19. Adding buildingclasscategory:residentialunits, FStat = 13.5644, pValue = 0.00023129 20. Adding borough:buildingclasscategory, FStat = 2.8214, pValue = 0.023567 21. Adding landsquarefeet:MM, FStat = 4.9185, pValue = 0.026585 22. Removing grosssquarefeet:yearbuilt, FStat = 1.6052, pValue = 0.20519
newMdl2 =线性回归模型:saleprice ~ 1 +区* buildingclasscategory +区* commercialunits +区* landsquarefeet +区* grosssquarefeet +区* yearbuilt + buildingclasscategory * residentialunits + buildingclasscategory * landsquarefeet + buildingclasscategory * grosssquarefeet + buildingclasscategory * yearbuilt + residentialunits * landsquarefeet + residentialunits * grosssquarefeet + residentialunits * yearbuilt + commercialunits * grosssquarefeet + landsquarefeet * grosssquarefeet + landsquarefeet * yearbuilt +土地平方英尺*MM +年建*MM估计SE tStat pValue ___________ __________ ________ __________(拦截)2.2152e+07 1.318e+07 1.6808 0.092825 borough_Bronx -2.3263e+07 1.3176e+07 - 1.4356 0.077486 borough_Brooklyn -1.8935e+07 1.3174e+07 -1.4373 0.15064 borough_Queens -2.1757e+07 1.3173e+07 -1.6516 0.098636 borough_Staten Island -2.3471e+07 1.3177e+07 -1.7813 0.074891 buildingclasscategory -7.2403e+05 1.9374e+05 -3.737 0.00018685住宅单元6.1912e+05 1.2399e+05 4.9932 6.003e-07商业单元4.2016e+05 1.2815e+053..2786 0.0010456 landsquarefeet -390.54 96.349 -4.0535 5.0709e-05 grosssquarefeet 189.33 83.723 2.2614 0.023748 yearbuilt -11556 6958.7 -1.6606 0.096805 MM 95189 31787 2.9946 0.0027521 borough_Bronx:buildingclasscategory -1.1972e+05 1.0481e+05 -1.1422 0.25338 borough_Brooklyn:buildingclasscategory -1.4154e+05 1.0448e+05 -1.3548 0.17551 borough_Queens:buildingclasscategory -1.1597e+05 1.0454e+05 -1.1093 0.2673 borough_Staten Island:buildingclasscategory -1.1851e+05 1.0513e+05 -1.1273 0.25964 borough_Bronx:commercialunits -2.7488e+05 1.3267e+05 -2.0719 0.038293 borough_Brooklyn:commercialunits -3.8228e+05 1.2835e+05 -2.9784 0.0029015 borough_Queens:commercialunits -3.9818e+05 1.2884e+05 -3.0906 0.0020008 borough_Staten Island:commercialunits -4.9381e+05 1.353e+05 -3.6496 0.00026348 borough_Bronx:landsquarefeet 121.81 77.442 1.573 0.11574 borough_Brooklyn:landsquarefeet 113.09 77.413 1.4609 0.14405 borough_Queens:landsquarefeet 99.894 77.374 1.2911 0.1967 borough_Staten Island:landsquarefeet 84.508 77.376 1.0922 0.27477 borough_Bronx:grosssquarefeet -55.417 83.412 -0.66437 0.50646 borough_Brooklyn:grosssquarefeet 6.4033 83.031 0.077119 0.93853 borough_Queens:grosssquarefeet 38.28 83.144 0.46041 0.64523 borough_Staten Island:grosssquarefeet 12.539 83.459 0.15024 0.88058 borough_Bronx:yearbuilt 12121 6956.8 1.7422 0.081485 borough_Brooklyn:yearbuilt 9986.5 6955.8 1.4357 0.1511 borough_Queens:yearbuilt 11382 6955.3 1.6364 0.10177 borough_Staten Island:yearbuilt 12237 6957.1 1.7589 0.078613 buildingclasscategory:residentialunits 21392 5465 3.9143 9.1041e-05 buildingclasscategory:landsquarefeet -13.099 2.0014 -6.545 6.1342e-11 buildingclasscategory:grosssquarefeet -30.087 5.2786 -5.6998 1.2209e-08 buildingclasscategory:yearbuilt 462.31 85.912 5.3813 7.5021e-08 residentialunits:landsquarefeet -1.0826 0.13896 -7.7911 7.0554e-15 residentialunits:grosssquarefeet -5.1192 1.7923 -2.8563 0.0042917 residentialunits:yearbuilt -326.69 63.556 -5.1403 2.7762e-07 commercialunits:grosssquarefeet -29.839 5.0231 -5.9403 2.9045e-09 landsquarefeet:grosssquarefeet -0.0055199 0.0010364 -5.3262 1.0165e-07 landsquarefeet:yearbuilt 0.1766 0.030902 5.7151 1.1164e-08 landsquarefeet:MM 0.6595 0.30229 2.1817 0.029145 yearbuilt:MM -47.944 16.392 -2.9248 0.0034512 Number of observations: 15848, Error degrees of freedom: 15804 Root Mean Squared Error: 2.25e+05 R-squared: 0.285, Adjusted R-Squared: 0.283 F-statistic vs. constant model: 146, p-value = 0

newMdl2の決定係数と自由度調整済み決定係数の値はnewMdl1の値より大きくなります。

plotResidualsを使用して,モデルの残差のヒストグラムを作成します。

plotResiduals (newMdl2)

newMdl2の残差のヒストグラムは対称で,外れ値はありません。

addTermsを使用して特定の項を追加することもできます。あるいは,stepwiselmを使用して,開始モデルの項を指定し,ステップワイズ回帰を使用してモデルの改善を続けることもできます。

新しいデ,タへの応答の予測

あてはめたモデルnewMdl2とオブジェクト関数预测を使用して,検定デ,タセットtestDataへの応答を予測します。

ypred = predict(newMdl2,testData);

検定デ,タセットの残差のヒストグラムをプロットします。

errs = ypred - testdata .sale;直方图(错)标题(残差直方图-试验数据

残差の値にはいくかの外れ値があります。

错(isoutlier(犯错误,“拉布”))
ans =6×1107× 0.1788 -0.4688 -1.2981 0.1019 0.1122 0.1331

高大配列を使用した解析

関数fitlmは,メモリ超過のデ,タに対しtall配列をサポ,トしますが,いく,かの制限があります。高デ,タの場合,fitlmLinearModelオブジェクトと同じプロパティのほとんどが含まれているCompactLinearModelオブジェクトを返します。主な違いは,コンパクトなオブジェクトがメモリ要件の影響を受けやすいということです。コンパクトなオブジェクトは,デタ,またはデタと同じサズの配列を含むプロパティを含みません。そのため,LinearModelオブジェクトの一部の関数はコンパクトなモデルに対して機能しません。サポトされるオブジェクト関数のリストにいては,オブジェクト関数を参照してください。また,高配列に関するfitlmの使用上の注意および制限にいては,高配列を参照してください。

高配列に対する計算を実行する場合,MATLAB®は並列プール(并行计算工具箱™がある場合は既定)またはローカルのMATLABセッションを使用します。并行计算工具箱がある場合でもローカルのMATLABセッションを使用して例を実行するには,関数mapreduceを使用してグロ,バルな実行環境を変更できます。

デ,タストアdsのすべてのデ,タがメモリにおさまらないと仮定します。readallの代わりにを使用してdsを読み取ることができます。

NYCHousing2015 =高(ds);

この例では,関数を使用して,aapl . aapl .ンメモリの表NYCHousing2015を高桌子に変換します。

NYCHousing2015_t = tall(NYCHousing2015);
使用“本地”配置文件启动并行池(parpool)…连接到并行池(工人数:6)。

デ,タセットを学習セットと検定セットに分割します。cvpartitionで高配列を使用する場合,関数は1番目の入力引数として指定された変数に基づいてデータセットを分割します。分類問題では,通常,応答変数(グループ化変数)を使用してランダムな層化区分を作成し,すべてのグループにわたり学習セットと検定セットで均等に分布させます。回帰問題では,この階層化は適切ではないため,名前と値のペアの引数“分层”を使用してオプションをオフにできます。

この例では,予測子変数NYCHousing2015_t.boroughを1番目の入力引数として指定し,区の分布を学習セットと検定セットで大体同じにします。再現性を得るため,tallrngを使用して乱数発生器のシ,ドを設定します。高配列の場合、ワーカーの個数と実行環境によって結果が異なる可能性があります。詳細については、コ,ドの実行場所の制御を参照してください。

tallrng (“默认”%用于再现性c = cvpartition(NYCHousing2015_t.borough,“坚持”, 0.3);trainData_t = NYCHousing2015_t(training(c),:);testData_t = NYCHousing2015_t(test(c),:);

fitlmは高配列にコンパクトなモデルオブジェクトを返すため,関数一步を使用してモデルを改善することはできません。その代わりに,オブジェクト関数を使用してモデル パラメーターを調べ、その後で必要に応じてモデルを調整できます。また、データのサブセットをワークスペースに収集し、stepwiselmを使用してメモリ内で反復的にモデルを開発し,その後で高配列を使用するように拡張することもできます。詳細にいては,高配列の使用によるビッグデ,タの統計および機械学習の“モデルの開発”を参照してください。

この例では,newMdl2のモデル式を使用して線形回帰モデルをあてはめます。

mdl_t = fitlm(trainData_t,newMdl2.Formula)
使用并行池“本地”评估tall表达式:-通过1 / 1:在7.4秒内完成评估,在9.2秒内完成
mdl_t =紧凑线性回归模型:saleprice ~ 1 +区* buildingclasscategory +区* commercialunits +区* landsquarefeet +区* grosssquarefeet +区* yearbuilt + buildingclasscategory * residentialunits + buildingclasscategory * landsquarefeet + buildingclasscategory * grosssquarefeet + buildingclasscategory * yearbuilt + residentialunits * landsquarefeet + residentialunits * grosssquarefeet + residentialunits * yearbuilt + commercialunits * grosssquarefeet + landsquarefeet * grosssquarefeet + landsquarefeet * yearbuilt +土地平方英尺*MM +年建*MM估计SE tStat pValue ___________ __________ ________ __________(拦截)-1.3301e+06 5.1815e+05 -2.567 0.010268 borough_布鲁克林4.2583e+06 4.1808e+05 10.185 2.7392e-24 borough_曼哈顿2.2758e+07 1.3448e+07 1.6923 0.090614 borough_皇后区1.1395e+06 4.1868e+05 2.7216 0.0065035 borough_Staten岛-1.1196e+05 4.6677e+05 -4.9817 6.3705e-07住宅单元6.0588e+05 1.2669e+05 4.7822 1.7497e-06商业单元80197 533111.5043 0.13252土地平方英尺-279.94 53.913 -5.1925 2.1009e-07大平方英尺170.02 13.996 12.147 8.3837e-34年建成的683.49 268.34 2.5471 0.010872 MM 86488 32725 2.6428 0.0082293 borough_布鲁克林:建筑类类别-9852.4 12048 -0.81773 0.41352 borough_曼哈顿:建筑类类别1.3318e+05 1.3592e+05 0.97988 0.32716 borough_皇后区:建筑类类别15621 11671 1.3385 0.18076 borough_Staten岛:建筑类类别15132 14893 1.016 0.30964 borough_布鲁克林:商业单元-22060 43012 -0.51289 0.60804 borough_Manhattan:commercialunits 4.8349e+05 2.1757e+05 2.2222 0.026282 borough_Queens:commercialunits -42023 44736 -0.93936 0.34756 borough_Staten Island:commercialunits -1.3382e+05 56976 -2.3487 0.018853 borough_Brooklyn:landsquarefeet 9.8263 5.2513 1.8712 0.061335 borough_Manhattan:landsquarefeet -78.962 78.445 -1.0066 0.31415 borough_Queens:landsquarefeet -3.0855 3.9087 -0.78939 0.4299 borough_Staten Island:landsquarefeet -17.325 3.5831 -4.8351 1.3433e-06borough_Brooklyn:grosssquarefeet 37.689 10.573 3.5646 0.00036548 borough_Manhattan:grosssquarefeet 16.107 82.074 0.19625 0.84442 borough_Queens:grosssquarefeet 70.381 10.69 6.5837 4.7343e-11 borough_Staten Island:grosssquarefeet 36.396 12.08 3.0129 0.0025914 borough_Brooklyn:yearbuilt -2110.1 216.32 -9.7546 2.0388e-22 borough_Manhattan:yearbuilt -11884 7023.9 -1.692 0.090667 borough_Queens:yearbuilt -566.44 216.89 -2.6116 0.0090204 borough_Staten Island:yearbuilt - 53.714 239.89 0.22391 0.82283建筑类别类别:住宅单元24088 5574 4.3215 1.5595e-05建筑类别类别:土地平方英尺5.7964 5.8438 0.9919 0.32126建筑类别类别:粗平方英尺-47.079 5.2884 -8.9023 6.0556e-19建筑类别类别:建造年430.97 83.593 5.1555 2.56e-07住宅单元:土地平方英尺-21.756 5.6485 -3.8517 0.00011778住宅单元:粗平方英尺4.584 1.4586 3.1427 0.0016769住宅单元:建造年-310.09 65.429 -4.7393 2.1632e-06商业单元:粗平方英尺-27.83911.463 -2.4286 0.015166土地平方英尺:粗平方英尺-0.0068613 0.00094607 -7.2524 4.2832e-13土地平方英尺:年建成0.17489 0.028195 6.2028 5.6861e-10土地平方英尺:MM 0.70295 0.2848 2.4682 0.013589年建成:MM -43.405 16.871 -2.5728 0.010098观测数:15849,误差自由度:15805均方根误差:2.26e+05 r平方:0.277,调整r平方:0.275 f统计量vs常量模型:141,p值= 0

mdl_tCompactLinearModelオブジェクトです。高table から取得された分割された学習データセットはインメモリ データセットから取得されたものと同じではないため、mdl_tnewMdl2と厳密には同じではありません。

mdl_tはコンパクトなオブジェクトであるため,関数plotResidualsを使用してモデルの残差のヒストグラムを作成することはできません。その代わりに,柱状图を使用して,コンパクトなオブジェクトから残差を直接計算して,ヒストグラムを作成できます。

mdl_t_Residual = trainData_t。saleprice-预测(mdl_t,trainData_t); histogram(mdl_t_Residual)
使用并行池“本地”评估tall表达式:-通过2中的1:在2.5秒内完成-通过2中的2:在0.63秒内完成评估在3.8秒内完成
标题(残差直方图-列数据

预测を使用して,検定デ,タセットtestData_tへの応答を予測します。

ypred_t = predict(mdl_t,testData_t);

検定デ,タセットの残差のヒストグラムをプロットします。

errs_t = ypred_t - testdata_t .sale;直方图(errs_t)
使用并行池“本地”评估高表达式:-通过2中的1:0%完成评估0%完成
-通过1 / 2:6%完成评估完成3%

-通过2 / 1:在0.79秒内完成-通过2 / 2:在0.55秒内完成评估在2秒内完成
标题(残差直方图-试验数据

オブジェクト関数CompactLinearModelを使用すると,あてはめたモデルをさらに詳しく評価できます。例にいては,高配列の使用によるビッグデ,タの統計および機械学習の“モデルの評価と調整”を参照してください。

参考

|||

関連するトピック