[仕事終わりの趣味] ビッグデータ分析実技 (作業型1,2,3)
非専門家や入門者の方が、ビッグデータ分析実技試験を短期間で取得できるようガイドします! 理論は軽めに、実践は確実に。複雑な背景知識がなくても、過去問を中心に試験に必ず出るポイントだけを絞って集中的に学習します。
受講生 5,685名
難易度 入門
受講期間 12か月


第12回 最終点検
一生懸命頑張ったけれど、どこか不安なあなたのための最終チェック
[共通]
help()、dir()、__all__ですべてを解決できるわけではありません。
いざ試験会場で初めて使うと思った以上に戸惑うので、事前に試験環境でテストしてみてください。座席のキーボード・マウス・コンピュータに異常があれば、テスト時間直後、試験開始前に座席の変更を依頼してください。途中で変えようとするとメンタルが揺らぎます。問題は序盤にすぐ解決してから進むのが良いです。
何度も提出可能ですが、一度提出すると「提出(제출)」と表示されます。「提出」と表示されていると、再提出しようとしてうっかり忘れてしまう可能性があるので注意してください。最後に提出されたもので採点されます。
[作業型1]
上部データタブ → 「基本表示」クリック後、
Ctrl + Fで探してでも確認してください。「目だけでも解いてみる」という気持ちで取り組めば大丈夫です。正解さえ合っていれば大丈夫です。過程のコードがどうであれ関係ありません。きれいなコードよりも正確な答えが優先です。
groupbyは確実に習得しておいてください。ピボットまではいかなくとも、グループ別の集計は目視で解くのは難しいです。これはコードで処理する必要があります。結果は四捨五入・小数点以下の桁数・整数変換の指示を必ず確認してください。
round()を忘れたり、桁数を間違えたりして、正解を目前で逃すケースが多いです。ソート問題は昇順・降順、同点時の処理をよく確認してください。
sort_values()のascendingオプション、reset_indexの有無まで確認しておくと良いでしょう。条件フィルタリングの際、
&、|と括弧を正確に。df[(条件1) & (条件2)]で括弧を忘れるとエラーになります。
条件をcond変数に入れる場合は括弧は不要です。日付データは
pd.to_datetime()で変換した後、.dt.year、.dt.month、.dt.dayofweekなどを使えるようにしておいてください。曜日・月別の集計問題がよく出題されます。よく使う関数は手に馴染ませておくこと:
value_counts()、nlargest()/nsmallest()、quantile()(IQR外れ値問題)、fillna()、drop_duplicates()、astype()。外れ値・欠損値の問題は、問題で提示された基準(IQR、標準偏差、特定の条件)にそのまま従ってください。自分が知っている方法で勝手に適用するのは禁止です。
[作業型2]
モデルを1つだけ使うのであれば、lightgbmで全学習して終わらせればいいです。
2〜3個以上使うのであれば、検証した後に比較してください。評価指標がよく分からなければ、自分が確実に知っている指標でだけでも比較すれば大丈夫です。
rf、lgb、xgbを中心に見てください。これら以外のモデルがより良い性能を出すケースは非常に稀です。
比較が終わったら、全データで再学習することもおすすめします。データによって異なるため性能向上を保証することはできませんが、11回のように不均衡が深刻な場合は、私なら全データで学習させます。
不均衡データだからといって、パラメータやハイパーパラメータをいじれば必ず性能が上がるわけではありません。むしろ、デフォルト値の時に最高の性能が出ることもあります。不安であれば、デフォルト設定 + 全データでの学習をおすすめします。
スケーリングに力を入れすぎないでください。rf、lgb、xgbはすべてツリー系モデルなので、スケーリングによる性能の変化はわずかです。
train/testのカラムを全く同じに揃えてください。エンコーディング・前処理はtrainとtestに同様に適用する必要があります。ワンホットエンコーディング後にカラム数が変わってしまうミスがよくあります。まだ過去問で出題されたことはありませんが、例題にはあるので、trainとtestを結合して処理する方法もできるようにしておく必要があります。
予測対象(target)を明確にしてください。確率を求めているのか(
predict_proba)、クラスを求めているのか(predict)、問題を正確に読んでください。roc_aucなら確率、f1・accuracyなら通常はクラスです。提出形式を問題の指示通りに正確に合わせましょう。ファイル名、カラム名、インデックスを含めるかどうか(
index=False)まで。行数が間違っていると0点になります。時間が足りない場合は、性能向上にこだわらず、まずはlightgbmで最後まで回して提出ファイルを完成させてください。完成が優先で、最適化はその次です。
[作業型3]
作業型3は「分析しなさい」といった記述型・自由分析の問題ではありません。問題で要求されている分析だけを正確に実施すればよいです。任意で分析を追加したり拡張したりする必要はありません。問われている値だけを求めて出力してください。等分散かどうかなど、問題で問われてもいない分析の実行はNGです。
C()の使用は分析の種類によって異なります。ここで混乱する方が本当に多いです。
分散分析(ANOVA):独立変数(カテゴリ型)のすべてに
C()を使用します。例:
ols('y ~ C(집단)', data=df)、二元配置ならols('y ~ C(A) + C(B) + C(A):C(B)', data=df)集団間の差異を見る分析であるため、独立変数をカテゴリ型として処理する必要があるからです。
回帰 / ロジスティック回帰:
C()をむやみに使わないでください。連続型(数値)変数はそのまま入れます。
「この変数は数字のように見えるが、カテゴリ型として処理せよ」という明示的な言及が問題にある場合のみ
C()を使います。勝手な判断は禁止!
summary()の読み方を必ず身につけておいてください。回帰・ロジスティック回帰において、係数(coef)、p-value、R-squared、オッズ比などを表からすぐに探して答えられる必要があります。諦めずにこれだけでも確認してから臨んでください。
仮説検定は有意水準(通常0.05)とp-valueの比較が核心です。p < 0.05なら帰無仮説を棄却。どれが帰無/対立仮説なのか問題で確認してください。
検定の種類を正確に選んでください。(単)一標本/対応のある(対)標本/独立標本t検定、カイ二乗(独立性・適合性)、相関分析、ANOVAなどを見て判断します。
小数点以下の桁数や四捨五入の指示は、作業型3でも同様に注意してください。
print()での出力も忘れないようにしましょう。
作業タイプごとに難しい問題が1〜2問出題されることがあります。その問題だけに執着して時間を使い果たさないでください。難しい問題は一旦置いておき、解ける他の問題から確実に検証して点数を稼ぎましょう。満点が目標ではありません。70点、合格が目標です!ここまで準備されたことだけでも、十分に合格圏内です。ファイト!!試験頑張ってきてください! 💪
皆さんの合格を応援しています。- 退勤後の寄り道 -




