最も適合率(precision)が高いモデルを選ぶ
あなたの上司が、今年スポーツの試合を3試合分、観戦費用を出してくれることになりました。お気に入りのチームはホームで41試合しますが、その中からチームが「必ず」勝つ3試合に行きたいと思っています。そこで、どの試合で勝てるかを予測するモデルを作ることにしました。
そのために、ランダムサーチのアルゴリズムを構築し、モデルの適合率(precision)を重視します(あなたのチームが勝つと確信するためです)。さらに、来年も(もしモデルがうまくいけば)再利用できるよう、ベストなモデルとベストなハイパーパラメータも記録しておきたいと考えています。すでにランダムフォレスト分類モデル rfc を使用することと、パラメータ分布 param_dist を用意することは決めています。
この演習はコースの一部です
Python によるモデル検証
演習の手順
make_scorer(<scoring_function>)を使って、適合率のスコアラーprecisionを作成します。rfcとparam_distを使ってランダムサーチを完成させます。rs.cv_results_を使って平均テストスコアを出力します。- 全体のベストスコアを出力します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
from sklearn.metrics import precision_score, make_scorer
# Create a precision scorer
precision = ____(____)
# Finalize the random search
rs = RandomizedSearchCV(
estimator=____, param_distributions=____,
scoring = precision,
cv=5, n_iter=10, random_state=1111)
rs.fit(X, y)
# print the mean test scores:
print('The accuracy for each run was: {}.'.format(rs.cv_results_['____']))
# print the best model score:
print('The best accuracy for a single model was: {}'.format(rs.____))