不均衡データ向けエンドツーエンドパイプライン
対策をきれいに組み合わせる
「不均衡データ向けエンドツーエンドパイプライン」はCoddyKit上の無料NLP Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはNLP Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 NLP Academyコースには全4レッスンが含まれています。
すべてを組み合わせる
ここまでの対策を、1つの整った処理の流れにまとめます。1つのPipelineにまとめることで、ベクトル化、リサンプリング、モデル処理を順番に実行できます。
必ず最初に分割する
まず層化分割を行い、訓練用とテスト用で少数派クラスの比率が同じになるようにします。これにより、正しい評価を守れます。
X_tr, X_te, y_tr, y_te = train_test_split(X, y, stratify=y)テキストをベクトル化する
TF-IDFを使って生のテキストを数値に変換し、分類器が学習できる特徴量を作ります。
tfidf = TfidfVectorizer()Pipeline内でリサンプリングする
imblearnのPipelineを使うと、SMOTEは訓練fold内だけで実行され、検証データやテストデータにリークすることがありません。
from imblearn.pipeline import Pipeline各段階をつなぐ
ベクトライザー、SMOTE、モデルの順に段階を並べます。Pipelineは、それらを1つのfit済みオブジェクトとして実行します。
pipe = Pipeline([('tf', tfidf), ('sm', SMOTE()), ('clf', LogisticRegression())])一度だけ、正しくfitする
Pipeline全体に対してfitを呼び出します。各ステップは、訓練データだけを使って順番に学習します。
pipe.fit(X_tr, y_tr)正しい方法で評価する
単純な正解率は使わないでください。分類レポートを使えば、少数派クラスの適合率、再現率、F1を明確に確認できます。
from sklearn.metrics import classification_report
print(classification_report(y_te, pipe.predict(X_te)))リークなしで検証する
Pipelineと層化交差検証を組み合わせ、各fold内で毎回リサンプリングが行われるようにします。
しきい値を調整する
Pipelineから確率を取得し、検証データで目標の再現率を達成できるしきい値を選びます。
proba = pipe.predict_proba(X_te)[:, 1]Pipeline全体を保存する
joblibを使ってfit済みのPipeline全体を保存すると、後で推論するときにすべてのステップを自動的に繰り返せます。
import joblib
joblib.dump(pipe, 'model.joblib')1つのオブジェクトで再現可能にする
ベクトル化、バランス調整、モデル処理が一体になっているため、結果の再現性が保たれ、見えにくいリークも防げます。🚀
クイックチェック
安全なPipelineについて、もう1問確認しましょう。
まとめ
層化し、ベクトル化し、Pipeline内でリサンプリングを行い、F1と再現率で評価します。しきい値を調整してから、すべてを保存してください。🚀
AI チューターと学ぶ Python — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 30
- レッスン
- 120
よくある質問
「不均衡データ向けエンドツーエンドパイプライン」レッスンは無料ですか?
はい。「不均衡データ向けエンドツーエンドパイプライン」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、NLP Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 NLP Academyコースには全4レッスンが含まれています。
「不均衡データ向けエンドツーエンドパイプライン」で何を学びますか?
対策をきれいに組み合わせる ブラウザで直接実行するハンズオンコードでNLP Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
NLP Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのNLP Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「不均衡データ向けエンドツーエンドパイプライン」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このNLP Academyレッスンでコードを書いて実行できますか?
はい。すべてのNLP Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 少数クラスが無視される理由
- リサンプリングとクラス重み
- しきい値と指標を選ぶ
- 不均衡データ向けエンドツーエンドパイプライン