文章目录
- scikit-learn:Python 机器学习的标配工具库
- 1、 能做什么
- 2、 为什么用它
- 3、 安装和上手
- 4、 谁在用
scikit-learn:Python 机器学习的标配工具库
scikit-learn 在 GitHub 上拿到了 66,305 个 Star。
做机器学习的 Python 开发者,十有八九用过它。分类、回归、聚类、降维、模型选择、数据预处理,sklearn 把这些做进了同一个库里,API 统一,上手快。
1、 能做什么
sklearn 覆盖的算法很全。分类有 SVM、随机森林、梯度提升、逻辑回归;回归有线性回归、岭回归、Lasso;聚类有 K-Means、DBSCAN、层次聚类。常用的降维方法 PCA、t-SNE 也都在。
算法之外,数据预处理 pipeline、特征选择、模型评估、超参数调优这些工程化的活儿,它一并做了。cross-validation、grid search、各种评估指标,调几个参数就能跑。
2、 为什么用它
Python 机器学习生态里,NumPy 管数组运算,SciPy 管科学计算,pandas 管表格数据。sklearn 在这三层之上,把机器学习的工作流封装好了。
它要求的依赖很明确:Python >= 3.11、NumPy >= 1.24.1、SciPy >= 1.10.0,再加上 joblib 做并行、threadpoolctl 做线程控制。依赖链不长,装起来干净。
3、 安装和上手
装的话一行命令:
pipinstall-Uscikit-learn或者用 conda:
condainstall-cconda-forge scikit-learn跑一个分类任务大概长这样:
fromsklearn.datasetsimportload_irisfromsklearn.ensembleimportRandomForestClassifierfromsklearn.model_selectionimporttrain_test_split X,y=load_iris(return_X_y=True)X_train,X_test,y_train,y_test=train_test_split(X,y)clf=RandomForestClassifier()clf.fit(X_train,y_train)print(clf.score(X_test,y_test))fit、predict、score,所有模型都是这个套路,换算法只需改一行导入。
4、 谁在用
数据科学家拿它做模型原型验证,工程师拿它做线上推理,高校拿它教机器学习课。2007 年由 David Cournapeau 作为 Google Summer of Code 项目启动,至今由志愿者团队维护。文档有英文和中文两个版本,社区活跃,Stack Overflow 上的相关讨论超过 17 万条。
如果你在做数据分析或机器学习相关的工作,sklearn 基本是绕不开的。
ow 上的相关讨论超过 17 万条。
如果你在做数据分析或机器学习相关的工作,sklearn 基本是绕不开的。