在数据科学领域,scikit-learn
(通常简称为sklearn
)是一个极其受欢迎的Python库,它提供了各种简单高效的工具来帮助数据科学家和机器学习爱好者实现数据预处理、模型训练和评估等任务。本文将通过几个简单的代码样例,带你领略sklearn
的基础功能。
安装scikit-learn
如果你还没有安装scikit-learn
,可以通过pip进行安装:
bash
pip install scikit-learn
加载数据集
sklearn
自带了一些数据集,我们可以直接加载它们来进行实验。这里我们使用iris
数据集,它是一个多类分类问题的数据集。
python
from sklearn.datasets import load_iris
# 加载iris数据集
iris = load_iris()
# 查看数据集的特征和目标值
print("特征:", iris.feature_names)
print("目标值:", iris.target_names)
# 数据集通常被划分为特征矩阵X和目标数组y
X = iris.data
y = iris.target
数据预处理
在训练模型之前,通常需要对数据进行一些预处理。对于iris
数据集,我们不需要进行复杂的预处理,但了解预处理步骤是很重要的。
数据划分
在监督学习中,我们通常需要将数据集划分为训练集和测试集。这可以通过train_test_split
函数实现。
python
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)
模型训练
使用逻辑回归模型
sklearn
提供了许多现成的机器学习模型,这里我们使用逻辑回归模型(尽管iris
是一个多类分类问题,但逻辑回归可以通过一对多策略来处理)。
python
from sklearn.linear_model import LogisticRegression
# 初始化逻辑回归模型
model = LogisticRegression(max_iter=1000) # 设置最大迭代次数以避免警告
# 训练模型
model.fit(X_train, y_train)
模型评估
预测与评分
训练好模型后,我们可以在测试集上进行预测,并使用评估指标来评估模型的性能。
python
# 在测试集上进行预测
y_pred = model.predict(X_test)
# 使用准确率作为评估指标
from sklearn.metrics import accuracy_score
accuracy = accuracy_score(y_test, y_pred)
print(f"准确率: {accuracy}")
交叉验证
除了简单的训练-测试划分外,我们还可以使用交叉验证来更可靠地评估模型性能。
python
from sklearn.model_selection import cross_val_score
# 使用交叉验证评估模型
scores = cross_val_score(model, X, y, cv=5)
print(f"交叉验证的准确率: {scores.mean()} (± {scores.std()})")
总结
以上就是一个简单的sklearn
基础教程。通过加载数据集、数据预处理、模型训练和评估等步骤,我们可以快速构建和评估一个机器学习模型。当然,sklearn
的功能远不止这些,它还提供了许多其他类型的模型、评估指标和预处理工具,可以帮助我们解决各种复杂的机器学习问题。