2017-10-17 10 views
1

をGridSearchCVに渡されたパイプラインの内側から分散を説明する方法を次のようにsklearnは - PCAのコンポーネントを取得し、私はパイプラインでGridSearchCVを使用しています

grid = GridSearchCV(
    Pipeline([ 
     ('reduce_dim', PCA()), 
     ('classify', RandomForestClassifier(n_jobs = -1)) 
     ]), 
    param_grid=[ 
     { 
      'reduce_dim__n_components': range(0.7,0.9,0.1), 
      'classify__n_estimators': range(10,50,5), 
      'classify__max_features': ['auto', 0.2], 
      'classify__min_samples_leaf': [40,50,60], 
      'classify__criterion': ['gini', 'entropy'] 
     } 
    ], 
    cv=5, scoring='f1') 

grid.fit(X,y) 

私は今からcomponentsexplained_varianceのようなPCAの詳細を取得するにはどうすればよいですgrid.best_estimator_モデル?

また、pickleを使用してファイルにbest_estimator_を保存して後でロードすることもします。この負荷見積もりからPCAの詳細を取得するにはどうすればよいですか?私はそれが上記と同じだろうと思う。

+0

私はあなたのPCAグリッド得ることはありません一部:今、あなたは、単にこのPCAのこのようなオブジェクトのためのcomponents_explained_variance_ attibutesにアクセスするためにこれを使用することができます '「reduce_dim__n_components」:範囲を(0.7,0.9 、0.1) 'ここにはどのような値の範囲がありますか? – guy

答えて

2

grid.best_estimator_は、最良のパラメータでパイプラインにアクセスすることです。

named_steps[]attributeを使用して、パイプラインの内部エスティメータにアクセスします。

だからgrid.best_estimator_.named_steps['reduce_dim']はあなたにpcaオブジェクトを与えます。

grid.best_estimator_.named_steps['reduce_dim'].components_ grid.best_estimator_.named_steps['reduce_dim'].explained_variance_

+0

これは完璧です。本当にありがとう! – shikhanshu

関連する問題