• Pipeline知识小记


    scikit-learn(通常缩写为sklearn)中,Pipeline是一个非常重要的工具,它允许你将多个数据转换步骤(如特征选择、缩放等)和估计器(如分类器、回归器等)组合成一个单一的估计器对象。这种组合使得数据预处理和模型训练变得更加简洁和高效。

    使用Pipeline的主要好处包括:

    1. 简化工作流:你可以在一个对象中定义整个数据处理和建模流程。
    2. 避免数据泄露:在交叉验证或其他评估过程中,Pipeline会确保每一步都是单独地应用于每个训练/测试分割,从而避免数据泄露。
    3. 易于使用:你可以像使用任何其他sklearn估计器一样使用Pipeline,包括fitpredictscore等方法。

    下面是一个简单的示例,展示了如何使用Pipeline将特征缩放(使用StandardScaler)和逻辑回归(使用LogisticRegression)组合在一起:

    from sklearn.pipeline import Pipeline
    from sklearn.preprocessing import StandardScaler
    from sklearn.linear_model import LogisticRegression
    from sklearn.datasets import load_iris
    from sklearn.model_selection import train_test_split
    
    # 加载数据集
    iris = load_iris()
    X, y = iris.data, iris.target
    #X,y = load_iris(return_X_y=True)
    
    # 划分数据集为训练集和测试集
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
    
    # 创建Pipeline
    steps = [
        ('scaler', StandardScaler()),
        ('logistic', LogisticRegression(max_iter=1000, solver='lbfgs'))
    ]
    pipeline = Pipeline(steps)
    
    # 使用Pipeline进行训练
    pipeline.fit(X_train, y_train)
    
    # 使用Pipeline进行预测
    predictions = pipeline.predict(X_test)
    
    # 评估Pipeline的性能
    score = pipeline.score(X_test, y_test)
    print(f"Accuracy: {score}")
    

    在这个示例中,我们首先加载了鸢尾花数据集,并将其划分为训练集和测试集。然后,我们定义了一个包含两个步骤的Pipelinescaler(使用StandardScaler进行特征缩放)和logistic(使用LogisticRegression进行分类)。最后,我们使用Pipeline进行训练、预测和评估。

  • 相关阅读:
    【Compose】Desktop Application 初尝试
    FPGA图像处理(一):边缘检测
    服务器扩容步骤
    数学基础(二)逆矩阵、伪逆矩阵、最小二乘解、最小范数解
    LNMP搭建
    FlexRay网络管理与测试
    【17-微服务网关之Spring Cloud Gateway&Spring Cloud Gateway网关服务搭建】
    java 线程安全问题 三种线程同步方案 线程通信(了解)
    大厂镜像库
    YAPI接口自动鉴权功能部署详解
  • 原文地址:https://blog.csdn.net/liujianjun1536500976/article/details/139870113