
6.2
ML
による乳幼児の生存確率の予測
103
この構造を
Pipeline
にするのはごく簡単です。
pipeline = Pipeline(stages=[
encoder,
featuresCreator,
logistic
])
これだけです! ついに
Pipeline
ができたのでモデルで推定が行えるようになります。まったく
もってその通りですね!
6.2.5
モデルのフィッティング
モデルをフィットさせる前に、データセットをトレーニング用とテスト用のデータセットに分割しな
ければなりません。DataFrame APIには便利な
.randomSplit(...)
メソッドが用意されています。
births_train, births_test = births \
.randomSplit([0.7, 0.3], seed=666)
1つめのパラメータは、それぞれ
births_train
と
births_test
となるデータセットの比率のリ
ストです。
seed
パラメータは、乱数生成器のシードです。
リストの要素の合計が
1
になるかぎりデータセットはいくつにでも分割でき、指定した数の部
分集合が得られます。たとえば次のようにすれば、誕生記録のデータセットは
3
つに分割され
ます。
train, test, val = births.\
randomSplit([0.7, 0.2, 0.1], seed=666)
このコードは誕生記録のデータセットから
70%
を抜き出して
train
オブジェクトに、
20%
を
test ...