機械学習関連の関数

機械学習関連の関数はMathematica9でもあります.教師なし学習のクラスタリングもver9で充分可能です.Mathematica10で初めて実装されたのだと勘違いしていたので,実際にMathematica10でどんな関数が追加されたのかを確認しました.

 

ドキュメントセンターの機械学習では次のように紹介されています.

機械学習

Wolfram言語には,PredictClassify等の高度に自動化された関数から,特定のメソッドや診断法に基づいた関数まで,統合された幅広い機械学習機能が含まれている.関数は,数値的,分類別,時系列,テキスト,画像等多くの種類のデータに適用できる.

一般的な教師あり学習

Classify  組込みの分類子を使ったり,例から学習したりして,データをカテゴリに分類する

ClassifierFunction  データに適用する分類子の記号表現

Predict  組込みの分類子を使ったり,例から学習したりして,データの値を予測する

PredictorFunction  データに適用する予測器の記号表現

ClassifierMeasurementsPredictorMeasurements  テストデータに対するの性能

ClassifierInformationPredictorInformation  モデル情報等

PerformanceGoal  ▪  Method  ▪  UtilityFunction  ▪  ClassPriors  ▪  IndeterminateThreshold

教師あり学習のための特定のメソッド

Nearest  最近傍を求める

FindFit  一般化された非線形フィットを求める

LinearModelFit  ▪  LogitModelFit  ▪  NonlinearModelFit  ▪  GeneralizedLinearModelFit  ▪ ProbitModelFit

TimeSeriesModelFit  さまざまな種類の時系列をフィットする

Interpolation  データ集合の値の補間を求める

FindSequenceFunction  離散数列を再現する関数を求める

FindHiddenMarkovStates  マルコフ(Markov)モデルで最も尤もらしい経路を求める

教師なし学習法

Eigensystem  ▪  SingularValueDecomposition  ▪  PrincipalComponents  ▪ KarhunenLoeveDecomposition

FindClusters  数値,テキスト,画像等のデータのクラスタを探す

ClusteringComponents  配列と画像の値を元にクラスタを探す

FindGraphCommunities  グラフ中のコミュニティやクラスタを探す

HiddenMarkovProcess  数値データの中のパターンを求める

SmoothKernelDistribution  データのカーネル密度推定を求める

データの準備 »

Standardize  平均がゼロで単位分散を持つようにデータを変換する

Clip  ▪  Rescale  ▪  Threshold  ▪  LogisticSigmoid  ▪  ImageAdjust

CountsBy  ▪  GroupBy  ▪  SortBy  ▪  DeleteDuplicates

データのフィルタリング »

MovingAverage  リスト,時系列などの移動平均を計算する

GaussianFilter  ▪  MeanFilter  ▪  MeanShiftFilter  ▪  LowpassFilter  ▪  ...

この中でMathematica10で新しく導入されたのはこちらです.

一般的な教師あり学習

Classify
ClassfierFunction
Predict
PredictorFunction
ClassifierMeasurements,
PredictorMeasurements
ClassifierInformation
PredictorInformation
UtilityFunction
IndeterminateThreshold

教師あり学習のための特定のメソッド

TimeSeriesModelFit
FindHiddenMarkovStates

教師なし学習法

HiddenMarkovProcess

データの準備 »

LogisticSigmoid
CountsBy
GroupBy

__

主に教師あり学習の関数が追加されているようです.例えばClassify関数の例題で画像のパターン認識をしています.

昼と夜を見分けられるように,分類子を訓練する:

In[1]:=
Click for copyable input
 
Out[1]=

例で検定する:

In[2]:=
Click for copyable input
 
Out[2]=

Classify関数が画像のどんな部分を特徴抽出して判別しているのか分からないけども,なんとなくパターン認識できいてる例ですね.