始める無料で始める

最も適合率(precision)が高いモデルを選ぶ

あなたの上司が、今年スポーツの試合を3試合分、観戦費用を出してくれることになりました。お気に入りのチームはホームで41試合しますが、その中からチームが「必ず」勝つ3試合に行きたいと思っています。そこで、どの試合で勝てるかを予測するモデルを作ることにしました。

そのために、ランダムサーチのアルゴリズムを構築し、モデルの適合率(precision)を重視します(あなたのチームが勝つと確信するためです)。さらに、来年も(もしモデルがうまくいけば)再利用できるよう、ベストなモデルとベストなハイパーパラメータも記録しておきたいと考えています。すでにランダムフォレスト分類モデル rfc を使用することと、パラメータ分布 param_dist を用意することは決めています。

この演習はコースの一部です

Python によるモデル検証

コースを見る

演習の手順

  • make_scorer(<scoring_function>) を使って、適合率のスコアラー precision を作成します。
  • rfcparam_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.____))
コードを編集して実行