DAY 29
13514 ワード
クロス検証
ホットアウトクロス検証
:1回のトレーニング/検証/テストグループ学習の方法
何か問題がありますか?
1.十分なデータがあれば、問題はありません.しかし、十分なデータがないと問題になります
2.検証セットのサイズが十分でなく、パーセンテージを縮小した場合、予測パフォーマンスの推定値が正しくありません.
モデルの選択
k-fold cross-validation(CV)
データをk個の集合に等分し,k個の集合ではk−1個の部分集合を用いて訓練し,残りの部分集合をテストデータとして検証する必要がある.
from sklearn.model_selection import cross_val_score
scores = cross_val_score(pipe, X_train, y_train, cv=k,
scoring='f1')
print(f'f1 for {k} folds:', scores) # K 만큼 score 나옴
scores.mean()
scores.std()
分類、回帰、クラスタなどにより得点が異なりますモデルスコアを表示するには、次のリンクを使用します.
The scoring parameter
TargetEncoder
カテゴリ値をターゲットの他の属性の平均値で置き換えるカテゴリ変数エンコーダ.
from category_encoders import TargetEncoder
encoder = TargetEncoder(min_samples_leaf=1, smoothing=1000)
df['Animal Encoded'] = encoder.fit_transform(df['Animal'], df['Target'])
特長
これは、通常、データセット全体のターゲット確率と混合して使用され、より小さな値の分布を減少させる.
ターゲットを使用して新しいプロパティを作成するため、ターゲット符号化に検証およびテストデータを含めることは、ターゲット漏洩(target expersion)の形式です.
ただし、訓練データセットのみから目標符号化を学習し、他の(検証、テスト)データセットに適用する
(+)データセット次元を追加しないので、単純で高速な符号化->を符号化の最初の試みとして使用できます
(-)ターゲットの分布に応じて変化しやすいため、厳密な検証が必要
TargetEncoderについて
Animal符号化
1.Animalのデータをグループ化し、0、1発生回数を計算する
正式な書類
リファレンス
リファレンス
ちょうパラメータちょうせい
カーブの検証(カーブの検証)
:スーパーパラメータの精度変化を示す
正式な書類
画像ソース
最適なスーパーパラメータの組み合わせを探すツール
GridSearchCVはDAY27
Randomized Search CV
:検証するスーパーパラメータの値範囲を指定した場合、すべての組合せを検証するためにランダムに値を指定します.
rt =RandomForestClassifier()
param = {
'max_depth':range(1, 21),
'max_leaf_nodes':range(5, 101, 5),
'criterion':['entropy','gini']
}
n_iter = 80
rs = RandomizedSearchCV(rt,
param_distributions=param,
n_iter=n_iter,
cv=5,
scoring='f1'
n_jobs=-1)
rs.fit(X_train, y_train)
print('최적 하이퍼파라미터: ',rs.best_params_)
print('f1: ', rs.best_score_)
best_estimator and refit
bestestimatorは,CV終了後に見つかった最適パラメータを用いて,すべての学習データ(すべての訓練データ)を持って再学習(再コンパイル)する.
from sklearn.metrics import f1_score
pipe2= rs.best_estimator_
y_pred = pipe2.predict(X_test)
f1 = f1_score(y_test, y_pred)
print(f'테스트세트 f1: ${f1:,.0f}')
ソース 調整時の各種事情
dists = {
'targetencoder__smoothing':[2.,20.,50.,60.,100.,500.,1000.],
'simpleimputer__strategy': ['mean', 'median'],
dists = {
'targetencoder__min_samples_leaf': randint(1, 10),
'randomforestregressor__max_features': uniform(0, 1)
ランダム関数を参照 調整時に推奨されるスーパーパラメータ
Reference
この問題について(DAY 29), 我々は、より多くの情報をここで見つけました https://velog.io/@ayi4067/DAY-29テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol