問題タブ [imblearn]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scikit-learn - AttributeError: 'ColumnSelector' オブジェクトに属性 'n_features_in_' がありません。
スタッキング推定器(sklearn.ensembleライブラリのStackingClassifierオブジェクト)のハイパーパラメータを調整するためのグリッド検索を行っています。ML 用の scikit ライブラリと RandomizedSearchCV 関数を利用しています。これに加えて、調整するスタックのベース エスティメータはパイプライン (imblearn.pipeline ライブラリの Pipeline オブジェクト) であり、各パイプラインの最初のステップは mlxtend ライブラリの ColumnSelector オブジェクトです。グリッド検索は、変数の組み合わせの長いリストを調べることを目的としているため、グリッドのパラメーターの分布は、ColumnSelector オブジェクトのパラメーター「cols」のみを調べます。このコードを初めて実行したとき、すべてがうまく機能していましたが、プロジェクトを脇に置き、数日後に戻ってきて、もう機能していないことがわかりました。コード内のすべては、私が残したものと同じです。
AttributeError: 'ColumnSelector' オブジェクトに属性 'n_features_in_' がありません
何が身に着けているのかわかりません。Anaconda、mlxtend、imblearnをアンインストールし、最近のバージョンで再インストールするなど、多くのことを試しましたが、同じエラーが叫び続けます。Googleで検索しましたが、これに関する情報はないようです。
この問題で私を助けてもらえますか?
前もって感謝します。
補遺: scikit のバージョンは 0.23.1、mlxtend のバージョンは 0.17.3、imbalanced-learn のバージョンは 0.7.0 です。
完全なトレースバックは以下のとおりです。オブジェクト gr2 は、スタック分類子を調整するための RandomizedSearchCV オブジェクトに対応しています。mlxtend の StackingClassifier オブジェクトを使用するとすべて正常に動作しますが、このオブジェクトにはパラメーター cv がありません。これには sklearn.ensemble の StackingClassifier があり、パフォーマンスを向上させるために必要です。 (すべてが正常に機能していたときに以前に持っていた)。
python - ADASYN アルゴリズムを使用したマルチクラス データのオーバーサンプリングの失敗
問題をデモするための非常に基本的なスクリプトを以下に示します。
意図は、以下のクラスの不均衡のバランスを取ることです。
等しい (またはほぼ等しい) サンプルを持つこと。ただし、上記のコードを実行すると、次のようになります。
ValueError: No samples will be generated with the provided ratio settings.
を に変更するとADASYN
、クラスが正常にオーバーサンプリングされ、サンプルになりますが、残りのクラスは不均衡のままです。したがって、 ADASYN を使用してすべてのマイノリティ クラスを完全にオーバーサンプリングする方法を探しています。sampling_strategy
minority
minority
6
74
ADASYN のドキュメントには次のように記載されています。
'not majority': resample all classes but the majority class;
しかし、それは明らかに起こっていません。