未正規化就直接建模
來看看如果在沒有先做任何標準化的情況下就直接建模,模型的正確率可能會發生什麼事。
這裡我們使用 wine 資料集的一個子集。其中一個欄位 Proline 的變異遠高於其他欄位。這正是適合使用對數正規化等技巧的情境,你會在下一節學到相關內容。
到現在為止,你應該已經很熟悉 scikit-learn 的模型訓練流程,所以我們不再贅述。你已經有可用的 k 最近鄰模型(knn),以及用來訓練與評分所需的 X 與 y 集。
本練習屬於課程
Python 的 Machine Learning 前處理
練習說明
- 將
X與y切分為訓練集與測試集,並確保兩個集合中的類別標籤分布相近。 - 以訓練特徵與標籤來訓練(fit)
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.____(____))