zoukankan      html  css  js  c++  java
  • scikit-learn一般实例之三:连接多个特征提取方法

    在很多现实世界的例子中,有很多从数据集中提取特征的方法.很多时候我们需要结合多种方法获得好的效果.本例将展示怎样使用FeatureUnion通过主成分分析和单变量选择相进行特征结合.

    结合使用转换器的好处是它允许在整个过程中进行交叉验证和网格搜索。

    在本例中数据集上使用组合的方法并没有什么实际作用,仅用来展示怎么使用FeatureUnion

    # coding:utf-8
    
    # 作者: Andreas Mueller <amueller@ais.uni-bonn.de>
    # 协议: BSD 3 
    
    from sklearn.pipeline import Pipeline, FeatureUnion
    from sklearn.model_selection 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
    
    #本数据集维度较高,最好进行PCA降维
    pca = PCA(n_components=2)
    
    #也许一些原始特征也非常有用
    selection = SelectKBest(k=1)
    
    #从主成分分析和单变量选择的建立评估器
    combined_features = FeatureUnion([("pca", pca), ("univ_select", selection)])
    #使用组合特征来转换数据集
    X_features = combined_features.fit(X, y).transform(X)
    
    svm = SVC(kernel="linear")
    
    #进行网格搜索(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_)
    
    
    
    
  • 相关阅读:
    mybatis动态sql和分页
    mybatis入门
    IDEA
    Linux环境搭建
    svn
    jwt
    Vuex
    SPA项目开发之CRUD+表单验证
    JavaScript可视化框架——Echarts
    python+selenium六:隐式等待
  • 原文地址:https://www.cnblogs.com/taceywong/p/5930662.html
Copyright © 2011-2022 走看看