1. 机器学习流程
数据获取 → 清洗 → 特征工程 → 划分数据集 → 训练模型 → 评估 → 调参 → 部署。
2. 加载数据
python
复制
下载
from sklearn.datasets import load_iris import pandas as pd iris = load_iris() df = pd.DataFrame(iris.data, columns=iris.feature_names) df["target"] = iris.target
3. 数据清洗
处理缺失值:
python
复制
下载
df.fillna(df.mean(numeric_only=True), inplace=True) df.drop_duplicates(inplace=True)
4. 特征工程
编码分类变量:
python
复制
下载
from sklearn.preprocessing import OneHotEncoder encoder = OneHotEncoder(handle_unknown="ignore")
标准化:
python
复制
下载
from sklearn.preprocessing import StandardScaler scaler = StandardScaler() X_scaled = scaler.fit_transform(X)
5. 划分数据集
python
复制
下载
from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.2, random_state=42, stratify=y)
6. 训练模型
python
复制
下载
from sklearn.ensemble import RandomForestClassifier model = RandomForestClassifier(n_estimators=100, random_state=42) model.fit(X_train, y_train)
7. 评估
python
复制
下载
from sklearn.metrics import accuracy_score, classification_report, confusion_matrix y_pred = model.predict(X_test) print(accuracy_score(y_test, y_pred)) print(classification_report(y_test, y_pred))
8. 交叉验证与网格搜索
python
复制
下载
from sklearn.model_selection import GridSearchCV param_grid = {"n_estimators": [50, 100, 200], "max_depth": [None, 5, 10]} grid = GridSearchCV(model, param_grid, cv=5, scoring="accuracy") grid.fit(X_train, y_train) print(grid.best_params_)9. 管道 Pipeline
python
复制
下载
from sklearn.pipeline import Pipeline pipe = Pipeline([ ("scaler", StandardScaler()), ("clf", RandomForestClassifier()) ]) pipe.fit(X_train, y_train)10. 保存与部署
python
复制
下载
import joblib joblib.dump(pipe, "model.pkl") model = joblib.load("model.pkl")使用 FastAPI 部署:
python
复制
下载
from fastapi import FastAPI app = FastAPI() model = joblib.load("model.pkl") @app.post("/predict") def predict(features: list[float]): return {"prediction": int(model.predict([features])[0])}11. 常见坑
数据泄漏:在划分前标准化。
类别不平衡:使用 class_weight 或重采样。
过拟合:交叉验证、正则化、减少特征。
生产环境模型版本管理。
12. 总结
scikit-learn 是入门机器学习的首选。掌握 Pipeline、GridSearchCV 和模型持久化后,可以快速构建可部署的 ML 应用。