likes
comments
collection
share

Python 机器学习之 Scikit-learn 入门实践

作者站长头像
站长
· 阅读数 11

机器学习在当今的科技领域中扮演着越来越重要的角色。Python 作为一门易学且功能强大的编程语言,已成为许多数据科学家和机器学习从业者的首选。本文将介绍如何使用 Python 中的 Scikit-learn 库进行机器学习实践。

一、Scikit-learn 简介

Scikit-learn 是一个基于 Python 语言的开源机器学习库。它包含了大量的机器学习算法,如分类、回归、聚类、降维等,同时还提供了模型选择、数据预处理、模型评估等功能。Scikit-learn 的优点在于简单易用、丰富的功能和良好的文档支持。

二、安装 Scikit-learn

在使用 Scikit-learn 之前,首先需要安装库。使用如下命令进行安装:

pip install scikit-learn

三、加载数据集

Scikit-learn 内置了一些经典的数据集,如鸢尾花数据集、波士顿房价数据集等。我们可以通过以下代码导入鸢尾花数据集:

from sklearn import datasets
iris = datasets.load_iris()

四、数据预处理

数据预处理是机器学习中非常重要的一步。常见的数据预处理操作包括:缺失值处理、数据标准化、特征选择等。以下是一个简单的数据标准化示例:

from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
iris_scaled = scaler.fit_transform(iris.data)

五、划分训练集和测试集

在进行机器学习任务时,通常需要将数据集划分为训练集和测试集。以下是一个简单的划分示例:

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(iris_scaled, iris.target, test_size=0.2, random_state=42)

六、选择模型和训练

Scikit-learn 提供了丰富的机器学习模型,如决策树、支持向量机、K-近邻等。以下是一个使用决策树进行分类的示例:

from sklearn.tree import DecisionTreeClassifier
clf = DecisionTreeClassifier()
clf.fit(X_train, y_train)

七、模型评估

模型训练完成后,我们需要对模型的性能进行评估。Scikit-learn 提供了多种评估指标,如准确率、精确率、召回率等。以下是一个计算准确率的示例:

from sklearn.metrics import accuracy_score
y_pred = clf.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f'Accuracy: {accuracy}')

八、模型优化

为了提高模型的性能,我们可以尝试调整模型的超参数。Scikit-learn 提供了 GridSearchCV 工具来帮助我们进行参数调优。以下是一个使用 GridSearchCV 对决策树进行调优的示例:

from sklearn.model_selection import GridSearchCV
param_grid = {'max_depth': [1, 2, 3, 4, 5], 'min_samples_split': [2, 3, 4]}
grid_search = GridSearchCV(DecisionTreeClassifier(), param_grid, cv=5)
grid_search.fit(X_train, y_train)

我们可以通过以下代码查看最佳参数组合:

print(f'Best parameters: {grid_search.best_params_}')

使用最佳参数训练模型:

best_clf = grid_search.best_estimator_
best_clf.fit(X_train, y_train)

重新评估模型性能:

y_pred_best = best_clf.predict(X_test)
accuracy_best = accuracy_score(y_test, y_pred_best)
print(f'Accuracy after optimization: {accuracy_best}')

通过以上步骤,我们完成了使用 Scikit-learn 库进行机器学习的基本实践。Scikit-learn 还提供了许多其他功能和算法,您可以查阅官方文档以获取更多信息。掌握 Scikit-learn 的使用,将有助于您更高效地进行机器学习任务。