モデルは約束をもつオブジェクト
scikit-learnのすべてはエスティメータで、どれも同じ約束に従います。設定(ハイパーパラメータ、たとえば罰則の強さ)を渡して作ります。fit(X,y) を呼ぶとデータから学びます。学んだ内容は、平均や係数のように名前がアンダースコアで終わる属性に保存されます。その後で使います。前処理器は transform(X) を、モデルは predict(X) を提供します。fit_transform は fit に続けて transform を呼ぶものです。表 X は1行が1サンプル、1列が1特徴量で、y は目的変数です。約束がどこでも同じなので、残りのコードを変えずにモデルを入れ替えられます。
z=σ^x−μ^,y^=a^+b^x(1) 黄金律は、fit が見てよいのは学習データだけ、ということです。前処理器が学ぶ μ^ や σ^ などの数は、そのまま transform で検証データやテストデータに適用されます。スケーラーを全日程で当てはめると、テスト日がスケーリングを形作ってしまい、未来が静かに漏れます。random_state のような設定は実行を再現可能にし、clone は未学習の新しいコピーを作ります。交差検証は各分割でこれを行います。このスキルの市場データのラボでは、行は銘柄×月、列はモメンタムやボラティリティなどの特徴量です。
手計算の小さな当てはめ2つ学習値
2,4,6,8 でスケーラーを当てはめます。平均
5、標準偏差
5=2.236 を学びます。新しい値
7 は
(7−5)/2.236=0.894 になります。次に
(x,y)=(1,2),(2,4),(3,7) で線形回帰を当てはめます。傾き
2.5、切片
−0.667 を学ぶので、
x=4 の予測は
−0.667+2.5×4=9.333 です。
- 設定を渡し、学んだ数を得る:ハイパーパラメータはコンストラクタへ、学んだ数は末尾がアンダースコア。
- fit は学習データだけで:transform と predict は学んだ数を任意のデータに再利用する。
- どこでも同じ約束:モデルを入れ替えても残りのコードはそのまま。
ラボ:採点される内容
- スケーラーが学ぶもの:平均10点
- スケーラーが学ぶもの:ばらつき10点
- テスト値を変換する10点
- 回帰が学ぶもの:傾き15点
- 予測10点
- どの属性が学習されたものか10点
- 安全な作業手順10点
- 用語を結び付ける10点
- なぜスケーラーを学習データだけで当てはめるのか15点