使用Scikit-Learn进行机器学习的流程一般可以分为数据转换、模型选择和模型评估三个步骤。其中,培训测试分割是模型选择中不可或缺的一步。下面是使用Sklearn进行培训测试分割的详细攻略。
1. 加载数据集
使用Sklearn进行训练测试分割的第一步是加载数据集。Sklearn提供了一些常见的数据集供使用者练手,例如鸢尾花、波士顿房价等,可以通过调用sklearn.datasets
的相关函数进行加载。当然,如果有自己的数据集的话也可以直接读取。
示例1:加载鸢尾花数据集
from sklearn.datasets import load_iris
iris = load_iris()
X, y = iris.data, iris.target
示例2:加载手写数字数据集
from sklearn.datasets import load_digits
digits = load_digits()
X, y = digits.data, digits.target
2. 培训测试分割
在加载数据集之后,接下来需要将数据集分割为培训集和测试集。Sklearn提供了train_test_split
函数进行数据分割。其中,test_size
参数用于设置测试集占总数据集的比例;random_state
参数用于指定伪随机数生成器状态,以便可复现结果。
示例1:分割鸢尾花数据集
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
示例2:分割手写数字数据集
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)
3. 数据预处理
在分割出培训集和测试集之后,需要对数据进行预处理,例如特征缩放、缺失值处理等。处理方法不同,也会影响模型的表现。在这里就不做详细讲解了。
4. 模型训练
在进行数据预处理之后,就可以开始训练模型了。可以使用Scikit-Learn提供的各种机器学习算法进行建模,例如线性回归、决策树、支持向量机等。不同的算法需要调用不同的函数进行建模。
示例1:使用决策树算法进行建模
from sklearn.tree import DecisionTreeClassifier
clf = DecisionTreeClassifier()
clf.fit(X_train, y_train)
示例2:使用支持向量机算法进行建模
from sklearn.svm import SVC
clf = SVC()
clf.fit(X_train, y_train)
5. 模型评估
当模型训练完成之后,需要对模型进行评估。这里需要使用测试集进行评估,评价指标一般包括准确率、精确度、召回率等。
示例1:评估决策树模型
from sklearn.metrics import accuracy_score
y_pred = clf.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy score: {accuracy:.2f}")
示例2:评估支持向量机模型
from sklearn.metrics import classification_report
y_pred = clf.predict(X_test)
report = classification_report(y_test, y_pred)
print(report)