目次
導入
概要
目次
分類モデリング:概要
基本的な分類モデルの構築
1。データ準備
2。ロジスティック回帰
3。サポートベクターマシン(SVM)
4。決定ツリー
Tensorflowを備えたニューラルネットワーク
間違いを特定します
グリッド検索を使用したロジスティック回帰の改善の例
早期停止とモデルのチェックポイント
さまざまなメトリックの重要性を理解する
モデルパフォーマンスの視覚化
結論
よくある質問
ホームページ テクノロジー周辺機器 AI 分類モデリングでこれらの間違いを犯していますか?

分類モデリングでこれらの間違いを犯していますか?

Apr 14, 2025 am 10:02 AM

導入

機械学習モデルを評価することは、最終的なステップではなく、成功のキーストーンです。現実世界のプレッシャーで崩れるのを見つけるためだけに、高い精度で魅了する最先端のモデルを構築することを想像してください。評価は、メトリックを刻むだけではありません。それは、あなたのモデルが野生で一貫して機能することを保証することです。この記事では、最も有望な分類モデルでさえ脱線させることができる一般的な落とし穴に飛び込み、モデルを良好から例外に引き上げることができるベストプラクティスを明らかにします。分類モデリングタスクを信頼できる効果的なソリューションに変えましょう。

概要

  • 分類モデルの構築:段階的なガイダンスを使用して、堅実な分類モデルを構築します。
  • 頻繁な間違いを特定する:分類モデリングにおける一般的な落とし穴を見つけて避けます。
  • 過剰フィッティングを理解する:過剰適合を理解し、モデルでそれを防ぐ方法を学びます。
  • モデル構築スキルの向上:ベストプラクティスと高度なテクニックでモデル構築スキルを向上させます。

目次

  • 導入
  • 分類モデリング:概要
  • 基本的な分類モデルの構築
    • 1。データ準備
    • 2。ロジスティック回帰
    • 3。サポートベクターマシン(SVM)
    • 4。決定ツリー
    • 5。Tensorflowを備えたニューラルネットワーク
  • 間違いを特定します
  • グリッド検索を使用したロジスティック回帰の改善の例
  • Tensorflowを備えたニューラルネットワーク
  • さまざまなメトリックの重要性を理解する
  • モデルパフォーマンスの視覚化
  • 結論
  • よくある質問

分類モデリング:概要

分類問題では、独立変数を使用してターゲット変数のラベルを予測するモデルを構築しようとします。ラベル付きのターゲットデータを扱うため、ロジスティック回帰、SVM、意思決定ツリーなどの教師付き機械学習アルゴリズムが必要です。分類問題を解決するためのニューラルネットワークモデルも検討し、人々が犯す可能性のある一般的な間違いを特定し、それらを回避する方法を決定します。

基本的な分類モデルの構築

Kaggleの日付フルーツデータセットを使用して、基本的な分類モデルの作成を実証します。データセットについて:ターゲット変数は、7種類の日付果物で構成されています:Barhee、Deglet Nour、Sukkary、Rotab Mozafati、Ruthana、Safawi、Sagai。データセットは、7つの異なる日付のフルーツ品種の898枚の画像で構成され、34の機能が画像処理技術を通じて抽出されました。目的は、属性に基づいてこれらの果物を分類することです。

1。データ準備

PDとしてパンダをインポートします

sklearn.model_selectionからimport train_test_splitから

Sklearn.Preprocessing Import StandardScalerから

#データセットをロードします

data = pd.read_excel( '/content/date_fruit_datasets.xlsx')

#データを機能とターゲットに分割します

x = data.drop( 'class'、axis = 1)

y = data ['class']

#データセットをトレーニングとテストセットに分割します

x_train、x_test、y_train、y_test = train_test_split(x、y、test_size = 0.3、random_state = 42)

#機能スケーリング

scaler = startenscaler()

x_train = scaler.fit_transform(x_train)

x_test = scaler.transform(x_test) 
ログイン後にコピー

分類モデリングでこれらの間違いを犯していますか?

分類モデリングでこれらの間違いを犯していますか?

2。ロジスティック回帰

sklearn.linear_modelからロジスティスレッジプレッシャーをインポートします

sklearn.metrics Import quarty_scoreから

#ロジスティック回帰モデル

log_reg = logististregression()

log_reg.fit(x_train、y_train)

#予測と評価

y_train_pred = log_reg.predict(x_train)

y_test_pred = log_reg.predict(x_test)

# 正確さ

train_acc = quarchacy_score(y_train、y_train_pred)

test_acc = quarchacy_score(y_test、y_test_pred)

印刷(f'logistic回帰 - トレーニング精度:{train_acc}、テスト精度:{test_acc} ')
ログイン後にコピー

結果:

 - ロジスティック回帰 - 列車の精度:0.9538<br><br> - テスト精度:0.9222
ログイン後にコピー

また読む:ロジスティック回帰の紹介

3。サポートベクターマシン(SVM)

 Sklearn.svm Import Svcから

sklearn.metrics Import quarty_scoreから

#svm

svm = svc(kernel = 'linear'、確率= true)

svm.fit(x_train、y_train)

#予測と評価

y_train_pred = svm.predict(x_train)

y_test_pred = svm.predict(x_test)

train_accuracy = quarchacy_score(y_train、y_train_pred)

test_accuracy = quarchacy_score(y_test、y_test_pred)

印刷(f "svm -trainの精度:{train_accuracy}、テスト精度:{test_accuracy}")
ログイン後にコピー

結果:

 -SVM-列車の精度:0.9602<br><br> - テスト精度:0.9074
ログイン後にコピー

また読む:サポートベクターマシン(SVM)アルゴリズムに関するガイド

4。決定ツリー

Sklearn.TreeからImport DecisionTreeClassifierから

sklearn.metrics Import quarty_scoreから

#決定ツリー

tree = decisiontreeclassifier(random_state = 42)

tree.fit(x_train、y_train)

#予測と評価

y_train_pred = tree.predict(x_train)

y_test_pred = tree.predict(x_test)

train_accuracy = quarchacy_score(y_train、y_train_pred)

test_accuracy = quarchacy_score(y_test、y_test_pred)

印刷(f "決定ツリー - 列車精度:{train_accuracy}、テスト精度:{test_accuracy}")
ログイン後にコピー

結果:

 - 決定ツリー - トレーニングの正確性:1.0000<br><br> - テスト精度:0.8222
ログイン後にコピー

5。Tensorflowを備えたニューラルネットワーク

npとしてnumpyをインポートします

Sklearn.Preprocessing Import LabelEncoder、StandardScalerから

sklearn.model_selectionからimport train_test_splitから

Tensorflow.Kerasインポートモデル、レイヤーから

Tensorflow.keras.callbacksからImport Early -Stopping、ModelCheckpointから

#ラベルターゲットクラスをエンコードします

label_encoder = labelencoder()

y_encoded = label_encoder.fit_transform(y)

#トレインテストの分割

x_train、x_test、y_train、y_test = train_test_split(x、y_encoded、test_size = 0.2、random_state = 42)

#機能スケーリング

scaler = startenscaler()

x_train = scaler.fit_transform(x_train)

x_test = scaler.transform(x_test)

#ニューラルネットワーク

model = models.sequential([[

layers.dense(64、activation = 'lelu'、input_shape =(x_train.shape [1]、))、

layers.dense(32、activation = 'lelu')、

layers.dense(len(np.unique(y_encoded))、activation = 'softmax')#出力レイヤーサイズはクラスの数と一致することを確認します

]))

model.compile(optimizer = 'adam'、loss = 'sparse_categorical_crossentropy'、metrics = ['quarty'])

#コールバック

Early_Stopping = EarlyStopping(Monitor = 'Val_Loss'、Patience = 10、restore_best_weights = true)

model_checkpoint = modelcheckpoint( 'best_model.keras'、monitor = 'val_loss'、save_best_only = true)

#モデルをトレーニングします

history = model.fit(x_train、y_train、epochs = 100、batch_size = 32、validation_data =(x_test、y_test)、

callbacks = [Early_stopping、model_checkpoint]、verbose = 1)

#モデルを評価します

train_loss、train_accuracy = model.evaluate(x_train、y_train、verbose = 0)

test_loss、test_accuracy = model.evaluate(x_test、y_test、verbose = 0)

印刷(f "ニューラルネットワーク - 列車精度:{train_accuracy}、テスト精度:{test_accuracy}")
ログイン後にコピー

結果:

 - ニューラルネットワーク - 列車の精度:0.9234<br><br> - テスト精度:0.9278
ログイン後にコピー

また読む:Tensorflowを使用してニューラルネットワークを構築します

間違いを特定します

分類モデルは、有効性を損なう可能性のあるいくつかの課題に遭遇する可能性があります。信頼できるモデルを構築するには、これらの問題を認識して取り組むことが不可欠です。以下は、考慮すべき重要な側面です。

  1. 過剰適合と装着:
    • 交差検証:単一の列車テストの分割のみに依存しないでください。 K-fold交差検証を利用して、さまざまなデータセグメントでテストすることにより、モデルのパフォーマンスをよりよく評価します。
    • 正規化:非常に複雑なモデルは、データ内のノイズをキャプチャすることで繊細に栄養を与える可能性があります。剪定や正則化などの正則化方法を使用して、複雑さを罰する必要があります。
    • ハイパーパラメーターの最適化:ハイパーパラメーター(グリッドやランダム検索など)を徹底的に調査および調整して、バイアスと分散のバランスを取ります。
  2. アンサンブルテクニック:
    • モデルの集約:ランダムフォレストやグラデーションブーストなどのアンサンブル方法は、複数のモデルからの予測を組み合わせて、多くの場合、一般化が強化されます。これらの手法は、個々のモデルエラーを平均化することにより、過剰適合のリスクを軽減しながら、データの複雑なパターンをキャプチャできます。
  3. クラスの不均衡:
    • 不均衡なクラス:多くの場合、1つのクラスは他のクラスよりも少ない場合があり、偏った予測につながります。オーバーサンプリング、アンダーサンプリング、またはスモートなどの方法は、問題に応じて使用する必要があります。
  4. データリーク:
    • 意図しない漏れ:データリークは、トレーニングセットの外部からの情報がモデルに影響を与え、パフォーマンスメトリックが膨らんだときに発生します。テストデータがトレーニング中に完全に目に見えないままであり、ターゲット変数から派生した機能が注意して管理されることを保証することが重要です。

グリッド検索を使用したロジスティック回帰の改善の例

sklearn.model_selectionからインポートGridsearchcvから

#ロジスティック回帰のグリッド検索の実装

param_grid = {'c':[0.1、1、10、100]、 'solver':['lbfgs']}

grid_search = gridsearchcv(logististrecression(multi_class = 'multinomial'、max_iter = 1000)、param_grid、cv = 5)

grid_search.fit(x_train、y_train)

#最高のモデル

best_model = grid_search.best_estimator_

#テストセットで評価します

test_accuracy = best_model.score(x_test、y_test)

印刷(f "最高のロジスティック回帰 - テスト精度:{test_accuracy}")
ログイン後にコピー

結果:

 - 最高のロジスティック回帰 - テスト精度:0.9611
ログイン後にコピー

Tensorflowを備えたニューラルネットワーク

過剰適合を最小限に抑え、一般化を強化するための技術に焦点を当て、以前のニューラルネットワークモデルの改善に焦点を当てましょう。

早期停止とモデルのチェックポイント

早期の停止は、モデルの検証パフォーマンスの高原の場合、トレーニングを停止し、トレーニングデータノイズからの過度の学習を回避することで過剰適合を防ぎます。

モデルチェックポイントは、トレーニング全体で検証セットで最適なモデルを保存し、その後のトレーニングが過剰適合につながる場合でも、最適なモデルバージョンが保存されるようにします。

 npとしてnumpyをインポートします

Sklearn.Preprocessing Import LabelEncoder、StandardScalerから

sklearn.model_selectionからimport train_test_splitから

Tensorflow.Kerasインポートモデル、レイヤーから

Tensorflow.keras.callbacksからImport Early -Stopping、ModelCheckpointから

#ラベルターゲットクラスをエンコードします

label_encoder = labelencoder()

y_encoded = label_encoder.fit_transform(y)

#トレインテストの分割

x_train、x_test、y_train、y_test = train_test_split(x、y_encoded、test_size = 0.2、random_state = 42)

#機能スケーリング

scaler = startenscaler()

x_train = scaler.fit_transform(x_train)

x_test = scaler.transform(x_test)

#ニューラルネットワーク

model = models.sequential([[

layers.dense(64、activation = 'lelu'、input_shape =(x_train.shape [1]、))、

layers.dense(32、activation = 'lelu')、

layers.dense(len(np.unique(y_encoded))、activation = 'softmax')#出力レイヤーサイズはクラスの数と一致することを確認します

]))

model.compile(optimizer = 'adam'、loss = 'sparse_categorical_crossentropy'、metrics = ['quarty'])

#コールバック

Early_Stopping = EarlyStopping(Monitor = 'Val_Loss'、Patience = 10、restore_best_weights = true)

model_checkpoint = modelcheckpoint( 'best_model.keras'、monitor = 'val_loss'、save_best_only = true)

#モデルをトレーニングします

history = model.fit(x_train、y_train、epochs = 100、batch_size = 32、validation_data =(x_test、y_test)、

callbacks = [Early_stopping、model_checkpoint]、verbose = 1)

#モデルを評価します

train_loss、train_accuracy = model.evaluate(x_train、y_train、verbose = 0)

test_loss、test_accuracy = model.evaluate(x_test、y_test、verbose = 0)

印刷(f "ニューラルネットワーク - 列車精度:{train_accuracy}、テスト精度:{test_accuracy}")
ログイン後にコピー

分類モデリングでこれらの間違いを犯していますか?

さまざまなメトリックの重要性を理解する

  1. 精度:重要ですが、特に不均衡なクラス分布を扱う場合、精度はモデルのパフォーマンスを完全にキャプチャしない場合があります。
  2. 損失:損失関数は、予測値が真のラベルとどれだけうまく整合するかを評価します。損失値が小さく、精度が高いことを示します。
  3. 精度、リコール、およびF1スコア:精度は、正の予測の正確性を評価し、リコールはすべての肯定的なケースを特定することでモデルの成功を測定し、F1スコアは精度とリコールのバランスをとります。
  4. ROC-AUC :ROC-AUCメトリックは、しきい値設定に関係なく、クラスを区別するモデルの容量を定量化します。
 sklearn.metrics Import Classification_Report、Roc_auc_scoreから

#予測

y_test_pred_proba = model.predict(x_test)

y_test_pred = np.argmax(y_test_pred_proba、axis = 1)

#分類レポート

print(classification_report(y_test、y_test_pred))

#roc-auc

roc_auc = roc_auc_score(y_test、y_test_pred_proba、multi_class = 'ovr')

print(f'roc-aucスコア:{roc_auc} ')
ログイン後にコピー

分類モデリングでこれらの間違いを犯していますか?

モデルパフォーマンスの視覚化

トレーニング中のモデルのパフォーマンスは、精度と損失のために学習曲線をプロットし、モデルが過剰適合しているか過小装着しているかを示すことで見ることができます。過剰適合を防ぐために早期停止を使用しましたが、これは新しいデータに一般化するのに役立ちます。

 pltとしてmatplotlib.pyplotをインポートします

#トレーニングと検証の精度値をプロットします

plt.figure(figsize =(14、5))

plt.subplot(1、2、1)

plt.plot(history.history ['quarchasity'])

plt.plot(history.history ['val_accuracy'])

plt.title( 'モデル精度')

plt.xlabel( 'epoch')

plt.ylabel(「精度」)

plt.legend(['Train'、 'validation']、loc = '左上'))

#トレーニングと検証の損失値をプロットします

plt.subplot(1、2、2)

plt.plot(history.history ['loss'])

plt.plot(history.history ['val_loss'])

plt.title( 'モデル損失')

plt.xlabel( 'epoch')

plt.ylabel( 'loss')

plt.legend(['Train'、 'validation']、loc = '左上'))

plt.show()
ログイン後にコピー

分類モデリングでこれらの間違いを犯していますか?

結論

過剰適合や装着などの問題を防ぐためには、細心の評価が重要です。効果的な分類モデルの構築には、適切なアルゴリズムを選択してトレーニングする以上のものが含まれます。モデルの一貫性と信頼性は、アンサンブルメソッド、正規化、チューニングハイパーパラメーター、および相互検証を実装することで強化できます。私たちの小さなデータセットは大きな過剰適合を経験していないかもしれませんが、これらの方法を採用することで、モデルが堅牢で正確であることが保証され、実際のアプリケーションでの意思決定が改善されます。

よくある質問

Q1。正確さを超えて機械学習モデルを評価することが重要なのはなぜですか?

Ans。精度は重要なメトリックですが、特に不均衡なデータセットでは、常に完全な画像を与えるとは限りません。一貫性、堅牢性、一般化などの他の側面を評価することで、制御されたテスト条件だけでなく、さまざまなシナリオでモデルがうまく機能することが保証されます。

Q2。分類モデルを構築するときに避けるべき一般的な間違いは何ですか?

Ans。一般的な間違いには、過剰フィッティング、アンダーフィッティング、データの漏れ、クラスの不均衡を無視し、モデルを適切に検証できないことが含まれます。これらの問題は、テストでうまく機能するが、実際のアプリケーションでは失敗するモデルにつながる可能性があります。

Q3。分類モデルで過剰装着を防ぐにはどうすればよいですか?

Ans。過剰適合は、相互検証、正規化、早期停止、およびアンサンブル方法を通じて軽減できます。これらのアプローチは、モデルの複雑さのバランスをとり、新しいデータに適切に一般化することを保証します。

Q4。分類モデルのパフォーマンスを評価するためにどのメトリックを使用する必要がありますか?

Ans。精度を超えて、精度、リコール、F1スコア、ROC-AUC、損失などのメトリックを検討してください。これらのメトリックは、特に不均衡なデータを処理し、正確な予測を行う際に、モデルのパフォーマンスをより微妙に理解することを提供します。

以上が分類モデリングでこれらの間違いを犯していますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Meta Llama 3.2を始めましょう - 分析Vidhya Meta Llama 3.2を始めましょう - 分析Vidhya Apr 11, 2025 pm 12:04 PM

メタのラマ3.2:マルチモーダルとモバイルAIの前進 メタは最近、ラマ3.2を発表しました。これは、モバイルデバイス向けに最適化された強力なビジョン機能と軽量テキストモデルを特徴とするAIの大幅な進歩です。 成功に基づいてo

10生成AIコーディング拡張機能とコードのコードを探る必要があります 10生成AIコーディング拡張機能とコードのコードを探る必要があります Apr 13, 2025 am 01:14 AM

ねえ、忍者をコーディング!その日はどのようなコーディング関連のタスクを計画していますか?このブログにさらに飛び込む前に、コーディング関連のすべての問題について考えてほしいです。 終わり? - &#8217を見てみましょう

AVバイト:Meta&#039; s llama 3.2、GoogleのGemini 1.5など AVバイト:Meta&#039; s llama 3.2、GoogleのGemini 1.5など Apr 11, 2025 pm 12:01 PM

今週のAIの風景:進歩、倫理的考慮、規制の議論の旋風。 Openai、Google、Meta、Microsoftのような主要なプレーヤーは、画期的な新しいモデルからLEの重要な変化まで、アップデートの急流を解き放ちました

従業員へのAI戦略の販売:Shopify CEOのマニフェスト 従業員へのAI戦略の販売:Shopify CEOのマニフェスト Apr 10, 2025 am 11:19 AM

Shopify CEOのTobiLütkeの最近のメモは、AIの能力がすべての従業員にとって基本的な期待であると大胆に宣言し、会社内の重大な文化的変化を示しています。 これはつかの間の傾向ではありません。これは、pに統合された新しい運用パラダイムです

GPT-4o vs Openai O1:新しいOpenaiモデルは誇大広告に値しますか? GPT-4o vs Openai O1:新しいOpenaiモデルは誇大広告に値しますか? Apr 13, 2025 am 10:18 AM

導入 Openaiは、待望の「Strawberry」アーキテクチャに基づいて新しいモデルをリリースしました。 O1として知られるこの革新的なモデルは、推論能力を強化し、問題を通じて考えられるようになりました

ビジョン言語モデル(VLM)の包括的なガイド ビジョン言語モデル(VLM)の包括的なガイド Apr 12, 2025 am 11:58 AM

導入 鮮やかな絵画や彫刻に囲まれたアートギャラリーを歩くことを想像してください。さて、各ピースに質問をして意味のある答えを得ることができたらどうでしょうか?あなたは尋ねるかもしれません、「あなたはどんな話を言っていますか?

SQLに列を追加する方法は? - 分析Vidhya SQLに列を追加する方法は? - 分析Vidhya Apr 17, 2025 am 11:43 AM

SQLの変更テーブルステートメント:データベースに列を動的に追加する データ管理では、SQLの適応性が重要です。 その場でデータベース構造を調整する必要がありますか? Alter Tableステートメントはあなたの解決策です。このガイドの詳細は、コルを追加します

AIインデックス2025を読む:AIはあなたの友人、敵、または副操縦士ですか? AIインデックス2025を読む:AIはあなたの友人、敵、または副操縦士ですか? Apr 11, 2025 pm 12:13 PM

スタンフォード大学ヒト指向の人工知能研究所によってリリースされた2025年の人工知能インデックスレポートは、進行中の人工知能革命の良い概要を提供します。 4つの単純な概念で解釈しましょう:認知(何が起こっているのかを理解する)、感謝(利益を見る)、受け入れ(顔の課題)、責任(責任を見つける)。 認知:人工知能はどこにでもあり、急速に発展しています 私たちは、人工知能がどれほど速く発展し、広がっているかを強く認識する必要があります。人工知能システムは絶えず改善されており、数学と複雑な思考テストで優れた結果を達成しており、わずか1年前にこれらのテストで惨めに失敗しました。 2023年以来、複雑なコーディングの問題や大学院レベルの科学的問題を解決することを想像してみてください

See all articles