機械学習の用語集

# はじめに

本記事では、機械学習に関連する用語を @daikikatsuragawa なりに砕いた表現で紹介します。自身の備忘録も兼ねているため、知識が増え次第、気まぐれで随時更新、編集します。ご了承ください。

↓ぜひ、こちらと合わせてご覧ください。

https://qiita.com/daikikatsuragawa/items/7e102ba5607560f7952a

# 基礎

### 機械学習（machine learning）

人工知能（AI）のひとつの分野。人間が自然におこることをコンピュータで実現する技術や手法、研究分野。また、データから繰り返し学習し、データに隠されたパターンを発見すること。

### 手法（approaches）

機械学習におけるモデルの作成方法。

### アルゴリズム（algorithm）

機械学習における手法の中身となる具体的な計算式や計算方法。

### モデル（model）

コンピュータで処理が可能な形式の値を入力として受け取り、モデルの構成に採用されているアルゴリズムにより算出された予測および判断の結果を出力するもの。 関数のようなもの。

### データマイニング（data mining）

蓄積された大量のデータから興味深い規則性や知見を発見すること。

### ハイパーパラメーター

モデルの構築者が指定するパラメーター。学習時にアルゴリズムで決定されない。

# データ

### データセット（data set）

データの集合。

### 訓練データセット（training set）

機械学習モデル自体を学習および調整するためのデータセット。

### 検証データセット（validation set）

機械学習モデルの予測結果を評価するためのデータセット。
※これをテストデータセットと呼ぶ場合もある。

### テストデータセット（test set）

最終的な機械学習モデルの予測結果を評価するためのデータセット。

### 欠損値（missing value）

データセット上で欠けている値。

### 外れ値（outlier）

データセット上で他の値とは大幅に異なる値。

### 説明変数（explanatory variable）

目的変数を予測するために使用される変数。

### 目的変数（objective variable）

予測する対象の変数。ラベル。

### 質的変数（qualitative variable）

数値的に測定できない定性的な変数。

### 量的変数（quantitative variable）

数値的に測定できる定量的な変数。

### 系列データ（sequential data）

同質のデータを直列に配置された一連のデータ。（例：DNA系列、文字列）

### バスケットデータ（basket data）

ユーザが一回の取引で購入したアイテムの集合を蓄積させたデータ。

# 前処理

### 特徴量エンジニアリング（feature engineering）

生データを機械学習によって結果を生成しやすい状態に変換する手法。

### データクレンジング（data cleansing）

機械学習モデルが読み込むことができるように、生データの欠損値などを前処理する手法。

### スケーリング（feature scaling）

尺度を統一するために、ある基準に基づいて特徴量の取りうる値の範囲（スケール）を変換すること。スケーリングされていない複数の異なる特徴量をそのまま扱うと学習がうまくいかない場合がある。

### 正規化(normalization)

スケーリングのひとつ。特徴量の値を一定の範囲に収める変換。多くの場合、範囲は 0〜１ または -1〜1 と設定される。

### 標準化（standardization）

スケーリングのひとつ。特徴量を標準正規分布に近似させる変換。特徴量の平均を0、標準偏差を1にする。

### ダミー変数（dummy variable）

質的変数のように数値的に測定できないものに対して、数値を用いて表現した変数。またその変数に変換する手法。

# 手法

### 教師あり機械学習（supervised learning）

機械学習の1つの手法。“入出力の関係”を学習し、未知のデータのラベルを予測する。（例：分類、回帰など）

### 教師なし機械学習（unsupervised learning）

機械学習の1つの手法。潜在的な“データ構造”を検出する。（例：クラスタリングなど）

### 半教師あり学習（semi-supervised learning）

教師あり学習と教師なし学習を組み合わせた手法。従来のラベル付きデータセットによる教師あり学習と比較して、より高い予測精度で分類を実現することを目指して、ラベル付きデータセットに加えて、ラベルなしデータセットからも学習する。

### 強化学習（reinforcement learning）

機械学習の1つの手法。現在の状態から試行錯誤を通じて、“価値を最大化するようなアクション”を学習する。

### 回帰（regression）

入力値から実数値を予測する。

### 分類（classification）

入力値からカテゴリ値を予測する。

### 単回帰分析（single regression analysis）

回帰の一種。1つの入力値から1つの出力値を予測する。

### 重回帰分析（multiple regression analysis）

回帰の一種。複数の入力値から1つの出力値を予測する。

### 線形回帰（linear regression）

回帰によって連続値を予測する手法。説明変数の係数と切片を使用して値を予測する。

### ロジスティック回帰（logistic regression）

回帰による分類手法。線形回帰の出力をロジット関数に入力することで二値分類を実現する。損失関数を最小にするパラメータを求めるために微分が使用される。

### サポートベクターマシーン（support vector machine）

回帰による分類手法。各データの距離が最大となるマージンを最大化する超平面を算出する。

### 決定木（decision tree）

木構造のモデルによって分類する手法。上から１つの説明変数とその閾値によってデータを２つに分類し、さらに枝先で同様に別基準でデータを分類、これを繰り返すことで二値分類を実現する。情報利得の大きい順に特徴量が使用され、木が作られる。

### 回帰木（regression tree）

決定木と回帰を組み合わせた手法。決定木によって分割されたデータ群ごとに生成された回帰モデルを使用して予測する。

### ランダムフォレスト（random forest）

決定木とバギングを組み合わせた手法。決定木を大量に生成し、各決定木の結果を集計して予測する。他の機械学習アルゴリズムと比較すると、欠損値の穴埋めや標準化などのデータの前処理を必要としない。


### 勾配ブースティング木（gradient boosting）

決定木とブースティングを組み合わせた手法。
決定木を大量に生成し、各決定木の結果を集計して予測する手法。

### アンサンブル学習（ensemble learning）

複数の弱学習器を使用して精度を向上させる手法。

### ブースティング（boosting）

アンサンブル学習の一種。弱学習器を徐々に増やすことで予測精度を徐々に向上させる手法。

### バギング（bagging）

アンサンブル学習の一種。複数の弱学習器を並行して増やすことで予測精度を向上させる手法。

### k近傍法（k-nearest neighbor algorithm）

データを分類する手法。特徴空間における最も近い訓練データに基づく分類手法。

### k平均法（k-means clustering）

データを分類する手法。クラスタの平均値に基づき、kに分類する。

### 階層型クラスタリング（hierarchical clustering）

データを分類する手法。指定された変数からのデータ間の距離を定義し、その距離を使用してデータをクラスタに分類する。途中経過は階層のように表現でき、クラスタ数は計算後に指定、変更できる。

### 非階層型クラスタリング（non-hierarchical clustering）

データを分類する手法。指定されたクラスタ数に基づいて各データをランダムに各クラスタに割り当て、重心とデータ間の距離から再度データにクラスタを割り当てる処理を繰り返し、データをクラスタに分類する。クラスタ数は事前に指定する必要があり、後で変更はできない。

### 深層学習（deep learning）
多層（4層以上）のニューラルネットワーク（ディープニューラルネットワーク）による手法。教師なし学習。入力層、中間層、出力層の3種の層に分かれている。

### 入力層（input layer）

深層学習における、データの入力部分。

### 中間層

この層が多いほど複雑で正確な判断が可能。

### 出力層（output layer）

深層学習における、推定結果を出力する部分。

### アソシエーション分析（associations analysis）

データの組み合わせから相関の強い組み合わせのパターンを発見する手法。

### 協調フィルタリング（collaborative Filtering）

多数ユーザの意見や評価といった特徴を蓄積し、特徴に基づき算出した類似ユーザ群を特定する。そして、それら類似ユーザ群から高い評価を受けているアイテムを推薦する手法。

### アイテムベースレコメンド（item-based recommendation）

推薦対象者が高く評点を与えたアイテムと類似したアイテムを推薦する手法。

### ユーザベースレコメンド（user-based recommendation）

推薦対象者と似た嗜好をもつユーザ複数人が高い評点を与えており、推薦対象者が未だ手に入れていないアイテムを推薦する手法。

# 評価

### ホールドアウト法（holdout）

データセットを訓練データセットと検証データセットに分割し、モデルの精度を評価する手法。

### 交差検証（cross-validation）

データセットを繰り返し分割し、複数のモデルを訓練して評価し、複数のモデルの平均値を最終的な精度として評価する手法。

### K-分割交差検証（K-fold cross-validation）

はじめにデータセットをK個に分割し、そのうちの1つを訓練データセット、残りを検証データセットとし、モデルの精度を評価する。これをK回繰り返す。K個のモデルの平均値を最終的な精度として評価する手法。

### leave-one-out 交差検証（leave-one-out cross-validation）

データセットから１件のみをテストデータとし、残りを訓練データとする。そして、すべてのデータがテストデータになるよう繰り返し、それらの平均値を最終的な精度として評価する手法。

### 混同行列（confusion matrix）

二値分類におけるモデルの予測結果をまとめた表。下記の表のように「行」に実測値、「列」に予測値をおく。

||予測値が正|予測値が負|
|:-:|:-:|:-:|
|実測値が正|真陽性|真陰性|
|実測値が負|偽陽性|偽陰性|

### 真陽性（true positive）

正と予測して実際に正。

### 偽陽性（false positive）

正と予測したが実際は偽。

### 真陰性（true negative）

負と予測したが実際は正。

### 偽陰性（false negative）

負と予測して実際に負。

### 全体正解率（accuracy）	

予測全体のうち、正しく分類できた割合。

### 適合率（precision）

陽性であると予測した集合の中で、実際に陽性だった割合。

### 再現率（recall）

実際に陽性である集合の中で、陽性であると予測された割合。

### F値（F-measure）	

適合率と再現率の調和平均。

### ROC曲線（receiver operating characteristic curve）

真陽性率と真陰性率を組み合わせて作成した曲線。二項分類におけるモデルの評価に使用される。

### AUC（area under curve）

ROC曲線の積分値。二項分類における評価に使用される。一般的に面積が大きいほどモデルの性能が良い事を意味する。

### 平均二乗誤差（mean square error）

回帰におけるモデルの評価に使用される。実際の値とモデルによる予測値との誤差の二乗を平均したもの。

### 平均二乗平方根誤差（root mean squared error）

回帰におけるモデルの評価に使用される。実際の値とモデルによる予測値との誤差の二乗を平均して平方根をとったもの。

### 平均絶対誤差（mean absolute error）

回帰におけるモデルの評価に使用される。実際の値とモデルによる予測値との誤差の絶対値を平均したもの。

### 決定係数（coefficient of determination）

回帰直線の当てはまり具合を示すもの。

# 活用事例

### 音声認識

### 画像認識

### 自然言語処理

# 問題・課題・タスク

### 巡回セールスマン問題（traveling salesman problem）

訪れるべき箇所全てを巡回する経路の中で、距離が最も短くなる経路を探す問題。

# ツール・ライブラリ

### Python

汎用のプログラミング言語。コードがシンプル。機械学習のライブラリが豊富。

### R

統計解析向けのプログラミング言語で、その実行環境。機械学習のライブラリが豊富。

### NumPy

数値計算を行うためのライブラリ。

### pandas

表形式のデータを処理するためのライブラリ。

### TensorFlow

ニューラルネットワークやディープラーニングが実装されたライブラリ。

### scikit-learn

一般的な機械学習アルゴリズムが実装されたライブラリ。

### XGBoost

決定木アルゴリズムに基づいて勾配ブースティングを実装する機械学習ライブラリ。

### LightGBM

XGBoostと同様に、決定木アルゴリズムに基づいて勾配ブースティングを実装する機械学習ライブラリ。

### Jupyter Notebook

PythonやRなどの開発環境で、これらの利用が可能なツール。コードに加えメモを残すことができるというメリットがある。

### Anaconda

科学計算用のライブラリを一度にインストールできるPythonおよびR言語のオープンソースディストリビューション。

# プラットフォーム

### Kaggle

企業や研究者がデータを提供し、世界のデータサイエンティストが最適なモデルを求めて競争するプラットフォーム。

### SIGNATE

企業や研究者がデータを提供し、データサイエンティストが最適なモデルを求めて競争するプラットフォーム。日本版Kaggleのようなもの。

# その他

### 確率密度関数

連続型確率変数がある値をとるという事象の確率密度を記述する関数。（※確率＝確率密度関数の面積）

### ユークリッド距離

2点間の直線距離。

### マンハッタン距離

2点の各座標の差（の絶対値）の総和。

### ポアソン分布

稀に生じる事象についてモデル化したい場合に用いられる、離散型の確率分布。

# おわりに

本記事では、機械学習に関連する用語を私なりに砕いた表現で紹介しました。もし、追記するに値する用語や内容がありましたら、コメントなどをいただければ幸いです。

（2019年11月12日追記）
[Qiita週間ストック数ランキング【自動更新】](https://qiita.com/kai_kou/items/180a91fd88dbbbd746f6#62%E4%BD%8D-%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92%E3%81%AE%E7%94%A8%E8%AA%9E%E9%9B%86)（2019-11-12 03時更新）にて、ストック数ランキング51位をいただきました！ありがとうございます:sob: