[ PROMPT_NODE_27350 ]
scikit-learn
[ SKILL_DOCUMENTATION ]
# Scikit-learn
## 概述
此技能提供使用 scikit-learn 进行机器学习任务的全面指导,这是经典机器学习的行业标准 Python 库。使用此技能进行分类、回归、聚类、降维、预处理、模型评估以及构建生产就绪的机器学习工作流。
## 安装
bash
# 使用 uv 安装 scikit-learn
uv uv pip install scikit-learn
# 可选:安装可视化依赖
uv uv pip install matplotlib seaborn
# 常与以下库一起使用
uv uv pip install pandas numpy
## 何时使用此技能
在以下情况使用 scikit-learn 技能:
- 构建分类或回归模型
- 执行聚类或降维
- 为机器学习预处理和转换数据
- 使用交叉验证评估模型性能
- 通过网格搜索或随机搜索调优超参数
- 为生产工作流创建机器学习工作流
- 比较不同算法以完成任务
- 处理结构化(表格)数据和文本数据
- 需要可解释的经典机器学习方法
## 快速入门
### 分类示例
python
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import classification_report
# 拆分数据
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, stratify=y, random_state=42
)
# 预处理
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
# 训练模型
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train_scaled, y_train)
# 评估
y_pred = model.predict(X_test_scaled)
print(classification_report(y_test, y_pred))
### 混合数据完整工作流
python
from sklearn.pipeline import Pipeline
from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import StandardScaler, OneHotEncoder
from sklearn.impute import SimpleImputer
from sklearn.ensemble import GradientBoostingClassifier
# 定义特征类型
numeric_features = ['age', 'income']
categorical_features = ['gender', 'occupation']
# 创建预处理工作流
numeric_transformer = Pipeline([
('imputer', SimpleImputer(strategy='median')),
('scaler', StandardScaler())
])
categorical_transformer = Pipeline([
('imputer', SimpleImputer(strategy='most_frequent')),
('on