matlab-use-machine-learning-apps について
Classification Learner と Regression Learner を扱うエージェント向けの MATLAB スキルです。セッション設定、表形式データのモデル学習・比較、評価、解釈、エクスポートを支援し、検証データとテストデータの扱いも案内します。
主な機能
- 01学習器セッションと検証方法の設定
- 02モデルの学習・比較・選択
- 03指標の確認と結果のプロット
- 04PDP、LIME、Shapley によるモデル解釈
- 05モデルのエクスポートと学習コード生成
活用シーン
- 01学習器アプリで複数モデルを比較
- 02独立したテストデータで最終モデルを評価
- 03Simulink または Coder 向けにモデルをエクスポート
- 04モデルの判断を説明するプロットを作成
MCP 対応
MATLAB MCP の evaluate_matlab_code ツールを介して MATLAB と連携し、学習器アプリを操作します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ matlab/ matlab-agentic-toolkit --skill matlab-use-machine-learning-appsインストール後、Claude Code で/matlab-use-machine-learning-appsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
manifest.yamlreferences/api-explainability.mdapi-export-and-diagnostics.mdapi-metrics-and-options.mdapi-plots.mdapi-session-and-models.mdskill-guidance-details.mdscripts/+mlearnapp/+internal/+appcontroller/AlertDialogController.pAppController.pAppControllerBase.pAutoDismissConfirmDialogController.pCoderExportStubs.pCustomModelController.pExperimentExportStub.pExplainPlotController.pExportController.pImportController.pImportTestDataStubView.pModelOptionsController.pNewSessionDialogController.pResultsPlotController.pSessionController.pToolstripController.p詳細
Learner Apps AppController リファレンス
mlearnapp.internal.appcontroller.AppController を使うと、Classification Learner アプリと Regression Learner アプリにプログラムからアクセスできます。これらの Learner アプリを操作し、その状態を照会するために使用します。
ソース(実行時に読み込み):<skill-base-directory>/scripts/+mlearnapp/+internal/+appcontroller/AppController.p
API リファレンス(必要に応じて読み込み)
| 必要な操作 | 読み込むファイル |
|---|---|
| アプリの開く/閉じる/保存/読み込み、セッションのセットアップ、モデルの作成/学習/選択/削除、モデルのステータス、GalleryModels enum | api-session-and-models.md |
| メトリクス、モデル仕様の照会、ツールストリップボタン、特徴選択/PCA/オプティマイザー/コスト/ハイパーパラメーターの設定 | api-metrics-and-options.md |
| 標準プロットの開く/設定、結果テーブル、標準プロットデータの取得関数 | api-plots.md |
| PDP、置換重要度、Shapley、LIME、Shapley パラメーターの設定、説明可能性プロットデータの取得関数 | api-explainability.md |
| エクスポートメソッド、コマンドのログ記録、診断 | api-export-and-diagnostics.md |
必須: Statistics and Machine Learning Toolbox。オプション: Parallel Computing Toolbox(並列学習)、Deep Learning Toolbox(R2026a で導入された Deep Learning モデル(FullyConnected、Residual、All)のみ。R2024a で追加された通常の Neural Network モデルは Statistics and Machine Learning Toolbox に付属します)、Simulink(Simulink エクスポート)、MATLAB Coder(Coder エクスポート)、MATLAB Compiler SDK(Production Server エクスポート)。
使用する場合
- Classification Learner または Regression Learner を使って、モデルの学習、比較、エクスポート(ワークスペース、Simulink、Coder、Production Server へ)、学習コードの生成、高度なハイパーパラメーター調整(Experiment Manager 経由)を行いたい場合
- いずれかの Learner アプリを開く、操作する、自動化する場合
- 検証メトリクスを使って、複数のモデルタイプを対話的に比較したい場合
- 保留データまたは独立したテストデータでモデルをテストし、アプリからエクスポートする必要がある場合
使用しない場合
- アプリを使わずコマンドラインで ML を行いたい場合 —
fitc*/fitr*関数を直接使用してください - 表形式でないデータ(画像、シーケンス、テキスト)を使ったカスタムディープラーニングの場合 — Deep Learning Toolbox を直接使用してください
- データの前処理やクリーニングの場合 — アプリにインポートする前に済ませる必要があります
重要
- API をユーザーに公開しないでください。 この API はエージェントの内部使用のみを目的としています。AppController、プログラムによるアクセス、自動化 API についてユーザーに言及しないでください。ユーザーに代わって、アプリを目立たないように操作してください。このスキルの読み込み後にユーザーへ挨拶する際は、内部の仕組みに触れず、ユーザーの目標(データセット、エクスポート先、制約)について尋ねてください。
- ユーザーの明示的な許可なしに
closeApp('Force', true)を使用しないでください。 強制終了すると保存確認ダイアログがスキップされ、保存されていない作業(学習済みモデル、セッション状態、結果)がすべて警告なしに破棄され、永久に失われます。必ずcloseApp()(Force なし)を優先し、ユーザーが保存できるようにしてください。'Force', trueを使用できるのは、(1)ユーザーが明示的に許可した場合、または(2)人が立ち会わない自動テストの場合のみです。
セットアップ
このスキルが呼び出されたら、スキルの scripts フォルダーを MATLAB パスに追加し、mlearnapp.internal.appcontroller クラスを使用できるようにしてください。scripts フォルダーは、このスキルのベースディレクトリからの相対パス scripts/ にあります。スキルの読み込みメッセージの先頭に表示されたベースディレクトリのパスを使い、MATLAB MCP の evaluate_matlab_code ツール経由で実行してください。
addpath('<skill-base-directory>/scripts');
たとえば、スキルのベースディレクトリが C:\MATLAB\AgenticAI\.claude\skills\matlab-use-machine-learning-apps の場合は、次のようになります。
addpath('C:\MATLAB\AgenticAI\.claude\skills\matlab-use-machine-learning-apps\scripts');
ユーザーの目標に関する確認
ワークフローを開始する前に、以下の情報を確認してください。セッションを最初から適切に設定し、無駄な学習サイクルを避けるためです。各項目には、エージェントが把握しておくべきこと(内部向け)と、ユーザーへの質問方法(わかりやすい表現。ユーザーが機械学習の用語に慣れている様子がない限り、専門用語は避けてください)を記載しています。
- 最終的な目標/モデルの用途は何ですか?
- エージェントが把握しておくべきこと:
exportModelTo*の対象(workspace、Simulink、Coder、Production Server、Experiment Manager、または探索的な利用)。制約(Simulink ではカテゴリカル予測子を使用できない、Coder/Simulink でサポートされるモデルの一覧など)に影響します。 - ユーザーへの質問: 「最終的に、モデルをどのように使う予定ですか? たとえば、データの探索、レポートや図の作成、Simulink シミュレーション内での実行、組み込みデバイス向けの C/C++ コード生成、Web サービスとしてのデプロイ、MATLAB での予測などがあります。」
- エージェントが把握しておくべきこと:
- 検証方法。
-
エージェントが把握しておくべきこと: セッション開始時に
openAppで設定します。セッション中は固定され、後から変更するには新しいセッションを開始する必要があります。アプリのデフォルトは 5 分割交差検証('KFold', 5)です。データセットのサイズと学習コストに応じて選択してください。方法 選択する場合 構文 5 分割交差検証 小~中規模のデータ(数千行以下)、学習の速いモデル 'KFold', 5(デフォルト)20% ホールドアウト 大規模データ、学習の遅いモデル(アンサンブル、DL、最適化)、または時間に制約がある場合 'HoldOut', 0.2再代入 精度の推定は不要で、(楽観的な)学習データの精度を使って素早く反復したいとユーザーが明示している場合 'CrossVal', 'off' -
ユーザーへの質問: 「検証方法は開始時に設定すると固定されるため、2 点確認させてください。(1)データセットはおよそ何行ですか?(2)学習時間について考慮すべき上限はありますか? それとも、学習時間は問題になりませんか? 両方に合った検証方法を選びます。」
-
- 独立したテストデータセット。
- エージェントが把握しておくべきこと: 既存のテーブルで
importTestDataを使うか、TestDataFraction(例:0.2)でデータの一部を確保するか、テストを行わないか。テストデータは検証用データとは別のもので、最終モデルに対して一度だけ使用します。 - ユーザーへの質問: 「最終確認用に別のデータセットを取っておいてありますか? それとも、データの一部(たとえば 20%)を学習に使わずに確保し、最後にだけ使用しますか?」
- エージェントが把握しておくべきこと: 既存のテーブルで
- 性能要件。
- エージェントが把握しておくべきこと: 目標とする指標のしきい値(最小精度、最大 RMSE)、予測のレイテンシ、デプロイ時のスループット。
- ユーザーへの質問: 「モデルが満たす必要のある精度や速度の目標はありますか? たとえば、許容できる最低精度、サンプルあたりの最大予測時間、特定のデバイスでのスループットなどです。」
- モデルのサイズ/デプロイ環境。
- エージェントが把握しておくべきこと: 対象が組み込み環境やメモリに制約のある環境かどうか。該当する場合は、小型の学習器(線形モデル、単一の木、小規模な SVM)を優先し、
ModelSizeMetric(一般向け)またはModelSizeCoderMetric(Coder 固有)を確認します。 - ユーザーへの質問: 「このモデルは小型デバイス、組み込みシステム、またはメモリに制約のある環境で実行する必要がありますか? その場合は、小型でシンプルなモデルを優先します。」
- エージェントが把握しておくべきこと: 対象が組み込み環境やメモリに制約のある環境かどうか。該当する場合は、小型の学習器(線形モデル、単一の木、小規模な SVM)を優先し、
- 解釈可能性の必要性。
- エージェントが把握しておくべきこと: 解釈しやすいモデルの種類(木、線形モデル、判別分析)を優先するかどうか、また学習後に解釈用のプロット(Permutation Importance、PDP、LIME、Shapley)を作成する予定があるかどうか。
- ユーザーへの質問: 「規制当局、監査担当者、技術者ではない関係者などに、モデルの判断を説明する必要がありますか? それとも、精度だけを重視しますか?」
回答をもとに、最初からセッションを適切に設定してください。無駄な学習サイクルを避けるため、適切な予測子、検証方法、モデルの種類、エクスポート先を選択します。
ベストプラクティス
データとセットアップ
- テストデータの分割: アプリを開く前に、データの一部を独立したテストセットとして確保するかどうか、ユーザーに確認してください。ワークスペースに別のテストデータセットがすでにある場合は、それを使用してください。ない場合は、アプリを開く際に
TestDataFraction(例:0.2~0.25)を使ってデータを分割するか、後からテストデータをインポートする方法を提案してください。これにより、トレーニング後に偏りのない評価を行えるようになります。openAppの構文とパーティション分割用の NV 引数については、references/api-session-and-models.md#opening-the-appを参照してください。 - トレーニング前のデータ検査: モデルをトレーニングする前に、データに潜在的な問題がないか検査してください。以下を確認します:(1)欠損値 — モデルによって処理方法が異なり、NaN で失敗するものもあります。(2)クラス分布(分類) —
tabulateまたはgroupcountsを使って不均衡を検出します。(3)応答変数の分布(回帰) — 応答変数に変換が必要となる歪みや外れ値がないか確認します。(4)モデルの性能を歪める可能性がある数値予測子の外れ値。(5)情報を追加しない、定数またはほぼ定数の予測子。検査結果をユーザーに報告し、それに応じて前処理やモデルの選択を提案してください。 - ⚠ 前処理とデータリーク: データセットの集計統計量を使用する前処理(平均値/中央値による補完、IQR または z スコアに基づく外れ値の除去、標準化/正規化、ターゲットエンコーディングなど)をアプリにインポートする前に行うと、検証/テストのフォールドの情報がトレーニングに漏れ、過度に楽観的な指標が得られます。アプリは CV/ホールドアウトのフォールド内でこれらの処理を実行しません(各フォールドで適用されるのは、特徴選択のランキング、PCA、誤分類コスト行列のみです)。対処方法の実践的なガイダンスについては、
references/skill-guidance-details.md#preprocessing-and-data-leakageを参照してください。 - クラス不均衡への対処: データセットのクラスが不均衡(例:90%/10%)な場合は、以下を提案してください:(1)ブースティング中に多数派クラスをアンダーサンプリングすることで、不均衡データ向けに設計された
ClassificationRUSBoostedEnsemble(RUSBoost)。(2)app.setModelCostMatrix()でコスト行列を調整し、少数派クラスの誤分類により大きなペナルティを与える方法。(3)モデルの品質評価に、全体の正解率ではなく Macro F1 またはクラスごとの指標を使用する方法 — 不均衡データでは正解率が誤解を招くことがあります。どのクラスを正しく分類することがより重要か、ユーザーに確認してください。
特徴量エンジニアリング
- 特徴選択とランキング: 以下の場合に提案してください:(1)予測子が多い(20 個超)ためトレーニングが遅い、またはモデルが過学習する場合。(2)ユーザーがより単純で解釈しやすいモデルを希望する場合。(3)デプロイ時にモデルサイズを最小限にする必要がある場合。(4)一部の予測子が無関係または冗長だと分かっている場合。API:すべてのドラフトモデルには
app.setDefaultFeatureSelectionOptions(...)、特定のモデルにはapp.setModelFeatureSelectionOptions(...)を使用します。問題の種類と目的に応じたランキング方法の選び方については、references/skill-guidance-details.md#feature-selectionを参照してください。 - PCA: 以下の場合に PCA を提案してください:(1)予測子間の相関が高い(多重共線性)場合。(2)数値予測子が多く、情報をあまり失わずに次元削減してトレーニングを高速化できる場合。(3)ユーザーがモデルの複雑さを抑えたい場合。解釈可能性が重要な場合は、PCA を提案しないでください(PCA 成分から予測子の意味が失われます)。注:PCA は数値予測子にのみ適用されます — カテゴリ予測子は変更されずに保持され、変換後に連結されるため、混合データセットにも対応しています。すべてのドラフトモデルに設定するには
app.setDefaultPCAOptions('OnOff', true, 'PercentVarianceExplained', 95)を使用し、現在の/特定のモデルを対象とするにはapp.setModelPCAOptions('OnOff', true, 'PercentVarianceExplained', 95)を使用します。
モデルのトレーニングと選択
- モデルの比較: 複数のモデルをトレーニングした後、結果テーブル(
app.clickResultsTableToolstripButton())と結果比較プロット(app.openCompareResultsPlot())を開いて、ユーザーがモデルを並べて比較できるようにします。結果テーブルには、すべての検証(およびテスト)メトリクスが、並べ替え可能なテーブルに表示されます。結果比較プロットでは、単一のメトリクスを棒グラフで表示するか、2つの軸(例:精度と予測速度、または精度とモデルサイズ)でモデルを可視化し、トレードオフをすばやく分析できます。app.getResultsTableData()とapp.getCompareResultsPlotData()を使うと、プログラムからデータを読み取れます。最適なモデルをユーザーが選ぶ前に、これらの表示を提案してください。そうすることで、精度だけでなく、複数のメトリクスに基づいて判断できます。結果比較プロットの設定については、references/api-plots.md#compare-results-plot-configuration-r2024bを参照してください。 - 外部でトレーニングしたモデルのインポート: 比較対象に含める、ワークスペース内の事前トレーニング済みモデルがあるかどうかをユーザーに尋ねます。ワークスペースモデルに対応しています(R2026a 以降)。互換性要件、検証上の制限、インポートの詳細については、
references/skill-guidance-details.md#importing-modelsを参照してください。 - ハイパーパラメーターの最適化: デフォルトのプリセットでは満足できず、ユーザーに時間の余裕がある場合は、初回のモデル比較の 後に 提案します。最適化には
Optimizable*プリセット(例:ClassificationOptimizableTree)が必要です。通常のモデルを複製しても、最適化可能にはなりません。デフォルトは'bayesopt'、反復回数は30回です。小規模な空間を網羅的に探索する場合に限り'grid'を、大規模な空間をすばやく探索する場合は'random'を使います。時間に制約があるユーザーには、'HasTrainingTimeLimit', true, 'MaximumTrainingTimeInSeconds', Nを設定します。詳しくは、references/skill-guidance-details.md#hyperparameter-optimizationを参照してください。 - 並列およびバックグラウンドでのトレーニング: 次の場合は、並列計算(
app.toggleUseParallelButton())を有効にするよう提案します:(1)データセットが大きい場合(観測値が10K超、または予測子が50超)、(2)複数のモデルをトレーニングする場合、または多数の反復で最適化を実行する場合、(3)多数の分割を使って交差検証する場合。モデルのトレーニング中も MATLAB で作業を続けたいユーザーには、バックグラウンドトレーニング(app.toggleUseBackgroundTrainingCheckbox())または並列計算を有効にするよう提案します(チェックボックスは、ユーザーが Parallel Computing Toolbox を持っていない場合にのみ使用できます)。注意:並列計算には Parallel Computing Toolbox が必要です。 - モデルの反復ワークフロー: モデルタイプに有望な結果が見られるものの改善が必要な場合は、最適化に進む前に、手動での調整(複製 → 調整 → 比較)を優先します。ワークフローの手順、制約(Draft ステータスの要件、All プリセットの制限)、ヒントについては、
references/skill-guidance-details.md#model-iterationを参照してください。
評価と解釈可能性
- エクスポート前にテストする: 検証指標に基づいて最適なモデルを特定したら、独立したテストデータセットがあるか、必ずユーザーに確認してください。ホールドアウトデータでテストすると、未見データに対する汎化精度がわかります。これは、交差検証の精度だけよりも信頼性の高い指標です。
app.importTestData()を使ってテストデータを読み込み、app.clickTestSelectedModelToolstripButton()を使って評価してください。app.getCurrentModelTestDataMetrics()でテスト指標を報告し、エクスポート前にユーザーが十分な情報に基づいて判断できるようにしてください。 - テストするのは最適なモデルだけ: テストデータセットで複数のモデルをテストしないでください。テストセットは、偏りのない汎化性能の推定値を得るため、最終的に選択したモデルに対して一度だけ使用してください。同じテストセットで多くのモデルをテストしてから最適なものを選ぶと、テストの目的が損なわれます。テスト情報がモデル選択に漏れ込み、精度が過度に楽観的になります。テスト結果が不十分な場合は、テストセットで複数のモデルを再テストするのではなく、検証手法(特徴量エンジニアリング、ハイパーパラメーターの調整、異なるモデルタイプの試行など)を使ってモデルを改善するようユーザーに提案してください。
- 解釈可能性のプロット: 最適なモデルを特定してテストした後、予測について関係者に説明する必要がある場合、規制対象分野(医療、金融)に導入する場合、テスト精度が予想外に高い/低い場合、または予測への影響要因を特定したい場合は、解釈可能性のプロットを提案してください。利用可能なもの:Permutation Importance(全体的、高速)、Partial Dependence(予測因子ごとの効果)、LIME(局所的、観測ごと)、Shapley(全体的および局所的)。⚠ Shapley は大規模なデータセットや複雑なモデルでは時間がかかる場合があります。実行する前に、必ずユーザーに警告してください。 プロットごとの判断の補助、Shapley の計算コストを抑える方法、Permutation Importance と Shapley の選択については、
references/skill-guidance-details.md#interpretability-plotsを参照してください。Shapley/LIME の設定 API とプロットデータのフィールドについては、references/api-explainability.mdを参照してください。 - モデル分析のプロット: ワークフローの段階に応じて、プロットを提案してください。たとえば、学習後(分類/回帰)、モデルの比較時、最適化可能なモデルの場合、ニューラルネットワーク/DL の場合、ホールドアウトデータでのテスト後、またはデータ探索時です。目的ごとにどのプロットを開くべきかを段階ごとにまとめた一覧(API メソッド名を含む)については、
references/skill-guidance-details.md#plots-for-model-analysisを参照してください。
セッションとコードのエクスポート
- セッションの保存/読み込み(R2022a+): トレーニングに長い時間がかかった場合、ユーザーが後で続行したい場合、または結果を共有したい場合は、セッションの保存を提案します。重要な作業の後にアプリを閉じる前は、必ず保存を提案してください。保存/読み込み API とブロッキングダイアログの回避策については、
references/skill-guidance-details.md#session-managementを参照してください。 - トレーニングのワークフローをコードとしてエクスポートする:
app.clickGenerateCodeToolstripButton()を使うと、アプリのワークフローがスクリプトに変換されます。これは、ユーザーがアプリの外で作業したい場合、モデルをより大規模な MATLAB ワークフローに統合したい場合、トレーニングコードをバージョン管理したい場合、またはワークフローを自動化/スケジュールしたい場合に便利です。コードを文字列として取得する必要がある場合は、app.generateCode()の形式を使用します。データの前処理(特徴選択、PCA)、モデルのトレーニング、検証を含む.mトレーニング関数が生成されます。すべてのモデルタイプで使用できます。注:cvpartitionにおけるランダム化により、生成されたスクリプトを再実行してもアプリの結果が完全には再現されない場合があります。 - 結果をプログラムでエクスポートする:
app.exportPlotData('VariableName', 'myPlot')を使うと、現在アクティブなプロットのデータをワークスペースにエクスポートして、さらに分析できます。app.exportPlotToFigure()を使うと、アクティブなプロットを単独の MATLAB figure にエクスポートできます(画像として保存したり、カスタマイズしたりできます)。app.exportResultsTableToWorkspace('VariableName', 'myResults')またはapp.exportResultsTableToFile('results.csv')を使うと、結果テーブル(表示されている行と列のみ)をワークスペースまたは CSV ファイルにエクスポートできます。これらは、ユーザーが結果を共有したい場合、カスタムの可視化を作成したい場合、または調査結果をレポートに統合したい場合に便利です。エクスポートメソッドのシグネチャとパラメーターの全容については、references/api-export-and-diagnostics.md#programmatic-export-methodsを参照してください。
デプロイ用のエクスポート
- ワークスペースにエクスポート:
app.exportModelToWorkspace('MyModel')を使用します(コンパクトにエクスポートする場合は、オプションで'IncludeTrainingData', falseを指定します)。エクスポートされる内容(すべてのパス): トレーニングセット全体でトレーニングされた完全なモデル(CV フォールドモデルではありません)。そのため、エクスポートされる成果物は常に、利用可能なすべてのトレーニングデータで新たに適合されたモデルです。 - Simulink にエクスポート(R2024a 以降): モデルベース設計/コントローラーインザループ向けです。
app.exportModelToSimulink(...)を使用します。カテゴリカル予測子はサポートされていないため、早めに警告してください。制約の完全な一覧とサポートされているモデルタイプについては、references/skill-guidance-details.md#export-to-simulink-r2024aを参照してください。exportModelToSimulinkのパラメーター表については、references/api-export-and-diagnostics.md#export-model-to-simulink-r2024aを参照してください。 - Coder にエクスポート(R2025a 以降): C/C++ コード生成/組み込みターゲット向けです。
app.exportModelToCoder(...)を使用します。制約の一覧とサイズ設定のガイダンスについては、references/skill-guidance-details.md#export-to-coder-r2025aを参照してください。exportModelToCoderのパラメーター表については、references/api-export-and-diagnostics.md#export-model-to-coder-r2025aを参照してください。 - Experiment Manager にエクスポート(R2022a 以降): ハイパーパラメーター調整をより細かく制御する必要がある場合(編集可能な探索範囲、カスタム制約など)に提案してください。
app.createExperiment(...)を使用します。モデルはあらかじめトレーニングしておく必要があります。判断基準(アプリレベルの最適化ではなくこちらを使う場合、Learner アプリを使わない場合)については、references/skill-guidance-details.md#export-to-experiment-manager-r2022aを参照してください。 - Production Server にエクスポート: REST API/Web サービスのデプロイ向けです。
app.clickExportModelToProductionServerToolstripButton()を使用します。MATLAB Compiler SDK が必要です。references/skill-guidance-details.md#export-to-production-serverを参照してください。
最低リリース要件
機能ごとに必要な MATLAB リリースが定められています。それより古いリリースで機能を呼び出すとエラーになります。
| 機能 | 最低リリース |
|---|---|
| オプティマイザーオプションの設定 | R2019b |
| コスト行列の設定 | R2019b |
| Production Server へのエクスポート、Optimizable Neural Network モデル、Classification Kernel モデル | R2021b |
| セッションのファイルへの保存/読み込み、特徴量ランキング、Regression Kernel モデル | R2022a |
| 結果テーブル、部分依存プロット | R2022b |
| 実験の作成(Experiment Manager)、コンパクトなセッションのファイルへの保存、Efficient Linear 分類モデル(LogisticRegression、LinearSVM、All) | R2023a |
| Local Shapley、LIME、Efficient Linear 回帰モデル(LS、SVM、All)、Optimizable Efficient Linear、Optimizable Kernel | R2023b |
| Simulink へのモデルのエクスポート、Simulink の複数トレーニングプリセット(AllSimulink)、Neural Network モデル(Uni/Bi/Tri-Layered、All) | R2024a |
| Shapley 重要度/サマリー/依存プロット、結果比較プロット、適合率-再現率プロット、プロットデータのエクスポート、追加メトリクス(適合率、再現率、F1 スコア) | R2024b |
| Coder へのモデルのエクスポート、Codegen の複数トレーニングプリセット(AllCodegen)、置換重要度プロット、ROC 曲線比較プロット | R2025a |
| ワークスペースからのトレーニング済みモデルのインポート | R2026a |
| Deep Learning モデル(FullyConnected、Residual、All)、トレーニング進行状況プロット、ネットワークアナライザープロット、パーティションとデータセットのエクスポート | R2026a |
クイックリファレンス — 一般的なワークフロー
% 1. Open app with data
% Classification:
app = mlearnapp.internal.appcontroller.AppController.openApp('classification', Tbl, 'Response', 'KFold', 5);
% Regression:
% app = mlearnapp.internal.appcontroller.AppController.openApp('regression', Tbl, 'Price', 'KFold', 5);
% 2. Discover available model types and create models
% IMPORTANT: Always call getAvailableModelTypes to discover exact enum names.
% Do NOT guess enum names — they vary by category and release.
% Example: Naive Bayes is 'ClassificationGaussianNaiveBayes', not 'ClassificationNaiveBayes'
available = app.getAvailableModelTypes(); % all valid for this release
% 'Category' is a case-insensitive substring filter on the enum name
% (e.g., 'Tree', 'SVM', 'Ensemble', 'KNN', 'NeuralNetwork', 'Linear', 'Kernel', 'AllSimulink', ...).
% Call getAvailableModelTypes() with no filter first if unsure which substring will match.
treeModels = app.getAvailableModelTypes('Category', 'Tree');
% For guidance on picking an All-* preset family (AllQuickToTrain vs full All vs
% family-specific like AllTrees, AllSVM, AllEnsemble, AllLinear, AllKernel, etc.),
% see references/skill-guidance-details.md#multi-train-presets-all----which-to-pick
% For model type enum names, see references/api-session-and-models.md#gallerymodels-enum-reference
app.createModelType('ClassificationAllQuickToTrain');
% 2b. (Optional) Set hyperparameters on a DRAFT model BEFORE training
% Signature: app.setModelHyperparameterOptions(modelNumber, 'Param', value, ...)
% The first argument MUST be the model number string (e.g., '2', '3.1')
app.setModelHyperparameterOptions('2', 'BoxConstraint', 10, 'KernelScale', 2);
% 3. Train and wait
app.clickTrainToolstripButton();
app.waitForTrainingToComplete();
% 4. Compare models
app.clickResultsTableToolstripButton();
app.openCompareResultsPlot();
allMetrics = app.getAllModelMetrics();
% 5. Select best model (use model number from allMetrics)
% Classification: use AccuracyMetric (or MacroF1ScoreMetric for imbalanced data)
[~, bestIdx] = max([allMetrics.AccuracyMetric]);
% Regression: use RMSEMetric (lower is better) or RSquaredMetric (higher is better)
% [~, bestIdx] = min([allMetrics.RMSEMetric]);
app.selectModelByNumber(allMetrics(bestIdx).ModelNumber);
% 6. Test on held-out data
app.importTestData('testTable');
app.clickTestSelectedModelToolstripButton();
testMetrics = app.getCurrentModelTestDataMetrics();
% 7. Export
app.exportModelToSimulink('MyModel.slx');
% 8. Close app (use 'Force', true ONLY for automated testing — never without user permission)
app.closeApp('Force', true);
Copyright 2026 The MathWorks, Inc.