当前位置:首页 > Python > 正文

Python Scikit-learn入门教程 - 从安装到实践 | 机器学习基础

Python Scikit-learn完全入门指南

掌握机器学习核心库,开启你的数据科学之旅

什么是Scikit-learn?

Scikit-learn(简称sklearn)是Python中最受欢迎的机器学习库之一,它提供了简单高效的数据挖掘和数据分析工具。它构建在NumPy、SciPy和Matplotlib之上,具有以下特点:

  • 简单易用的API设计
  • 丰富的机器学习算法实现
  • 完善的文档和社区支持
  • 开源且商业友好(BSD许可证)

安装Scikit-learn

使用pip可以轻松安装Scikit-learn及其依赖:

pip install -U scikit-learn

安装完成后,可以通过以下方式验证安装:

import sklearn
print(sklearn.__version__)

Scikit-learn核心功能

1. 数据预处理

数据预处理是机器学习流程中至关重要的一步:

from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split

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

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

# 数据标准化
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)

2. 模型训练

使用Scikit-learn训练模型非常简单直观:

from sklearn.ensemble import RandomForestClassifier

# 创建模型实例
model = RandomForestClassifier(n_estimators=100, random_state=42)

# 训练模型
model.fit(X_train_scaled, y_train)

3. 模型评估

Scikit-learn提供了多种评估指标:

from sklearn.metrics import accuracy_score, classification_report

# 预测
y_pred = model.predict(X_test_scaled)

# 评估模型
accuracy = accuracy_score(y_test, y_pred)
print(f"模型准确率: {accuracy:.2f}")
print("\n分类报告:")
print(classification_report(y_test, y_pred))

完整示例:鸢尾花分类

以下是一个完整的机器学习工作流程示例:

# 导入所需库
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC
from sklearn.metrics import classification_report, confusion_matrix

# 加载数据集
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)

# 创建SVM分类器
model = SVC(kernel='linear', C=1.0, random_state=42)
model.fit(X_train, y_train)

# 预测与评估
y_pred = model.predict(X_test)
print("分类报告:")
print(classification_report(y_test, y_pred))
print("\n混淆矩阵:")
print(confusion_matrix(y_test, y_pred))

常用算法概览

监督学习

  • 线性回归
  • 逻辑回归
  • 支持向量机(SVM)
  • 决策树
  • 随机森林
  • K近邻(KNN)

无监督学习

  • K均值聚类
  • 层次聚类
  • 主成分分析(PCA)
  • 异常检测

模型选择与评估

  • 交叉验证
  • 网格搜索
  • 多种评估指标
  • 学习曲线

最佳实践建议

  • 始终将数据集分为训练集和测试集
  • 对数据进行适当的预处理和特征工程
  • 使用交叉验证评估模型性能
  • 通过网格搜索优化超参数
  • 尝试多种算法比较性能
  • 使用管道(Pipeline)组织工作流程

本教程提供了Scikit-learn的基础知识,要深入学习请查阅官方文档:scikit-learn.org

发表评论