继续基于 Scikit-Learn 库的相关模块,向大家介绍 Python 中一些模型验证及调优的工具。
为了方便后续的演示,首先导入示例数据集 iris,并对数据特征与标记(即模型的自变量与因变量)进行提取划分:
- from sklearn.datasets import load_iris
- iris = load_iris()
- X = iris.data
- y = iris.target
构建一个 KNN 分类模型 model,用于验证准备:
- from sklearn.neighbors import KNeighborsClassifier
- model = KNeighborsClassifier(n_neighbors=1)
模型拟合与预测:
- model.fit(X, y)
- y_model = model.predict(X)
导入 metrics 模块的 accuracy_score 函数,该函数能够帮助我们计算模型的准确率:
- from sklearn.metrics import accuracy_score
- accuracy_score(y, y_model)
交叉验证是机器学习中常用的模型验证方法,这需要我们将数据集划分为训练集与验证集,cross_validation 模块中的 train_test_split 函数能够帮助我们实现较轻松的划分:
- from sklearn.cross_validation import train_test_split
- # 对数据集进行划分,一半作为训练集,另一半作为验证集
- X1, X2, y1, y2 = train_test_split(X, y, random_state=0,
- train_size=0.5)
- # 运用训练集拟合模型
- model.fit(X1, y1)
- # 运用验证集评价模型准确度
- y2_model = model.predict(X2)
- accuracy_score(y2, y2_model)
后文还有介绍 k-fold 交叉验证的工具 cross_val_score 、模型参数调优、绘制模型拟合的曲线等,内容较多,先搬运到这,有需要的同学可以先直接到 数析学院 查看原文