選出最高 precision 的模型
你的主管願意出資,讓你今年去看 3 場球賽。在你最喜歡的球隊 41 場主場比賽中,你想確保挑到 3 場他們「一定」會贏的比賽。你建立了一個模型來決定球隊會贏哪些比賽。
為了達成這個目標,你會建立一個隨機搜尋演算法,並將重點放在模型的 precision(以確保你的球隊會贏)。你也想記錄最佳模型與最佳參數,好在明年再次使用(前提是這個模型表現良好)。你已經決定使用隨機森林分類模型 rfc,並且產生了參數分佈 param_dist。
本練習屬於課程
Python 的模型驗證
練習說明
- 使用
make_scorer(<scoring_function>)建立一個 precision 的評分器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.____))