使用Sklearn进行培训测试分割是机器学习中常用的一个步骤,主要目的是将数据集划分为训练集和测试集,用于评估模型的性能和预测能力。以下是使用Sklearn进行培训测试分割的完整攻略。
载入数据
载入用于培训测试的数据集,可以使用Sklearn提供的内置数据集,也可以自行加载。
# 载入Sklearn内置数据集
from sklearn.datasets import load_iris
iris = load_iris()
X = iris.data # 特征
y = iris.target # 标签
划分数据集
将数据集划分为培训集和测试集,可以使用Sklearn提供的train_test_split()
方法。
# 划分数据集
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# test_size参数表示测试集占比,random_state参数是为了确保运行结果的一致性
示例说明
以下是两个示例说明,使用Sklearn进行培训测试分割的完整攻略。
示例1:葡萄酒数据集
该示例使用load_wine()
方法载入葡萄酒数据集,并将数据集划分为培训集和测试集,创建一个朴素贝叶斯分类器,并对测试集进行预测,输出预测准确率的分数。
# 载入数据集
from sklearn.datasets import load_wine
wine = load_wine()
X = wine.data
y = wine.target
# 划分数据集
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 创建朴素贝叶斯分类器
from sklearn.naive_bayes import GaussianNB
gnb = GaussianNB()
# 训练模型
gnb.fit(X_train, y_train)
# 预测测试集
y_pred = gnb.predict(X_test)
# 输出分数
from sklearn.metrics import accuracy_score
print("Accuracy:", accuracy_score(y_test, y_pred))
示例2:diabetes数据集
该示例使用load_diabetes()
方法载入糖尿病数据集,并将数据集划分为培训集和测试集,创建一个线性回归模型,并对测试集进行预测,输出模型误差。
# 载入数据集
from sklearn.datasets import load_diabetes
diabetes = load_diabetes()
X = diabetes.data
y = diabetes.target
# 划分数据集
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 创建线性回归模型
from sklearn.linear_model import LinearRegression
lr = LinearRegression()
# 训练模型
lr.fit(X_train, y_train)
# 预测测试集
y_pred = lr.predict(X_test)
# 输出模型误差
from sklearn.metrics import mean_squared_error
print("MSE:", mean_squared_error(y_test, y_pred))