Scikit-Learn 基础教程

Scikit-Learn 是一个广泛使用的 Python 机器学习库,旨在为数据科学和机器学习任务提供简洁、高效的工具。本文将介绍 Scikit-Learn 的安装、基本使用以及一些常见的机器学习任务的实现方法。

安装 Scikit-Learn

安装 Scikit-Learn 非常简单,只需使用 pip 包管理器即可:

复制代码
pip install scikit-learn

安装完成后,可以通过以下命令验证安装是否成功:

复制代码
import sklearn
print(sklearn.__version__)

Scikit-Learn 的基本使用

下面我们将通过一个简单的线性回归示例来介绍 Scikit-Learn 的基本使用方法。

导入必要的库

复制代码
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error

准备数据

我们生成一些随机数据作为示例:

复制代码
# 生成随机数据
X = np.random.rand(100, 1) * 10  # 特征
y = 2.5 * X + np.random.randn(100, 1) * 2  # 标签

拆分数据集

将数据集拆分为训练集和测试集:

复制代码
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

训练模型

使用线性回归模型进行训练:

复制代码
model = LinearRegression()
model.fit(X_train, y_train)

预测与评估

使用训练好的模型进行预测,并计算均方误差:

复制代码
y_pred = model.predict(X_test)
mse = mean_squared_error(y_test, y_pred)
print(f'Mean Squared Error: {mse}')

Scikit-Learn 的主要功能

监督学习

Scikit-Learn 提供了多种常见的监督学习算法,包括回归和分类任务。

回归
  • 线性回归(Linear Regression)

  • 决策树回归(Decision Tree Regression)

  • 支持向量回归(Support Vector Regression)

  • 岭回归(Ridge Regression)

    from sklearn.linear_model import Ridge

    ridge_model = Ridge()
    ridge_model.fit(X_train, y_train)

分类
  • 逻辑回归(Logistic Regression)

  • K 近邻(K-Nearest Neighbors, KNN)

  • 支持向量机(Support Vector Machine, SVM)

  • 随机森林(Random Forest)

    from sklearn.ensemble import RandomForestClassifier

    clf = RandomForestClassifier()
    clf.fit(X_train, y_train)

无监督学习

Scikit-Learn 还包括多种无监督学习算法,用于聚类和降维。

聚类
  • K 均值聚类(K-Means Clustering)

  • 层次聚类(Hierarchical Clustering)

  • DBSCAN(Density-Based Spatial Clustering of Applications with Noise)

    from sklearn.cluster import KMeans

    kmeans = KMeans(n_clusters=3)
    kmeans.fit(X)

降维
  • 主成分分析(Principal Component Analysis, PCA)

  • t-SNE(t-Distributed Stochastic Neighbor Embedding)

    from sklearn.decomposition import PCA

    pca = PCA(n_components=2)
    X_reduced = pca.fit_transform(X)

模型选择与评估

Scikit-Learn 提供了多种工具用于模型选择、交叉验证和参数调优。

交叉验证
  • K 折交叉验证(K-Fold Cross Validation)

  • 留一法交叉验证(Leave-One-Out Cross Validation)

    from sklearn.model_selection import cross_val_score

    scores = cross_val_score(model, X, y, cv=5)

超参数调优
  • 网格搜索(Grid Search)

  • 随机搜索(Random Search)

    from sklearn.model_selection import GridSearchCV

    param_grid = {'alpha': [0.1, 1, 10]}
    grid_search = GridSearchCV(Ridge(), param_grid, cv=5)
    grid_search.fit(X_train, y_train)

数据预处理

数据预处理是机器学习管道中的重要一环,Scikit-Learn 提供了丰富的数据预处理工具。

标准化与归一化
  • 标准化(Standardization)

  • 归一化(Normalization)

    from sklearn.preprocessing import StandardScaler

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

缺失值填补
  • 使用均值、中位数或众数填补缺失值

    from sklearn.impute import SimpleImputer

    imputer = SimpleImputer(strategy='mean')
    X_imputed = imputer.fit_transform(X)

编码分类变量
  • 独热编码(One-Hot Encoding)

    from sklearn.preprocessing import OneHotEncoder

    encoder = OneHotEncoder()
    X_encoded = encoder.fit_transform(X_categorical)

管道(Pipeline)

Scikit-Learn 的管道工具允许将多个步骤链接在一起,形成一个完整的工作流。这样可以简化代码,并确保数据处理的正确性。

复制代码
from sklearn.pipeline import Pipeline

pipeline = Pipeline([
    ('scaler', StandardScaler()),
    ('regressor', LinearRegression())
])

pipeline.fit(X_train, y_train)
y_pred = pipeline.predict(X_test)

结论

通过本教程的介绍,你应该对 Scikit-Learn 的安装和基本使用有了初步的了解。Scikit-Learn 是一个功能强大且易于使用的机器学习库,适合从入门到高级的各种机器学习任务。更多详细信息和高级用法,可以参考

相关推荐
李昊哲小课1 天前
K近邻算法的分类与回归应用场景
python·机器学习·分类·数据挖掘·回归·近邻算法·sklearn
Blossom.1181 天前
深度学习中的注意力机制:原理、应用与实践
人工智能·深度学习·神经网络·机器学习·生成对抗网络·计算机视觉·sklearn
Blossom.1182 天前
基于深度学习的情感分析模型:从文本数据到模型部署
人工智能·深度学习·神经网络·学习·机器学习·prompt·sklearn
weixin_464078072 天前
机器学习sklearn入门:使用KNN模型分类鸢尾花和使用交叉验证进行简单调参
机器学习·分类·sklearn
Love__Tay2 天前
笔记/sklearn中的数据划分方法
笔记·机器学习·sklearn·数据划分
魔力之心5 天前
sklearn study notes[1]
人工智能·python·sklearn
whabc1007 天前
和鲸社区深度学习基础训练营2025年关卡2(3)pytorch
人工智能·深度学习·sklearn
Blossom.11812 天前
机器学习在智能制造业中的应用:质量检测与设备故障预测
人工智能·深度学习·神经网络·机器学习·机器人·tensorflow·sklearn
Blossom.11813 天前
机器学习在智能建筑中的应用:能源管理与环境优化
人工智能·python·深度学习·神经网络·机器学习·机器人·sklearn
Blossom.1181 个月前
基于深度学习的智能视频行为识别系统:技术与实践
人工智能·深度学习·神经网络·目标检测·机器学习·音视频·sklearn