セクション 1. 章 7
single
チャレンジ:最適なK値の選択
メニューを表示するにはスワイプしてください
前の章で示したように、モデルの予測はk(近傍点の数)の値によって異なる場合があります。k-NNモデルを構築する際には、最も高いパフォーマンスを示すk値を選択することが重要です。
一般的な方法として、交差検証を用いてモデルのパフォーマンスを評価します。ループを実行し、さまざまなk値に対して交差検証スコアを計算し、最も高いスコアを持つものを選択します。これは最も広く使われている手法です。
この作業を行うために、sklearnは便利なツールであるGridSearchCVクラスを提供しています。
param_gridパラメータには、キーがパラメータ名、値が試すオプションのリストとなる辞書を指定します。たとえば、1に対して99からn_neighborsまでの値をテストする場合、次のように記述します。
param_grid = {'n_neighbors': range(1, 100)}
.fit(X, y)オブジェクトでGridSearchCVメソッドを呼び出すと、パラメータグリッド全体を探索して最適なパラメータを見つけ、その最適なパラメータで全データセットを使ってモデルを再学習します。
最良のスコアは.best_score_属性で取得でき、最適化されたモデルで予測を行うには.predict()メソッドを使用します。同様に、最良のモデル自体は.best_estimator_属性で取得できます。
タスク
スワイプしてコーディングを開始
Star Warsの評価データセットがDataFrame変数にdfとして格納されています。
param_gridを、n_neighborsパラメータに値[3, 9, 18, 27]を持つ辞書として初期化してください。GridSearchCVを用いて4分割交差検証(4-fold cross-validation)を行うparam_gridオブジェクトを作成し、学習させ、その結果をgrid_search変数に格納してください。grid_searchから最適なモデルを取得し、best_model変数に格納してください。- 最適なモデルのスコアを取得し、
best_score変数に格納してください。
解答
すべて明確でしたか?
フィードバックありがとうございます!
セクション 1. 章 7
single
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください