機械学習関連の関数
機械学習関連の関数はMathematica9でもあります.教師なし学習のクラスタリングもver9で充分可能です.Mathematica10で初めて実装されたのだと勘違いしていたので,実際にMathematica10でどんな関数が追加されたのかを確認しました.
ドキュメントセンターの機械学習では次のように紹介されています.
機械学習
Wolfram言語には,PredictやClassify等の高度に自動化された関数から,特定のメソッドや診断法に基づいた関数まで,統合された幅広い機械学習機能が含まれている.関数は,数値的,分類別,時系列,テキスト,画像等多くの種類のデータに適用できる.
一般的な教師あり学習
Classify — 組込みの分類子を使ったり,例から学習したりして,データをカテゴリに分類する
ClassifierFunction — データに適用する分類子の記号表現
Predict — 組込みの分類子を使ったり,例から学習したりして,データの値を予測する
PredictorFunction — データに適用する予測器の記号表現
ClassifierMeasurements,PredictorMeasurements — テストデータに対するの性能
ClassifierInformation,PredictorInformation — モデル情報等
PerformanceGoal ▪ Method ▪ UtilityFunction ▪ ClassPriors ▪ IndeterminateThreshold
教師あり学習のための特定のメソッド
Nearest — 最近傍を求める
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]:=
Out[1]=
In[2]:=
Out[2]=
Classify関数が画像のどんな部分を特徴抽出して判別しているのか分からないけども,なんとなくパターン認識できいてる例ですね.