zoukankan      html  css  js  c++  java
  • 特征选择--联合方法的特征提取

    """
    =================================================
    Concatenating multiple feature extraction methods
    =================================================
      
    In many real-world examples, there are many ways to extract features from a
    dataset. Often it is beneficial to combine several methods to obtain good
    performance. This example shows how to use ``FeatureUnion`` to combine
    features obtained by PCA and univariate selection.
      
    Combining features using this transformer has the benefit that it allows
    cross validation and grid searches over the whole process.
      
    The combination used in this example is not particularly helpful on this
    dataset and is only used to illustrate the usage of FeatureUnion.
    """
      
    # Author: Andreas Mueller <amueller@ais.uni-bonn.de>
    #
    # License: BSD 3 clause
      
    from sklearn.pipeline import Pipeline, FeatureUnion
    from sklearn.grid_search import GridSearchCV
    from sklearn.svm import SVC
    from sklearn.datasets import load_iris
    from sklearn.decomposition import PCA
    from sklearn.feature_selection import SelectKBest
      
    iris = load_iris()
      
    X, y = iris.data, iris.target
      
    # This dataset is way to high-dimensional. Better do PCA:
    pca = PCA(n_components=2)
      
    # Maybe some original features where good, too?
    selection = SelectKBest(k=1)
      
    # Build estimator from PCA and Univariate selection:
      
    combined_features = FeatureUnion([("pca", pca), ("univ_select", selection)])
      
    # Use combined features to transform dataset:
    X_features = combined_features.fit(X, y).transform(X)
      
    # Classify:
    svm = SVC(kernel="linear")
    svm.fit(X_features, y)
      
    # Do grid search over k, n_components and C:
      
    pipeline = Pipeline([("features", combined_features), ("svm", svm)])
      
    param_grid = dict(features__pca__n_components=[1, 2, 3],
                      features__univ_select__k=[1, 2],
                      svm__C=[0.1, 1, 10])
      
    grid_search = GridSearchCV(pipeline, param_grid=param_grid, verbose=10)
    grid_search.fit(X, y)
    print(grid_search.best_estimator_)

  • 相关阅读:
    npropress进度条插件的使用
    让img图片像背景一样显示
    vue-cli3配置多页面入口
    7中漂亮的纯css字体
    速查手册
    推荐系统架构
    leetcode 172. 阶乘后的零
    C++ string和int互相转换
    特征分解
    线性代数基础
  • 原文地址:https://www.cnblogs.com/xinping-study/p/7116982.html
Copyright © 2011-2022 走看看