正規化なしでモデリングする
まず、標準化などの前処理を行わずにデータをモデリングすると、モデルの精度にどのような影響が出るかを見てみましょう。
ここでは、wine データセットの一部を使います。ある列である Proline は、他の列と比べて分散が非常に大きくなっています。これは、次のセクションで学ぶ対数正規化のような手法が有効に働く典型例です。
scikit-learn のモデル学習プロセスは、ここまでで十分馴染みがあるはずなので、詳細な説明は省きます。すでに k-nearest neighbors モデル(knn)が用意されており、学習と評価に使う X と y もあります。
この演習はコースの一部です
Pythonで学ぶMachine Learningの前処理
演習の手順
Xとyを学習用とテスト用に分割し、どちらのセットでもクラスラベルの分布が同程度になるようにします。- 学習用の特徴量とラベルを使って
knnモデルを学習します。 .score()メソッドを使ってknnモデルのテストセット正解率を表示します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Split the dataset into training and test sets
X_train, X_test, y_train, y_test = ____(____, ____, stratify=____, random_state=42)
knn = KNeighborsClassifier()
# Fit the knn model to the training data
knn.____(____, ____)
# Score the model on the test data
print(knn.____(____))