Python 中 scikit-learn
(sklearn)模块安装与使用详细教程
注意:
你可能指的是 scikit-learn
(通常缩写为 sklearn
),而不是 slearn
。scikit-learn
是 Python 最流行的机器学习库之一。以下是完整的安装和使用指南。
一、安装 scikit-learn
1. 通过 pip 安装(推荐)
pip install scikit-learn
2. 通过 conda 安装(适合 Anaconda 用户)
conda install scikit-learn
3. 验证安装
import sklearn
print(sklearn.__version__) # 查看版本(应输出类似 1.4.x)
二、快速入门示例:鸢尾花分类
完整代码示例
# 导入必要模块
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
# 1. 加载数据集
iris = load_iris()
X = iris.data # 特征数据(150个样本,4个特征)
y = iris.target # 标签(0,1,2 代表三种鸢尾花)
# 2. 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42
)
# 3. 创建并训练模型
model = DecisionTreeClassifier(max_depth=3)
model.fit(X_train, y_train)
# 4. 预测测试集
y_pred = model.predict(X_test)
# 5. 评估准确率
accuracy = accuracy_score(y_test, y_pred)
print(f"模型准确率: {accuracy:.2f}") # 输出示例:模型准确率: 1.00
三、核心功能详解
1. 数据预处理
from sklearn.preprocessing import StandardScaler, OneHotEncoder
from sklearn.impute import SimpleImputer
# 数值特征标准化
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X_train)
# 分类特征编码
encoder = OneHotEncoder()
encoded_features = encoder.fit_transform(categorical_data)
# 缺失值填充(用均值)
imputer = SimpleImputer(strategy='mean')
X_imputed = imputer.fit_transform(X_missing)
2. 模型训练与评估
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import classification_report
# 使用随机森林
model = RandomForestClassifier(n_estimators=100)
model.fit(X_train, y_train)
# 详细评估报告
report = classification_report(y_test, model.predict(X_test))
print(report)
3. 模型选择与交叉验证
from sklearn.model_selection import cross_val_score
from sklearn.svm import SVC
# 10折交叉验证
scores = cross_val_score(SVC(), X, y, cv=10)
print(f"平均准确率: {scores.mean():.2f} ± {scores.std():.2f}")
4. 管道(Pipeline)整合流程
from sklearn.pipeline import make_pipeline
# 创建预处理+模型的完整管道
pipeline = make_pipeline(
StandardScaler(),
RandomForestClassifier()
)
# 直接训练和预测
pipeline.fit(X_train, y_train)
pipeline.score(X_test, y_test)
四、常用模型速查
任务类型 | 算法 | 导入路径 |
---|---|---|
分类 | 逻辑回归 | sklearn.linear_model.LogisticRegression |
支持向量机 (SVM) | sklearn.svm.SVC |
|
随机森林 | sklearn.ensemble.RandomForestClassifier |
|
回归 | 线性回归 | sklearn.linear_model.LinearRegression |
梯度提升树 | sklearn.ensemble.GradientBoostingRegressor |
|
聚类 | K-Means | sklearn.cluster.KMeans |
降维 | PCA | sklearn.decomposition.PCA |
五、常见问题解决
导入错误
No module named 'slearn'
→ 确认正确库名是scikit-learn
,导入时用import sklearn
安装缓慢/超时
→ 使用国内镜像源:pip install scikit-learn -i https://pypi.tuna.tsinghua.edu.cn/simple
版本冲突
→ 创建虚拟环境:python -m venv myenv source myenv/bin/activate # Linux/macOS myenv\Scripts\activate # Windows pip install scikit-learn
六、学习资源推荐
- 官方文档:scikit-learn.org
- 实用案例库:scikit-learn examples gallery
- 经典书籍:《Python机器学习实践指南》