HoRain云--Scikit-learn 机器学习实战:从数据清洗到模型部署

HoRain云--Scikit-learn 机器学习实战:从数据清洗到模型部署 1. 机器学习流程数据获取 → 清洗 → 特征工程 → 划分数据集 → 训练模型 → 评估 → 调参 → 部署。2. 加载数据python复制下载from sklearn.datasets import load_iris import pandas as pd iris load_iris() df pd.DataFrame(iris.data, columnsiris.feature_names) df[target] iris.target3. 数据清洗处理缺失值python复制下载df.fillna(df.mean(numeric_onlyTrue), inplaceTrue) df.drop_duplicates(inplaceTrue)4. 特征工程编码分类变量python复制下载from sklearn.preprocessing import OneHotEncoder encoder OneHotEncoder(handle_unknownignore)标准化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_size0.2, random_state42, stratifyy)6. 训练模型python复制下载from sklearn.ensemble import RandomForestClassifier model RandomForestClassifier(n_estimators100, random_state42) 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, cv5, scoringaccuracy) grid.fit(X_train, y_train) print(grid.best_params_)9. 管道 Pipelinepython复制下载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 应用。