【sklearn | 1】sklearn 基础教程

scikit-learn(简称 sklearn)是一个基于 Python

的机器学习库,广泛应用于数据挖掘和数据分析。它提供了各种分类、回归和聚类算法,以及工具用于模型选择和数据预处理。本文将详细介绍

sklearn 的基本使用方法和功能。

安装 scikit-learn

在使用 sklearn 之前,首先需要安装它。可以使用以下命令安装:

bash 复制代码
pip install scikit-learn

确保你的 Python 环境中已经安装了 numpy 和 scipy,因为 sklearn 依赖于这两个库。

数据集

sklearn 自带了一些常用的数据集,例如波士顿房价数据集、鸢尾花数据集、手写数字数据集等。可以通过 sklearn.datasets 模块来加载这些数据集。

python 复制代码
from sklearn.datasets import load_iris

# 加载鸢尾花数据集
iris = load_iris()
X, y = iris.data, iris.target

数据预处理

在进行机器学习建模之前,数据预处理是必不可少的。常见的预处理步骤包括标准化、归一化、缺失值填补等。sklearn 提供了 sklearn.preprocessing 模块来进行这些操作。

标准化

标准化可以使数据符合标准正态分布,即均值为0,标准差为1。

python 复制代码
from sklearn.preprocessing import StandardScaler

scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

归一化

归一化是将数据缩放到特定范围,通常是 [0, 1]。

python 复制代码
from sklearn.preprocessing import MinMaxScaler

scaler = MinMaxScaler()
X_scaled = scaler.fit_transform(X)

划分数据集

在进行模型训练之前,需要将数据集划分为训练集和测试集。sklearn 提供了 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 提供了各种机器学习算法的实现,包括分类、回归、聚类等。以分类算法中的逻辑回归为例:

python 复制代码
from sklearn.linear_model import LogisticRegression

model = LogisticRegression()
model.fit(X_train, y_train)

模型评估

在训练好模型后,需要对模型进行评估。常见的评估指标有准确率、精确率、召回率和 F1 分数等。

python 复制代码
from sklearn.metrics import accuracy_score, classification_report

# 预测
y_pred = model.predict(X_test)

# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy}")

# 打印分类报告
print(classification_report(y_test, y_pred))

超参数调优

在实际应用中,模型的超参数对性能有很大的影响。sklearn 提供了网格搜索 (GridSearchCV) 和随机搜索 (RandomizedSearchCV) 来帮助找到最佳的超参数组合。

python 复制代码
from sklearn.model_selection import GridSearchCV

# 定义参数网格
param_grid = {
    'C': [0.1, 1, 10, 100],
    'solver': ['lbfgs', 'liblinear']
}

# 网格搜索
grid_search = GridSearchCV(LogisticRegression(), param_grid, cv=5)
grid_search.fit(X_train, y_train)

# 最佳参数
print(f"Best parameters: {grid_search.best_params_}")

模型持久化

训练好的模型可以保存到磁盘,以便后续使用。sklearn 提供了 joblib 模块来实现模型的保存和加载。

python 复制代码
import joblib

# 保存模型
joblib.dump(model, 'logistic_regression_model.pkl')

# 加载模型
loaded_model = joblib.load('logistic_regression_model.pkl')

示例项目:鸢尾花分类

结合以上内容,我们来完成一个完整的鸢尾花分类项目。

python 复制代码
# 导入必要的库
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, classification_report
import joblib

# 加载数据集
iris = load_iris()
X, y = iris.data, iris.target

# 数据预处理
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

# 划分数据集
X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2, random_state=42)

# 构建模型
model = LogisticRegression()
model.fit(X_train, y_train)

# 预测
y_pred = model.predict(X_test)

# 评估
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy}")
print(classification_report(y_test, y_pred))

# 模型持久化
joblib.dump(model, 'logistic_regression_model.pkl')

通过上述步骤,我们完成了一个简单的机器学习项目,涵盖了数据预处理、模型构建、模型评估和模型持久化等步骤。希望通过这篇教程,你能对 sklearn 有一个基本的了解,并能应用到实际项目中。

相关推荐
一个闪现必杀技2 分钟前
Python入门--函数
开发语言·python·青少年编程·pycharm
AI完全体3 分钟前
【AI知识点】偏差-方差权衡(Bias-Variance Tradeoff)
人工智能·深度学习·神经网络·机器学习·过拟合·模型复杂度·偏差-方差
GZ_TOGOGO15 分钟前
【2024最新】华为HCIE认证考试流程
大数据·人工智能·网络协议·网络安全·华为
sp_fyf_202415 分钟前
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-02
人工智能·神经网络·算法·计算机视觉·语言模型·自然语言处理·数据挖掘
新缸中之脑17 分钟前
Ollama 运行视觉语言模型LLaVA
人工智能·语言模型·自然语言处理
小鹿( ﹡ˆoˆ﹡ )23 分钟前
探索IP协议的神秘面纱:Python中的网络通信
python·tcp/ip·php
卷心菜小温38 分钟前
【BUG】P-tuningv2微调ChatGLM2-6B时所踩的坑
python·深度学习·语言模型·nlp·bug
胡耀超1 小时前
知识图谱入门——3:工具分类与对比(知识建模工具:Protégé、 知识抽取工具:DeepDive、知识存储工具:Neo4j)
人工智能·知识图谱
陈苏同学1 小时前
4. 将pycharm本地项目同步到(Linux)服务器上——深度学习·科研实践·从0到1
linux·服务器·ide·人工智能·python·深度学习·pycharm
唐家小妹1 小时前
介绍一款开源的 Modern GUI PySide6 / PyQt6的使用
python·pyqt