sklearn极简入门

sklearn简介

Scikit-learn(简称 sklearn)是一个强大的 Python 库,用于机器学习数据挖掘 。它内置了许多常用的机器学习算法和工具,适合初学者和专家使用。本文将带你入门 sklearn,并提供一些基本的例子。

sklearn开源在github,可以很方便的获取源码.

当前,pytorch大行其道,那么sklearn是否还有什么优势呢?还是有的:

  1. 适用于传统机器学习:scikit-learn提供了丰富的传统机器学习算法和工具,特别擅长处理结构化数据和应用于监督学习、无监督学习和特征工程等领域。

  2. 易于上手:scikit-learn的API设计简单直观,适合机器学习的初学者和快速原型开发。

  3. 成熟稳定:scikit-learn是一个成熟的机器学习库,拥有丰富的文档和社区支持,对于传统机器学习问题有很好的解决方案。

安装 sklearn

在开始使用 sklearn 之前,需要先安装它。可以使用 pip 进行安装:

bash 复制代码
pip install scikit-learn

也可以用conda进行安装

bash 复制代码
conda install -c conda-forge scikit-learn

如果使用conda还可以创建env与安装sklearn在同一个命令中完成

bash 复制代码
conda create -n sklearn-env -c conda-forge scikit-learn
conda activate sklearn-env

要注意sklearn安装有一些依赖要求:

  • Python (>= 3.9)
  • NumPy (>= 1.19.5)
  • SciPy (>= 1.6.0)
  • joblib (>= 1.2.0)
  • threadpoolctl (>= 3.1.0)

导入库

在使用 sklearn 之前,首先需要导入相关的库。通常情况下,我们还会导入 NumPyPandas 以便处理数据:

python 复制代码
import numpy as np
import pandas as pd
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

下面我们给出一个机器学习领域的Hello World. 训练流程如下:

数据准备

我们将使用一个简单的例子来演示 sklearn 的基本使用。这里使用一个常见的鸢尾花(Iris)数据集。你可以从 sklearn 中直接加载这个数据集:

python 复制代码
from sklearn.datasets import load_iris

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

# 将数据集划分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

数据预处理

数据预处理是机器学习过程中非常重要的一步。常见的预处理步骤包括标准化、归一化、处理缺失值等。这里我们进行标准化处理:

python 复制代码
scaler = StandardScaler()

# 计算训练数据的均值和标准差,然后将训练数据进行标准化
X_train = scaler.fit_transform(X_train)

# 使用在训练数据上计算的均值和标准差将测试数据进行标准化
X_test = scaler.transform(X_test)

训练模型

sklearn 中,训练模型非常简单。这里我们使用逻辑回归模型

逻辑回归模型

逻辑回归是一种用于处理分类问题的统计学习方法,尽管其名称中包含"回归"一词,但实际上逻辑回归是一种分类算法,用于预测输入变量与离散输出变量之间的关系。以下是逻辑回归的一些关键特点和基本原理:

  1. 适用于二分类问题:逻辑回归主要用于解决二分类问题,即目标变量只有两种可能的取值。

  2. 输出为概率值:逻辑回归模型的输出是输入变量属于某个类别的概率,通常用于判断一个样本属于某一类的可能性有多大。

  3. 基于线性回归:逻辑回归的基本原理是基于线性回归的思想,通过对输入特征进行加权求和得到一个线性预测值,然后通过一个逻辑函数(如sigmoid函数)将线性值映射到[0, 1]之间,作为类别为1的概率。

  4. 损失函数:逻辑回归使用对数损失函数来衡量预测概率与实际类别之间的差距,并通过最小化损失函数来拟合模型参数。

  5. 参数估计:通常使用最大似然估计或梯度下降等方法来估计模型参数,以使模型能够最好地拟合训练数据。

  6. 可解释性强:逻辑回归模型的输出可以解释为对数几率(log odds),因此可以很好地理解输入特征对输出的影响。

逻辑回归是一种简单而有效的分类算法,常用于实践中的二分类问题,如信用风险预测、疾病诊断等。在scikit-learn中,逻辑回归模型可以很容易地进行构建和应用。

sklearn逻辑回归

用sklearn实现非常简单

python 复制代码
model = LogisticRegression()

# 在训练数据上训练模型
model.fit(X_train, y_train)

预测与评估

训练好模型后,我们可以在测试数据上进行预测,并评估模型的表现:

python 复制代码
# 使用训练好的模型进行预测
y_pred = model.predict(X_test)

# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print(f"模型的准确率: {accuracy:.2f}")

完整代码示例

以下是上述步骤的完整代码示例, 注意安装依赖:

bash 复制代码
pip install pandas
python 复制代码
import numpy as np
import pandas as pd
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
from sklearn.datasets import load_iris

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

# 将数据集划分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# 数据预处理:标准化
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)

# 训练逻辑回归模型
model = LogisticRegression()
model.fit(X_train, y_train)

# 在测试集上进行预测
y_pred = model.predict(X_test)

# 评估模型表现
accuracy = accuracy_score(y_test, y_pred)
print(f"模型的准确率: {accuracy:.2f}")

总结

本文介绍了 sklearn 的基础使用方法,包括数据加载、预处理、模型训练和评估。通过这些步骤,你可以快速上手 sklearn,进行简单的机器学习任务。希望这篇入门指南对你有所帮助!

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