如何在Python中使用Sklearn进行培训测试分割

  • Post category:Python

使用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))