python中的sklearn库

lemon Lv4

1. 核心功能

  • 机器学习算法:提供分类(如逻辑回归、决策树、SVM)、回归(如线性回归、随机森林)、聚类(如K-means、DBSCAN)、降维(如PCA)等多种算法。
  • 数据预处理:支持数据清洗、特征缩放(标准化、归一化)、特征选择、缺失值处理等。
  • 模型选择:提供交叉验证、网格搜索等工具,帮助选择合适的模型。
  • 模型评估:支持准确率、精确率、召回率、ROC曲线等多种评估指标。

2. 常用类与方法

  • 数据集加载

    • load_iris():加载鸢尾花数据集(分类任务)。
    • load_digits():加载手写数字数据集(分类任务)。
    • fetch_20newsgroups():加载新闻文本数据集(文本分类)。
  • 数据预处理

    • train_test_split(X, y, test_size=0.2):划分训练集和测试集。
    • StandardScaler():标准化数据(均值为0,标准差为1)。
    • MinMaxScaler():归一化数据(缩放到0-1范围)。
    • SelectKBest():选择最佳特征。
  • 机器学习算法

    • 分类
      • LogisticRegression():逻辑回归(适合二分类)。
      • KNeighborsClassifier():K近邻分类(基于距离)。
      • SVC():支持向量机分类(高维数据有效)。
      • DecisionTreeClassifier():决策树分类(可解释性强)。
      • RandomForestClassifier():随机森林分类(集成方法,抗过拟合)。
    • 回归
      • LinearRegression():线性回归(预测连续值)。
      • DecisionTreeRegressor():决策树回归。
      • RandomForestRegressor():随机森林回归。
    • 聚类
      • KMeans():K均值聚类(需指定簇数)。
      • DBSCAN():密度聚类(自动发现簇数)。
    • 降维
      • PCA():主成分分析(保留主要信息)。
  • 模型选择

    • cross_val_score(model, X, y, cv=5):交叉验证(评估模型稳定性)。
    • GridSearchCV(model, param_grid, cv=5):网格搜索(超参数调优)。
  • 模型评估

    • accuracy_score(y_true, y_pred):准确率(分类任务)。
    • mean_squared_error(y_true, y_pred):均方误差(回归任务)。
    • confusion_matrix(y_true, y_pred):混淆矩阵(分类任务)。
    • classification_report(y_true, y_pred):分类报告(包含精确率、召回率等)。

3. 使用示例

  • 加载数据集并划分

    1
    2
    3
    4
    5
    6
    7
    8
    from sklearn.datasets import load_iris
    from sklearn.model_selection import train_test_split

    iris = load_iris()
    X = iris.data
    y = iris.target

    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
  • 数据预处理

    1
    2
    3
    4
    5
    from sklearn.preprocessing import StandardScaler

    scaler = StandardScaler()
    X_train_scaled = scaler.fit_transform(X_train)
    X_test_scaled = scaler.transform(X_test)
  • 训练模型并预测

    1
    2
    3
    4
    5
    6
    from sklearn.linear_model import LogisticRegression

    model = LogisticRegression()
    model.fit(X_train_scaled, y_train)

    y_pred = model.predict(X_test_scaled)
  • 评估模型

    1
    2
    3
    4
    from sklearn.metrics import accuracy_score, classification_report

    print(f"Accuracy: {accuracy_score(y_test, y_pred)}")
    print(classification_report(y_test, y_pred))

4. 注意事项

  • 数据预处理:缺失值、异常值需处理,分类变量需编码(如独热编码)。
  • 特征缩放:对基于距离的算法(如KNN、SVM)和梯度下降算法(如线性回归)尤为重要。
  • 过拟合/欠拟合:通过调整模型复杂度(如树深度)、正则化参数、增加数据量等方法解决。
  • 模型选择:交叉验证避免过拟合,网格搜索找到最佳超参数。
  • 类别平衡:分类任务中若类别不平衡,需采用采样方法(如SMOTE)或调整类别权重。

总结

  • 基础流程:加载数据 → 划分数据集 → 预处理 → 训练模型 → 预测 → 评估。
  • 常用算法:分类用逻辑回归、随机森林;回归用线性回归、决策树;聚类用K-means、DBSCAN。
  • 工具函数train_test_split 划分数据,StandardScaler 标准化,GridSearchCV 调参。
  • 评估指标:分类用准确率、混淆矩阵;回归用均方误差;聚类用轮廓系数。
  • 标题: python中的sklearn库
  • 作者: lemon
  • 创建于 : 2025-04-12 22:30:30
  • 更新于 : 2025-04-12 22:32:47
  • 链接: https://lemon2003.github.io/post/20250412223030.html
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论