Pythonでの機械学習モデルのパフォーマンスを評価する方法は?
適切な評価指標を選択します。分類タスクは、精度、精度、リコール、F1スコア、ROC-AUC、および混乱マトリックスを使用し、回帰タスクはMAE、MSE、RMSE、R²を使用します。 2。scikit-learnを使用してインジケータを計算し、sklearn.metricsモジュールの関数を介して分類モデルと回帰モデルの評価を実装します。 3.クロス検証(Cross_val_scoreなど)を使用して、より堅牢なパフォーマンス評価を実行して、単一の分割によって引き起こされる逸脱を避けます。 4.オプションで、ROC曲線と混乱マトリックスサーモグラムを介してモデルのパフォーマンスを視覚化します。モデルを評価するための鍵は、問題に基づいて適切な指標を選択し、相互検証と視覚的包括的な分析を組み合わせて、モデル効果を正確に判断し、指標の誤用によって引き起こされる誤った結論を回避することです。
Pythonでの機械学習モデルのパフォーマンスを評価するには、問題の種類(分類、回帰など)に基づいて適切なメトリックとツールを選択し、 scikit-learn
などのライブラリを使用してそれらを計算することが含まれます。効果的に行う方法は次のとおりです。

1.適切な評価メトリックを選択します
最初のステップは、タスクに基づいて適切なメトリックを選択することです。
分類タスクの場合:
- 精度:正しい予測の割合。クラスがバランスが取れているときは良い。
-
精度、リコール、F1スコア:不均衡なデータセットに対してより有益です。
- 精度:予測されるすべての陽性のうち、実際のポジティブはいくつですか?
- Recall(感度) :実際のすべての肯定的なことのうち、正しく予測された人は何人いましたか?
- F1スコア:精度とリコールの高調波手段。
- ROC-AUC :モデルが予測をどれだけランク付けするかを測定します。確率出力によるバイナリ分類に役立ちます。
- 混乱マトリックス:詳細な分析のために、真の陽性、偽陽性などを示します。
回帰タスクの場合:
- 平均絶対誤差(MAE) :予測値と実際の値の平均絶対差。
- 平均四角エラー(MSE) :より大きなエラーをより重くペナルティします。
- ルート平均二乗エラー(RMSE) :元のスケールでのMSE。
- R²(R-squared) :モデルで説明される変動の割合(1に近い方が良い)。
2。scikit -learnを使用してメトリックを計算します
モデルがトレーニングされ、予測が行われたら、 sklearn.metrics
を使用してください。

例:分類
sklearn.model_selectionからimport train_test_splitから Sklearn.EnsembleインポートRandomForestClassifierから sklearn.metrics Import arquircy_score、precision_recall_fscore_support、roc_auc_score、compans_matrixから sklearn.datasetsからImport make_classificationから #サンプルデータを生成します x、y = make_classification(n_samples = 1000、n_features = 10、n_classes = 2、random_state = 42) x_train、x_test、y_train、y_test = train_test_split(x、y、test_size = 0.3、random_state = 42) #列車モデル Model = randomforestClassifier(random_state = 42) model.fit(x_train、y_train) y_pred = model.predict(x_test) y_prob = model.predict_proba(x_test)[:, 1]#ポジティブクラスの確率 # 評価する 精度=精度_score(y_test、y_pred) 精度、リコール、f1、_ = precision_recall_fscore_support(y_test、y_pred、平均= 'binary') auc = roc_auc_score(y_test、y_prob) cm = cuspry_matrix(y_test、y_pred) 印刷(f "精度:{精度:.3f}") print(f "precision:{precision:.3f}、recall:{recall:.3f}、f1:{f1:.3f}") 印刷(f "roc-auc:{auc:.3f}") print( "混乱マトリックス:") 印刷(cm)
例:回帰
Sklearn.EnsembleからImport RandomForestRegressorから sklearn.metrics Import Mean_Absolute_Error、Means_Squared_Error、R2_Scoreから sklearn.datasetsからImport make_regressionから #サンプルデータを生成します x、y = make_regression(n_samples = 1000、n_features = 5、nose = 0.1、random_state = 42) x_train、x_test、y_train、y_test = train_test_split(x、y、test_size = 0.3、random_state = 42) #列車モデル reg_model = randomforestregressor(random_state = 42) reg_model.fit(x_train、y_train) y_pred = reg_model.predict(x_test) # 評価する mae = mean_absolute_error(y_test、y_pred) mse = mean_squared_error(y_test、y_pred) rmse = mse ** 0.5 r2 = r2_score(y_test、y_pred) 印刷(f "mae:{mae:.3f}") 印刷(f "mse:{mse:.3f}") 印刷(f "rmse:{rmse:.3f}") 印刷(f "r²:{r2:.3f}")
3。堅牢な評価のための交差検証
単一の列車テストの分割の代わりに、相互検証を使用して、より信頼性の高い見積もりを取得します。
sklearn.model_selectionからImport cross_val_scoreから #分類用 cv_accuracy = cross_val_score(model、x、y、cv = 5、scoring = '精度') print(f "cv精度:{cv_accuracy.mean():。3f}( / - {cv_accuracy.std() * 2:.3f})")) #回帰の場合 cv_r2 = cross_val_score(reg_model、x、y、cv = 5、scoring = 'r2') print(f "cvr²:{cv_r2.mean():。3f}( / - {cv_r2.std() * 2:.3f})")
一般的なスコアリングオプション: 'accuracy'
、 'precision'
、 'recall'
、 'f1'
、 'roc_auc'
、 'r2'
、 'neg_mean_squared_error'
など。

4。パフォーマンスを視覚化する(オプションですが役立つ)
- ROC曲線:
sklearn.metrics Import roc_curveから pltとしてmatplotlib.pyplotをインポートします
fpr、tpr、_ = roc_curve(y_test、y_prob)plt.plot(fpr、tpr、label = f "roc curve(auc = {auc:.2f})")plt.plot([0、1]、[0、1]、 'k--')plt.xlabel plt.title( "roc curve")plt.legend()plt.show()
- **混乱マトリックスヒートマップ**: `` python シーボーンをSNSとしてインポートします sns.heatmap(cm、annot = true、fmt = 'd'、cmap = 'blues') plt.title( "Confrise Matrix") plt.ylabel( "実際の") plt.xlabel( "予測") plt.show()
基本的に、Pythonでモデルを評価することは、次のようになります。
- 問題に適したメトリックを選ぶ、
-
scikit-learn
関数を使用してそれを計算する、 - 相互検証による検証、
- オプションで結果を視覚化します。
それは複雑ではありませんが、間違ったメトリックを選択すること(不均衡なデータの精度など)を選択すると、誤解を招く可能性があります。そのため、「良いパフォーマンス」が実際に何を意味するのかを常に考えてください。
以上がPythonでの機械学習モデルのパフォーマンスを評価する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undress AI Tool
脱衣画像を無料で

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

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

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

Pyodbcのインストール:Pipinstallpyodbcコマンドを使用してライブラリをインストールします。 2.接続sqlserver:pyodbc.connect()メソッドを介して、ドライバー、サーバー、データベース、uid/pwdまたはtrusted_connectionを含む接続文字列を使用し、それぞれSQL認証またはWindows認証をサポートします。 3.インストールされているドライバーを確認します:pyodbc.drivers()を実行し、「sqlserver」を含むドライバー名をフィルタリングして、「sqlserverのodbcdriver17」などの正しいドライバー名が使用されるようにします。 4.接続文字列の重要なパラメーター

httpx.asyncclientを使用して、非同期httpリクエストを効率的に開始します。 1.基本的なGETリクエストは、asyncwithを介してクライアントを管理し、awaitclient.getを使用して非ブロッキングリクエストを開始します。 2。asyncio.gatherを組み合わせてasyncio.gatherを組み合わせると、パフォーマンスが大幅に向上する可能性があり、合計時間は最も遅いリクエストに等しくなります。 3.カスタムヘッダー、認証、base_url、タイムアウト設定をサポートします。 4。投稿リクエストを送信してJSONデータを伝達できます。 5.同期非同期コードの混合を避けるために注意してください。プロキシサポートは、クローラーやAPI集約、その他のシナリオに適したバックエンド互換性に注意を払う必要があります。

Pythoncanbeoptimizedformemory-boundoperationsは、ヘッドゲネレーター、EfficientDataStructures、およびManagingObjectlifetimes.first、Usegeneratoratoratoratoratoratoraturatussを使用していることを確認してください

この記事の目的は、Sqlalchemyの初心者がCreate_Engineを使用したときに遭遇した「removedin20warning」警告を解決することを支援することを支援することを支援することを支援することを目的としています。この記事では、この警告の原因を詳細に説明し、特定の手順とコード例を提供して、警告と接続の問題を排除し、データベースをスムーズにクエリして操作できるようにします。

shutil.rmtree()は、ディレクトリツリー全体を再帰的に削除するPythonの関数です。指定されたフォルダーとすべてのコンテンツを削除できます。 1.基本的な使用法:shutil.rmtree(PATH)を使用してディレクトリを削除すると、FilenotFounderror、PermissionError、その他の例外を処理する必要があります。 2。実用的なアプリケーション:一時的なデータやキャッシュディレクトリなど、サブディレクトリとファイルを1回クリックして含むフォルダーをクリアできます。 3。注:削除操作は復元されません。 FilenotFounderrorは、パスが存在しない場合に投げられます。許可またはファイル職業のために失敗する可能性があります。 4.オプションのパラメーター:INGRORE_ERRORS = trueでエラーを無視できます

対応するデータベースドライバーをインストールします。 2。CONNECT()を使用してデータベースに接続します。 3.カーソルオブジェクトを作成します。 4。Execute()またはexecuteMany()を使用してSQLを実行し、パラメーター化されたクエリを使用して噴射を防ぎます。 5。Fetchall()などを使用して結果を得る。 6。COMMING()は、変更後に必要です。 7.最後に、接続を閉じるか、コンテキストマネージャーを使用して自動的に処理します。完全なプロセスにより、SQL操作が安全で効率的であることが保証されます。

Pythonは、ETLプロセスを実装するための効率的なツールです。 1。データ抽出:データベース、API、ファイル、およびその他のソースからデータを抽出できます。Pandas、Sqlalchemy、Requests、その他のライブラリを介して。 2。データ変換:パンダを使用して、クリーニング、タイプ変換、関連性、集約、その他の操作を使用して、データの品質を確保し、パフォーマンスを最適化します。 3。データの読み込み:PandasのTO_SQLメソッドまたはクラウドプラットフォームSDKを使用して、ターゲットシステムにデータを書き込み、書き込み方法とバッチ処理に注意してください。 4。ツールの推奨事項:気流、ダグスター、長官は、ログアラームと仮想環境を組み合わせて、安定性と保守性を向上させるために、プロセスのスケジューリングと管理に使用されます。

psycopg2.pool.simpleconnectionPoolを使用して、データベース接続を効果的に管理し、頻繁な接続の作成と破壊によって引き起こされるパフォーマンスオーバーヘッドを回避します。 1.接続プールを作成するときは、接続プールが正常に初期化されていることを確認するために、接続パラメーターとデータベース接続パラメーターの最小数と最大数を指定します。 2。getConn()を介して接続を取得し、putconn()を使用して、データベース操作を実行した後に接続をプールに戻します。絶えずconn.close()を呼び出すことは禁止されています。 3. SimpleConnectionPoolはスレッドセーフであり、マルチスレッド環境に適しています。 4.コンテキストマネージャーと組み合わせてコンテキストマネージャーを実装して、例外が記載されているときに接続を正しく返すことができることを確認することをお勧めします。
