sklearn基础教程:机器学习模型的构建与评估

在数据科学领域,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的功能远不止这些,它还提供了许多其他类型的模型、评估指标和预处理工具,可以帮助我们解决各种复杂的机器学习问题。

相关推荐
悟乙己1 天前
保序回归Isotonic Regression的sklearn实现案例
数据挖掘·回归·sklearn·保序回归
非门由也5 天前
《sklearn机器学习——数据预处理》类别特征编码
人工智能·机器学习·sklearn
非门由也5 天前
《sklearn机器学习——回归指标2》
机器学习·回归·sklearn
非门由也6 天前
《sklearn机器学习——特征提取》
人工智能·机器学习·sklearn
非门由也6 天前
《sklearn机器学习——管道和复合估计器》回归中转换目标
机器学习·回归·sklearn
非门由也6 天前
《sklearn机器学习——回归指标1》
机器学习·回归·sklearn
非门由也7 天前
《sklearn机器学习——管道和复合估计器》联合特征(FeatureUnion)
人工智能·机器学习·sklearn
非门由也7 天前
《sklearn机器学习——管道和复合估算器》异构数据的列转换器
人工智能·机器学习·sklearn
非门由也7 天前
《sklearn机器学习——管道和复合估算器》可视化复合估计器
人工智能·机器学习·sklearn
非门由也8 天前
《sklearn机器学习——聚类性能指标》Fowlkes-Mallows 得分
机器学习·聚类·sklearn