このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
この例では、分位点ランダム フォレストを使用して外れ値を検出する方法を示します。分位点ランダム フォレストは、与えられた
に対する
の条件付き分布に関して外れ値を検出できます。しかし、この方法では予測子データの外れ値を検出できません。決定木の 一袋树を使用した予測子の外れ値検出については、树人
モデルのOutlierMeasure
プロパティを参照してください。
"外れ値"は、データセット内の他の観測値のほとんどから十分に離れた位置にある観測値なので、異常であると考えられます。異常値の原因には固有変動性や測定ミスなどがあります。外れ値は推定と推論に大きい影響を与えるので、外れ値を検出して、除外するかロバスト分析を検討するかを決定することが重要です。
统计和机器学习工具箱™ には、外れ値を検出するための関数がいくつか用意されています。
また、MATLAB®にはデータ内の外れ値を見つける関数同等
も用意されています。
外れ値の検出を示すため、この例では以下を行います。
不均一分散の非線形モデルからデータを生成し、いくつかの外れ値をシミュレートします。
回帰木の分位点ランダム フォレストを成長させます。
予測子変数の範囲内で条件付き四分位数 ( 、 および ) と四分位数間範囲 ( ) を推定します。
観測値と"フェンス" (数量 および ) を比較します。 より小さい観測値と より大きい観測値は外れ値です。
次のモデルから 500個の観測値を生成します。
は0と の間で一様分布しており、 です。データをテーブルに保存します。
n=500;rng(“默认”);%为了再现性t=randsample(linspace(0,4*pi,1e6),n,true);epsilon=randn(n,1)。*sqrt((t+0.01));y=10+3*t+t.*sin(2*t)+epsilon;Tbl=table(t,y);
5.つの観測値をランダムな垂直方向に、応答値の 90% だけ移動します。
numOut=5;[~,idx]=datasample(Tbl,numOut);Tbl.y(idx)=Tbl.y(idx)+randsample([-11],numOut,true)”.*(0.9*Tbl.y(idx));
データの散布図を作成し、外れ値を識別します。
图;图(待定t、待定y、,'.');持有在图(待定t(idx),待定y(idx),'*');轴线牢固的; 伊拉贝尔(“是的”);xlabel(“不”);头衔(“数据散点图”);传奇(“数据”,“模拟异常值”,“位置”,“西北”);
树人
を使用して 200本の回帰木の 一袋树を成長させます。
Mdl=TreeBagger(200,待定,“是的”,“方法”,“回归”);
Mdl
は树人
アンサンブルです。
分位点回帰を使用して、T
の範囲内で等間隔に配置されている50個の値の条件付き四分位数を推定します。
tau=[0.25 0.5 0.75];predT=linspace(0,4*pi,50');四分位数=quantilepredit(Mdl,predT,“分位数”(牛),;
四分位
は500行3列の条件付き四分位数の行列です。行はT
の観測値に、列は头
の確率に対応します。
データの散布図上に条件付き平均および中央値応答をプロットします。
平均值=预测(Mdl,predT);绘图(predT,[四分位数(:,2)平均值],“线宽”,2); 传奇(“数据”,“模拟异常值”,“反应中值”,“平均响应”,...“位置”,“西北”);持有关;
条件付き平均と中央値の曲線は近づいていますが、シミュレートされた外れ値が平均曲線に影響を与える可能性があります。
条件付きの 、 および を計算します。
iqr=四分位数(:,3)-四分位数(:,1);k=1.5;f1=四分位数(:,1)-k*iqr;f2=四分位数(:,3)+k*iqr;
k=1.5
は、f1
より小さいかf2
より大きいすべての観測値が外れ値であると考えられることを意味しますが、このしきい値は極端な外れ値を明確には区別しません。3.
をK
にすると極端な外れ値が識別されます。
観測値とフェンスをプロットします。
图;图(待定t、待定y、,'.');持有在图(待定t(idx),待定y(idx),'*'); 地块(predT[f1-f2]);传奇(“数据”,“模拟异常值”,“F_1”,“F_2”,“位置”,“西北”);轴线牢固的头衔(“使用分位数回归进行异常值检测”)持有关
シミュレートされた外れ値はすべて の外部にあり、一部の観測値もこの区間の外部にあります。