Free Trial

ウィークリーチャレンジ

トップになるためのスキルをお持ちですか? ウィークリーチャレンジを購読しましょう。ベストを尽くして問題を解決し、解決策を共有して、他のユーザーがどのように同じ問題に取り組んだのか確認しましょう。私たちも解答例を共有しています。

チャレンジ #231: Inspire 2023 グランプリ (ラウンド 3)

AYXAcademy
Alteryx
Alteryx

 

先週のチャレンジの回答はこちらで見つけることができます。

 

 

challenge_380_Image.png今週のチャレンジは、2023 年のインスパイア グランプリからインスピレーションを得た 3 部作のチャレンジの集大成となります。 これらの課題は、多くの企業が頻繁に直面する現実世界のシナリオを探ります。 前週の課題は空間的な問題に関連していましたが、前週はデータの準備と統合に焦点を当てていました。 この最後の課題では、予測ケースを詳しく掘り下げます。

 

 

レーサーがラスベガスで感じるのと同じ爽快感を体験したい場合は、説明書を 2 分間ざっと見て、タイマーをスタートして、正解を判断するまでにかかる時間を記録してください。 ワークフローを送信するときは、必ず時間を共有してください。

 

 

 

さあ始めましょう: 321、ゴー!

 

 

ACE で働くドライバーが最近シフト マネージャーに昇進したため、同社はドライバーのポジションを埋めるまで、毎週の食料収集スケジュールを 5 シフト減らす必要があります。

 

 

  1. 失敗する可能性が最も高い 5 つのシフトはどれですか?

 

 

ランダム フォレスト モデルを構築し、過去のジョブ データに基づいてキャンセルの可能性が最も高い 5 つの収集シフトを決定します。 フォレスト モデルの場合は、DistanceMilesHourDayofWeek 列のみを予測子として使用します。

 

 

キャンセルデータについては、以下を計算する必要があります。

 

 

DayofWeek: 正確なフィールド名、その日の完全な名前、および (%A) 日付に基づいてジョブが発生しました。

 

 

 

仕事の状況:

 

  • ジョブがキャンセルされた場合は、値「失敗」。
  • ClosedReason 値に基づいてジョブが成功した場合は、値 Successful Successful の値は 01 または 02 で始まる ClosedReason であり、Unsuccessful の値はその他の値です。
DaisukeTsuchiya
パルサー

結果が合わないです…。

 

スポイラ
英語版も結果が合わないとの話があったかと。

スクリーンショット 2023-08-25 063503.jpg

sanae
ボリード

やってみたのですが合わせられませんでした

スポイラ
分析系ツールは初めてなので設定値等あっているのかも分からずです・・・。
challenge_231_start_file_ja_sanae.png
AkimasaKajitani
17 - Castor
17 - Castor

英語版のときもやったのですが、ちょっと結果に対して疑問が残りますね・・・。

 

gawa
15 - Aurora
15 - Aurora

答えの順番は合いましたが、その結果で本当にいいのかは疑問です

スポイラ
スポイラ
素直にそのままランダムフォレストに突っ込んで、結果の順番は合うのですが、モデルのエラー率が非常に悪いので、なんかダメな気がする
image.png

 

 

 

Yoshiro_Fujimori
オーロラ

回答します。

英語版では合わなかった理由が分かった気がします。

スポイラ
Scoringツールに下のパラメータを指定すると回答データと結果が一致するのですが
Challenge_231_2.png
英語版の解答ワークフローを見ても
  なぜこのパラメータに"23"と入れるのか
がわからなかったのですが、

今回 "オーバーサンプリング" の説明を見直して、問題中に"23%"になる関係の数字を探したところ、
  [Unsuccessfulの件数] / [Successfulの件数] = 23%
だったので、なんとなく(笑)わかった気がしました。

つまり、Successfulのほうが圧倒的に多いデータをスコアリングツールに入力する時に、
  前のツールでモデルを作ったときに、Unsuccessfulのデータが少なかったので膨らませたよ
ということをスコアリングツールに教えてあげる必要があるが、その時には
  膨らませたのはこの程度だよ
ということも教えてやる必要があって、これがこのパラメータの使い方なんだろうなと勝手に解釈しました。

ヘルプページの記述

ターゲットフィールドにはオーバサンプル値があります:
これらのフィールドは、実際のサンプルパーセンテージに一致するように適合した確率を調整するために使用されます。
以下を提供する場合に選択する:

・オーバサンプルされたターゲットフィールドの値: オーバサンプルフィールドの名前。
・オーバーサンプリングの前の元のデータのオーバサンプル値のパーセンテージ: オーバーサンプリング中に繰り返された値のパーセンテージ


Workflow

Challenge_231_1.png
gawa
15 - Aurora
15 - Aurora

@Yoshiro_Fujimori さん スポイラの解説で納得しました。そういうことでしたか・・・

スポイラ
元のInput DataがOversamplingされたかどうか問題文で明示されてないですが、初見ではどう判断すべきなのかは謎ですね。
「宅配の失敗率が23%ってことは常識的にないんだからオーバーサンプルされてるはずでしょ?」ということなのかも、ですが。。。
Yoshiro_Fujimori
オーロラ

@gawa さん

スポイラ
Forest ModelツールのModel Customizationタブ設定のデフォルトが以下のようになっていて

Challenge_231_3.png

最後のパラメータが
 各ツリーを作成するためにサンプリングするデータレコードの割合:
  値を入力するか、上下の矢印を使用して、各ブートストラップ複製を形成するために、
  推定サンプル全体のうちすべてを使用するのか、一部のみを使用するのかを制御します。

なので、これをデフォルト値の100と設定すると
自動的に多いほうのデータと同数までオーバーサンプリングしろ、と指示したことになるのだと理解します。

全部推測で確信はないのですが、普段 R言語で予測分析をしていれば、この辺の土地勘がでるようになるのでしょうかね...
AkimasaKajitani
17 - Castor
17 - Castor

これは、英語版のときも議論を呼んだやつですね・・・。

 

スポイラ
現地のグランプリでも、「オーバーサンプリングオプション」で壇上の方は全員ハマってたのを覚えています。

みなさんのおっしゃるとおり、スコアリングツールの設定を入れると見事結果が一致するのですが、そもそもtargetがオーバーサンプリングしてないですよね?と私は疑問を持っています。

オーバーサンプリングする場合は、オーバーサンプルフィールドツールを使って行うのがAlteryxでの基本的な手法と理解しています(実際はデータを間引いているのでアンダーサンプリングなのですが)。

いずれにしても、targetの数をあわせて不均衡な状態を均衡な状態にしましょう、というのがオーバーサンプリングですが、結局ランダムフォレストに突っ込んだときに、Unsuccessfulが少ないという不均衡なままになっています・・・。

Clipboard01.png

@Yoshiro_Fujimori さん

スポイラ

ランダムフォレストのこちらのオプションですが、

Clipboard03.png

レコードの割合とありますが、トレーニングデータのうちサンプリングして一部を使うのか、フルのトレーニングデータを使うのか、という意味で、100だとフルのトレーニングデータを使う、という意味だと私は解釈しています。
決して、targetの不均衡を是正するものではないとの認識です。

論拠は、ランダムフォレストのTool Masteryです
https://community.alteryx.com/t5/Alteryx-Designer-Desktop-Knowledge-Base/Tool-Mastery-Forest-Model/t...

 

Tokimatsu
クエーサー

ぴったり正解とはいきませんでした、

スポイラ
調べて試して正解にあたらず、皆さんの解答見て23%にしたら答えと一致するというのはわかりました。より精度が高い予測をするにはどうしたらいいか、どういう理屈なのか、がイマイチ理解できてません。

スクリーンショット 2023-08-26 135320.png