忍者ブログ
統計、機械学習、AIを学んでいきたいと思います。 お役に立てば幸いです。

【DS検定対策】コイン投げからABテストまで!「二項分布」の基礎

「表か裏か」「購入か非購入か」。結果が2通りしかない試行を繰り返したとき、成功する回数のばらつきを表すのが二項分布です。

1. 【 問題 】

コインを投げたときに「表が出るか裏が出るか」のように、結果が2通りしか存在しない独立な試行(ベルヌーイ試行)を $n$ 回繰り返したとき、目的とする事象がちょうど $k$ 回起こる確率の分布を何と呼ぶでしょうか?

① 正規分布
② ポアソン分布
③ 二項分布
④ 指数分布


2. 【 解答 】

正解: ③ 二項分布

3. 整理:二項分布が成り立つ「条件」

二項分布を適用するためには、その前提となる試行が以下の条件を満たしている必要があります。これを「ベルヌーイ試行」と呼びます。

【 二項分布の3大特徴 】

結果が2択である
 「成功か失敗か」「購入か見送りか」のように、状態が2つだけ。

各試行が独立である
 1回目の結果が、2回目の確率に影響を与えない。

確率が一定である
 何回繰り返しても、1回あたりに成功する確率 $p$ は変わらない。

--------------------------

ビジネスでの具体例:
・メルマガを1000人に配信したとき、何人が開封してくれるか?
・ある部品を50個製造したとき、不良品が何個含まれるか?

4. 超頻出:正規分布との美しいつながり

二項分布は「1回、2回…」と数える**離散確率分布**です。しかし、試行回数 $n$ が十分に大きくなると、この二項分布の形はきれいな左右対称の山型になり、連続確率分布である**「正規分布」**に近似(変化)するという性質を持っています(中心極限定理)。
この「データ数が多ければ正規分布として扱ってよい」という割り切りが、実務での統計的検定(A/Bテストの有意差判定など)を劇的に楽にしています。


5. DS検定形式:実戦4択クイズ

問:1回の成功確率が $p$ である試行を $n$ 回繰り返す二項分布において、その「平均(期待値)」を表す正しい数式はどれか。

① $p$   ② $np$   ③ $np(1-p)$   ④ $\sqrt{np(1-p)}$

【 正解: ② 】

解説: 二項分布の平均は $np$ で非常にシンプルに計算できます(例:成功確率10%のガチャを100回引いたら、平均10回当たる)。ちなみに ③ は「分散」、④ は「標準偏差」の数式です。


6. まとめ

DS検定において「2通りの結果」「$n$ 回繰り返す」「成功回数の分布」という記述が出たら間違いなく「二項分布」です。データ分析の現場でも、コンバージョン率(CVR)のばらつきを評価する際などに裏で必ず使われている、超基本にして最強の武器として押さえておきましょう!

PR

【DS検定対策】結果は1つか、確率か?「確定的モデル」と「確率的モデル」の決定的な違い

同じ入力から常に同じ答えを導き出すモデルか、それとも「確率的なゆらぎ」を考慮するモデルか。データ分析の前提を変える2つのアプローチを整理しましょう。

1. 【 問題 】

データサイエンスにおける予測モデルのうち、「まったく同じデータ(入力値)を与えた場合、内部にランダムな要素を持たないため、何度計算しても必ず完全に同じ予測結果(出力値)が得られるモデル」を何と呼ぶでしょうか?

① 確率的モデル
② 確定的モデル
③ 潜在変数モデル
④ 動的モデル


2. 【 解答 】

正解: ② 確定的モデル

3. 整理:2つのモデルの決定的な違い

それぞれのモデルは、現実世界の捉え方が根本から異なります。

モデル型特徴具体例
確定的
モデル
・偶然の要素(確率)を排除する。
・入力が決まれば、出力は一意に(1つに)決定する。
・数式に「誤差項(ランダムなノイズ)」を含めない。
・ニュートンの運動方程式
・シンプルな線形計画法
・決定木(推論時)
確率的
モデル
・現実の「予測不可能な不確実性」を認める。
・出力が確率分布として得られる(例:○%の確率で雨)。
・乱数や確率変数、誤差項を数式に組み込む。
・ロジスティック回帰
・ポアソン過程(ATMの行列)
・気象予測シミュレーション

4. なぜ使い分けるのか?

1. 確定的モデルのメリット: 計算がシンプルで、結果の解釈や再現が容易です。「条件Aなら結果はB」と言い切れる業務ルールに向いています。
2. 確率的モデルのメリット: 「株価の変動」や「顧客の来店予測」のように、人間の行動や複雑な自然現象など、どうしてもノイズ(不確実性)を無視できない現実的な問題を扱うのに適しています。


5. DS検定形式:実戦4択クイズ

問:確率的モデルにおいて、モデルが予測した結果がどれくらい「不確実」であるかを評価するために、予測値と一緒に算出されることが多い指標はどれか。

① 信頼区間(または予測区間)   ② 決定係数   ③ ダミー変数   ④ 特徴量重要度

【 正解: ① 】

解説: 確率的モデルでは「ピンポイントな1点」だけでなく、「95%の確率でこの範囲に収まります」という不確実性の幅(信頼区間・予測区間)をセットで出すことができるのが大きな強みです。


6. まとめ

DS検定において「同じ入力なら常に同じ出力、ランダム性なし」なら「確定的モデル」、「不確実性や確率分布を考慮する」なら「確率的モデル」です。これまで学んできた多くのアルゴリズムが、このどちらの思想で作られているかを意識してみると、理解がさらに深まります!

【Python】SymPyで極限(limit)を求める!1/x の 0 への接近

関数の値がどこまで近づくかを計算する「極限(limit)」。PythonのSymPyライブラリを使うと、単純な数値代入ではエラー(ゼロ除算)になってしまう $f(x) = 1/x$ のようなケースも、数学的な極限として正しく処理できます。

1. limit関数のポイント:近づく「方向」

関数 $f(x) = 1/x$ は、0に近づくときに「右側(正の数)」から近づくか、「左側(負の数)」から近づくかで結果が異なります。SymPyでは引数 dir を使ってこの方向を指定します。

  • dir='+':右側極限(0.1, 0.01...と正の側から接近)
  • dir='-':左側極限(-0.1, -0.01...と負の側から接近)

2. Pythonサンプルプログラム

特別な設定をせず、標準的な print 関数を使って結果を出力します。

# -*- coding: utf-8 -*-
from sympy import symbols, limit

def main():
    # 変数xを定義
    x = symbols('x')
    
    # 関数 f(x) = 1/x の定義
    f = 1 / x

    # 右側極限 (x -> 0+)
    limit_right = limit(f, x, 0, dir='+')

    # 左側極限 (x -> 0-)
    limit_left = limit(f, x, 0, dir='-')

    print("--- f(x) = 1/x の極限計算 ---")
    print(f"x -> 0+ (右側極限): {limit_right}")
    print(f"x -> 0- (左側極限): {limit_left}")

if __name__ == "__main__":
    main()

3. 実行結果

実行すると、以下のような結果が得られます。SymPyでは無限大($\infty$)を oo(小文字のoが2つ)で表現します。

--- f(x) = 1/x の極限計算 ---
x -> 0+ (右側極限): oo
x -> 0- (左側極限): -oo

4. まとめ

結果にある oo は正の無限大、-oo は負の無限大を意味しています。右から近づけばプラス無限に、左から近づけばマイナス無限に発散するという数学的な挙動が、たった数行のコードで確認できました。ゼロ除算エラーを気にせず数学的検証ができるSymPyは、エンジニアにとっても強力な武器になりますね。



【DS検定対策】ランダムな「来店」を予測する!ポアソン過程の正体

「1時間に平均5人来る店に、ちょうど3人来る確率は?」そんなランダムな出来事のカウントを扱うのがポアソン過程です。

1. 【 問題 】

ポアソン過程の説明として最も適切なものはどれでしょうか?

① 過去の出来事に影響されて、次の出来事の発生確率が変化するプロセス
② 一定の期間内に発生するイベントの回数を表し、各イベントが独立かつランダムに発生するプロセス
③ データの平均値が時間の経過とともに直線的に増加していくプロセス
④ 決まった周期(例:10分ごと)で必ずイベントが発生するプロセス


2. 【 解答 】

正解: ② 一定の期間内に発生するイベントの回数を表し、各イベントが独立かつランダムに発生するプロセス

3. 整理:ポアソン過程の「3つの特徴」

ポアソン過程と認められるためには、以下の3つの性質(定常性、独立性、希薄性)が重要です。

【 ポアソン過程のイメージ 】

[ 1. 独立性 ]
ある時間帯に客が来たことが、次の客が来る確率に影響しない。

[ 2. 定常性 ]
どの時間帯をとっても、客の来やすさ(平均発生率 λ)が変わらない。

[ 3. 希薄性 ]
ごく短い時間(一瞬)の間に、2回以上のイベントが同時に起きることはない。

--------------------------

活用例:
・ATMへの利用者の到着
・Webサイトへのアクセス数
・放射性物質の崩壊回数

4. セットで覚えたい「指数分布」

1. ポアソン分布: 「単位時間あたりに何回起きるか(回数)」に注目した分布。
2. 指数分布: 「次に起きるまで何分かかるか(時間の間隔)」に注目した分布。
※ ポアソン過程において、イベント発生の間隔は必ず「指数分布」に従います。これはDS検定の超頻出ポイントです!


5. DS検定形式:実戦4択クイズ

問:ポアソン過程において、過去にイベントが発生してからどれだけ時間が経過していても、次にイベントが発生する確率は変わらないという性質を何と呼ぶか。

① 無記憶性   ② 収束性   ③ 局所性   ④ 線形性

【 正解: ① 】

解説: 「さっき来たばかりだから当分来ないだろう」という予測ができないのが「無記憶性」です。これがマルコフ性の一種とされる理由でもあります。


6. まとめ

DS検定において「ランダムな到着」「独立に発生」「平均 λ(ラムダ)」という言葉が出たら「ポアソン過程」です。待ち行列理論など、ビジネスの効率化にも直結する重要な概念として押さえておきましょう!

【Kaggle挑戦記】Spaceship Titanic 攻略 #9:最強の刺客 XGBoost 投入。しかし、LightGBM の牙城は崩せず

1. 今回の挑戦:勾配ブースティングの「二大巨頭」対決

LightGBMで 0.79611 という自己ベストを更新した前回。次なる一手として、Kaggleで不動の人気を誇るもう一つの最強エンジン、XGBoost を投入しました。 同じ「勾配ブースティング」という系譜に属しながら、計算の進め方(木の育て方)が異なるこの2つのアルゴリズム。どちらが今回の宇宙船タイタニックのデータと相性が良いのか、真剣勝負です。

2. 【実装】XGBoost 換装モデル

Macのターミナルで pip install xgboost を実行し、環境を構築。最高スコア時の前処理ロジックはそのままに、学習器だけを差し替えました。

import xgboost as xgb

# 特徴量と前処理は最高スコア時を継承
model = xgb.XGBClassifier(
    n_estimators=100,
    learning_rate=0.05,
    max_depth=6,
    random_state=1,
    use_label_encoder=False,
    eval_metric='logloss'
)

model.fit(X, y)
# 予測結果を sub_xgboost_v1.csv として出力

3. 実行結果:LightGBM の底力

期待を込めて提出した結果、リーダーボードに刻まれた数字は意外なものでした。

 LightGBM (Current Best) : 0.79611
 XGBoost (New Trial)    : 0.79448 (▼ 0.00163)

わずかな差ではありますが、XGBoostは前回の記録に届かず。今回のデータセットにおいては、LightGBMの方が「急所(重要な分岐)」をより的確に捉えていたようです。

4. 考察:なぜ「同じ手法」で差が出たのか?

どちらも「勾配ブースティング」ですが、その違いが結果に現れました。

  • 木の育て方の違い: LightGBMは「誤差が大きい部分をピンポイントで掘り下げる(Leaf-wise)」のに対し、XGBoostは「層ごとにバランスよく育てる(Level-wise)」。今回のデータでは、LightGBMの尖った学習スタイルが有利に働いたと考えられます。
  • アルゴリズムの相性: 特定の数値(支出額など)が重要な意味を持つこのコンペでは、LightGBMの高速で柔軟な分岐がフィットしたのでしょう。

5. 次なる一手:最強の「合体(アンサンブル)」へ

XGBoostが負けたからといって、無駄だったわけではありません。エンジニアには「アンサンブル(平均化)」という必殺技が残されています。 LightGBMの予測とXGBoostの予測。性格の違う2つの知性を組み合わせることで、単体では届かなかった 0.8 の壁を突破できるかもしれません。


失敗はデータの蓄積。次は「二人の知才」を一つに合わせて、大台を狙います。