🤖 Scikit-learn 入门指南
Scikit-learn
是基于 NumPy、SciPy 和 matplotlib 的机器学习库,提供了常见的分类、回归、聚类、降维等工具,是入门机器学习的首选。
✅ Scikit-learn 能解决什么问题?
类型 | 示例任务 | 应用方向 |
---|---|---|
分类 | 邮件是否为垃圾邮件 | 文本分析、医学预测 |
回归 | 房价预测 | 金融、房产估价 |
聚类 | 用户分群、图像分割 | 推荐系统、市场分析 |
降维 | 数据压缩、特征提取 | 图像、文本预处理 |
模型选择 | 网格搜索、交叉验证 | 提升模型性能 |
特征工程 | 标准化、编码、选择 | 数据预处理与管道 |
📦 安装
pip install scikit-learn
📊 基本使用:分类任务示例(Iris 数据集)
1️⃣ 加载数据集
从 sklearn.datasets 导入 加载鸢尾花
数据 = 加载鸢尾花()
打印(数据.数据[:3])
2️⃣ 划分训练集和测试集
从 sklearn.model_selection 导入 训练测试划分
X_训练, X_测试, y_训练, y_测试 = 训练测试划分(
数据.数据, 数据.目标, 测试大小=0.2, 随机状态=42
)
3️⃣ 训练模型
从 sklearn.neighbors 导入 K近邻分类器
模型 = K近邻分类器()
模型.拟合(X_训练, y_训练)
4️⃣ 模型预测与评估
预测 = 模型.预测(X_测试)
从 sklearn.metrics 导入 精度
打印("准确率:", 精度(y_测试, 预测))
🧰 常见模块介绍
模块 | 功能 |
---|---|
sklearn.datasets | 提供示例数据集 |
sklearn.model_selection | 数据切分、交叉验证、搜索 |
sklearn.preprocessing | 标准化、编码、归一化 |
sklearn.linear_model | 回归模型,如线性回归 |
sklearn.tree | 决策树、随机森林 |
sklearn.svm | 支持向量机 |
sklearn.neighbors | KNN 分类、回归 |
sklearn.metrics | 模型评估指标 |
sklearn.pipeline | 构建训练管道 |
🔄 管道与预处理示例
从 sklearn.pipeline 导入 管道
从 sklearn.preprocessing 导入 标准化器
从 sklearn.linear_model 导入 逻辑回归
模型 = 管道([
("缩放", 标准化器()),
("分类器", 逻辑回归())
])
模型.拟合(X_训练, y_训练)
🧪 交叉验证与网格搜索
从 sklearn.model_selection 导入 网格搜索CV
参数 = {"n_neighbors": [3, 5, 7]}
搜索 = 网格搜索CV(K近邻分类器(), 参数, cv=3)
搜索.拟合(X_训练, y_训练)
打印(搜索.最佳参数_)
📈 支持的模型一览
类别 | 示例模型 |
---|---|
分类 | KNN、SVM、决策树、朴素贝叶斯 |
回归 | 线性回归、Ridge、SVR |
聚类 | KMeans、MeanShift、DBSCAN |
降维 | PCA、TruncatedSVD |
模型选择 | GridSearchCV、RandomizedSearchCV |