質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
PyTorch

PyTorchは、オープンソースのPython向けの機械学習ライブラリ。Facebookの人工知能研究グループが開発を主導しています。強力なGPUサポートを備えたテンソル計算、テープベースの自動微分による柔軟なニューラルネットワークの記述が可能です。

Kaggle

Kaggleは、機械学習モデルを構築するコンペティションのプラットフォームおよびその運営企業を指します。企業や政府といった組織とデータサイエンティスト・機械学習エンジニアを繋げるプラットフォームであり、単純なマッチングではなくコンペティションが特徴です。

scikit-learn

scikit-learnは、Pythonで使用できるオープンソースプロジェクトの機械学習用ライブラリです。多くの機械学習アルゴリズムが実装されていますが、どのアルゴリズムも同じような書き方で利用できます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

Q&A

1回答

963閲覧

3つ以上のハイパラチューニングのスコアの視覚化

chgrios

総合スコア70

PyTorch

PyTorchは、オープンソースのPython向けの機械学習ライブラリ。Facebookの人工知能研究グループが開発を主導しています。強力なGPUサポートを備えたテンソル計算、テープベースの自動微分による柔軟なニューラルネットワークの記述が可能です。

Kaggle

Kaggleは、機械学習モデルを構築するコンペティションのプラットフォームおよびその運営企業を指します。企業や政府といった組織とデータサイエンティスト・機械学習エンジニアを繋げるプラットフォームであり、単純なマッチングではなくコンペティションが特徴です。

scikit-learn

scikit-learnは、Pythonで使用できるオープンソースプロジェクトの機械学習用ライブラリです。多くの機械学習アルゴリズムが実装されていますが、どのアルゴリズムも同じような書き方で利用できます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

0グッド

0クリップ

投稿2021/01/18 15:17

夜分遅くにすいません
ハイパワーパラーメータチューニングの選出法について悩んでいます。
例えばBaggingClassifier()において

from sklearn.ensemble import BaggingClassifier from sklearn.datasets import load_breast_cancer from sklearn.model_selection = train_test_split cancer = load_breast_cancer() x_train, x_test, y_train,y_test = train_test_split(cancer.data,cancer.target) param_grid = { 'max_features':[1,2,3,4,5], 'max_samples':[1,2,3,4,5], 'n_estimators':[2,5,10,20,50,100], }

というような3つのハイパーパラメータをチューニングする場合

gs = GridSearchCV( estimator = BaggingClassifier(), param_grid = param_grid, cv=5 ) gs.fit(x_train,y_train) gs.best_params_ >> {'max_features': 2, 'max_samples': 5, 'n_estimators': 100}

というように一番スコアがよかったハイパラのセットは抽出できたのですが、ベストだけではなく、その前後なども含めて段階的にみるためにヒートマップにプロットしようとしました。

import itertools import seaborn as sns params = [k for k in gs.cv_results_.keys() if k.startswith('param_')] params for ele1, ele2 in itertools.combinations(params,2): print(ele1,',',ele2) index = ele1 columns = ele2 values= 'mean_test_score' # {ele} params_dict = {k: gs.cv_results_[k] for k in {index, columns, values}} params_df = pd.DataFrame(params_dict) params_pivot = params_df.pivot(index=index,columns=columns,values=values) sns.heatmap(params_pivot)

しかしヒートマップは2軸対応らしくて

>> ValueError: Index contains duplicate entries, cannot reshape

というエラーがでました。
3や5つなどなどのハイパーパラメータも試したいのですがどのように視覚化して確かめるのがよいでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

一般的な回答はありませんが、この問題に限定してやりようはあります。

3つのハイパーパラメータが、離散的かつ取りうる値が少ないですので、**「max_features × max_samples の 5×5のヒートマップ」「n_estimatorsごとに6種類並べる」**のが近道です。

3つのハイパーパラメータが連続的な場合、上記を応用して、2次元ヒートマップを細かくたくさん作り、GIFアニメっぽく表現するのも面白いかもしれません。

投稿2021/02/07 07:12

toast-uz

総合スコア3266

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問