Classify
組込み分類器のリスト »Classify[{in1class1,in2class2,…}]
例 iniから classiを予測しようとするClassifierFunctionを生成する.
Classify[data,input]
与えられた訓練例から input に関連付けられた出力を予測しようとする.
Classify[data,input,prop]
指定された特性 prop を予測と相対的に計算する.
詳細とオプション
- Classifyは,観測されたパターンに基づいてデータをクラスに分類するアルゴリズムの訓練に使われる.
- 分類は,電子メールのフィルタリング,画像や手書きの認識,パターン識別に基づく医療診断,ビジネス分析における顧客行動の予測等によく使われる,教師あり学習のアプローチである.
- Classifyは,数値,テキスト,サウンド,画像,それらの組合せを含む,さまざまなデータタイプに使うことができる.
- 複雑な式は数やクラスのようなより簡単な特徴に自動的に変換される.
- 最終的なモデルタイプとハイパーパラメータ値は,訓練データについての相互検定を使って選択される.
- 訓練 data は以下の構造を持つことができる.
-
{in1out1,in2out2,…} 入出力間のRuleのリスト {in1,in2,…}{out1,out2,…} 入力と対応する出力の間のRule {list1,list2,…}n 出力としての各Listの n 番目の要素 {assoc1,assoc2,…}"key" 出力としての各Associationの"key"要素 Dataset[…]column 出力としてのDatasetの指定されたcolumn - data の特殊形には以下がある.
-
"name" 組込みの分類器関数 FittedModel[…] ClassifierFunctionに変換されたフィットモデル NetChain[…],NetGraph[…] 分類器を表すネットをClassifierFunctionに変換する - 各例の入力 iniは,単一のデータ要素,リスト{feature1, …},あるいは連想<"feature1"value1,… >でよい.
- 各例の出力 outiは,文字列,整数,あるいはブール値のような任意の原子式でよい.
- 予測の特性 prop はClassifierFunctionにおけるのと同じで,以下がある.
-
"Decision" 確率と効用関数に基づく最良クラス "TopProbabilities" 最もあり得るクラスの確率 "TopProbabilities"n n 番目に最もあり得るクラスの確率 "Probability"class 特定のクラスの確率 "Probabilities" 可能なすべてのクラスについての確率の連想 "SHAPValues" 各例についてのシャープレイ加算特徴の説明 "Properties" 使用可能な全特性のリスト - "SHAPValues"は,さまざまな特徴を削除し次に合成した結果の予測を比較することで特徴の貢献度を評価する.オプションMissingValueSynthesisを使って欠測値を合成する方法が指定できる.SHAPの説明は訓練出力の平均からの偏差として与えられる."SHAPValues"n を使ってSHAPの説明の数値推定に使われるサンプル数が制御できる.
- 組込み分類器関数の例
-
"CountryFlag" 画像の国旗がどこの国のものか "FacebookTopic" Facebookの投稿が何の話題についてのものか "FacialAge" 顔から推測される年齢 "FacialExpression" 顔が表している感情のタイプ "FacialGender" 顔から推測される性別 "Language" テキストがどの自然言語のものか "LanguageExtended" テキストの言語(希少言語を含む) "NameGender" 名前の性別 "NotablePerson" 画像がどの著名人のものか "NSFWImage" 画像が「職場にふさわしくない」とみなされるかどうか "Profanity" テキストに不敬な言葉が含まれているかどうか "ProgrammingLanguage" どのプログラミング言語のテキストが入っているか "Sentiment" ソーシャルメディアの投稿の感情 "Spam" 電子メールが迷惑メールかどうか "SpokenLanguage" 音声録音が何語のものか - 使用可能なオプション
-
AnomalyDetector None 分類器が使う異常検出器 AcceptanceThreshold Automatic 異常検出器の稀少確率閾値 ClassPriors Automatic クラスの明示的な優先確率 FeatureExtractor Identity 学習対象となる特徴をどのように抽出するか FeatureNames Automatic 入力データに割り当てる特徴名 FeatureTypes Automatic 入力データに仮定する特徴タイプ IndeterminateThreshold 0 どの確率未満でIndeterminateを返すか Method Automatic 使用する分類アルゴリズム MissingValueSynthesis Automatic 欠測値の合成方法 PerformanceGoal Automatic パフォーマンスのどの面について最適化するか RandomSeeding 1234 どのような擬似乱数生成器のシードを内部的に使うべきか RecalibrationFunction Automatic クラス確率をどのように後処理するか TargetDevice "CPU" 訓練を行うターゲットデバイス TimeGoal Automatic 分類器の訓練にどのくらい時間をかけるか TrainingProgressReporting Automatic 訓練中の進捗状況をどのようにレポートするか UtilityFunction Automatic 実際のクラスおよび予測されたクラスの関数としての効用 ValidationSet Automatic 生成されたモデルを確かめるためのデータ - 次は,Methodの可能な設定である.
-
"ClassDistributions" 学習済みの分布を使って分類する "DecisionTree" 決定木を使って分類する "GradientBoostedTrees" 勾配ブースティングで訓練された木のアンサンブルを使って分類する "LogisticRegression" 特徴の線形結合からの確率を使って分類する "Markov" 特徴のシーケンスにマルコフ(Markov)モデルを使って分類する(テキスト,トークンのバッグ等のみ) "NaiveBayes" 特徴の確率的独立性を仮定して分類する "NearestNeighbors" 最近傍の例から分類する "NeuralNetwork" 人工のニューラルネットワークを使って分類する "RandomForest" 決定木のBreiman–Cutlerアンサンブルを使って分類する "SupportVectorMachine" サポートベクターマシンを使って分類する - FeatureExtractor"Minimal"を使うことは,内部処理をできるだけ簡単にすることを意味する.
- PerformanceGoalの可能な設定値
-
"DirectTraining" モデルを検索することなしに,直接データ集合全体について訓練する "Memory" 分類器の保存条件を最小にする "Quality" 分類器の確度を最大にする "Speed" 分類器のスピードを最大にする "TrainingSpeed" 分類器の作成に使う時間を最短にする Automatic スピード,確度,メモリの自動トレードオフ {goal1,goal2,…} goal1, goal2等を自動的に組み合せる - TrainingProgressReportingの設定として以下を使うことができる.
-
"Panel" 動的に更新されるグラフィカルなパネルを表示する "Print" Printを使って定期的に情報をレポートする "ProgressIndicator" 簡単なProgressIndicatorを表示する "SimplePanel" 学習曲線なしでパネルを動的に更新する None 情報は何もレポートしない - RandomSeedingの可能な設定
-
Automatic 関数が呼び出されるたびに自動的にシードを変える Inherited 外部シードの乱数を使う seed 明示的な整数または文字列をシードとして使う - Classify[ClassifierFunction[…],FeatureExtractorfe]では,FeatureExtractorFunction[…] fe は,既存の特徴抽出器の先頭に追加される.
- 得られた ClassifierFunction[…]にInformationを使うことができる.
例題
すべて開くすべて閉じる例 (2)
スコープ (33)
データ形式 (7)
データ型 (13)
数量 (1)
組込み分類器 (9)
"Language"組込み分類器を使ってテキストが書かれた言語を検出する:
オプションClassPriorsで分類器をいくつかの言語に限定する:
"FacebookTopic"組込み分類器を使ってFacebookの投稿のトピックを検出する:
見分けられなかったトピックあるいは言語はIndeterminateとして返される:
"CountryFlag"組込み分類器を使って国旗から国を認識する:
"NameGender"組込み分類器を使って,名前からその人の推定される性別を得る:
"NotablePerson"組込み分類器を使って与えられた画像が表している著名人が誰かを判別する:
"Sentiment"組込み分類器を使ってソーシャルメディアのメッセージに対する感情を推定する:
"Profanity"組込み分類器を使って,テキストに暴言が含まれている場合はTrueを返すようにする:
オプション (23)
AnomalyDetector (1)
ClassPriors (1)
FeatureExtractor (3)
FeatureExtractorFunctionをサンプルのデータ集合について訓練する:
特徴抽出器関数をClassifyの前処理ステップとして使う:
FeatureNames (2)
名前付きの特徴の訓練集合で分類器を訓練し,FeatureNamesを使って順序を設定する:
FeatureTypes (2)
IndeterminateThreshold (1)
Method (3)
MissingValueSynthesis (1)
欠落値の合成を設定して,既知の値が与えられた場合に各欠落変数を推定される最も可能性が高い値で置換する(これがデフォルト動作である):
欠落変数を既知の値を条件としてランダムなサンプルで置換する:
数多くのランダムなデータの補完を平均することが大抵の場合は最良の策で,補完で引き起こされる不確実性も得ることができる:
訓練中に学習メソッドを指定してデータの分布の学習方法を制御する:
"KernelDensityEstimation"分布を使って欠落値がある例を条件値に分類する:
既存のLearnedDistributionを訓練時に与えることで,訓練中と後の評価での欠落値の補完にこれを使うようにする:
既存のLearnedDistributionを指定して個々の評価のために欠落値を合成する:
RecalibrationFunction (1)
PerformanceGoal (1)
TargetDevice (1)
ニューラルネットワークを使ってシステムのデフォルトGPUで分類器を訓練し,AbsoluteTimingを見る:
TimeGoal (2)
TrainingProgressReporting (1)
UtilityFunction (1)
アプリケーション (10)
タイタニック号の生存者 (2)
フィッシャーのアヤメ (3)
画像認識 (3)
特徴の説明 (1)
各画素を(速度を上げるために)独立したものとして扱うデータの簡単な分布を学習する:
"SHAPValues"特性を使って例の各画素が予想されたクラスにどのように影響するかを推定する:
Logを取って「オッズ乗数」SHAP値を0を中心としたスケールに変換する:
考えられる問題 (1)
おもしろい例題 (2)
各メソッドについて,さまざまなクラスの確率密度を反映するように,色を混合する:
ボックスに書き込んで,データ集合ExampleData[{"MachineLearning","MNIST"}]について訓練されたロジスティック分類器を検定する:
テキスト
Wolfram Research (2014), Classify, Wolfram言語関数, https://reference.wolfram.com/language/ref/Classify.html (2024年に更新).
CMS
Wolfram Language. 2014. "Classify." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2024. https://reference.wolfram.com/language/ref/Classify.html.
APA
Wolfram Language. (2014). Classify. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/Classify.html