AWS Certified Machine Learning - Specialty まとめ

## [Content-Based Filtering(CF) Recommendation Engine](https://developers.google.com/machine-learning/recommendation/content-based/basics?hl=ja)
コンテンツ ベースのフィルタリングは、アイテム機能を使用して、以前のアクションや明示的なフィードバックに基づいて、ユーザーの好みに類似した他のアイテムを推奨します。

- メリット
    - レコメンデーションはそのユーザーに固有のものであるため、モデルには他のユーザーに関するデータは必要ありません。これにより、多数のユーザーに簡単にスケーリングできます。
    - このモデルは、ユーザーの特定の関心事をキャプチ-ャでき、他のユーザーがほとんど関心を持たないニッチな商品をおすすめできます。
- デメリット
    - アイテムの特徴表現はある程度手作業で設計されているため、この手法には多くのドメイン知識が必要です。したがって、このモデルは手作業で設計した特徴量で十分です。
    - このモデルは、ユーザーの既存の興味や関心に基づいてのみ推奨事項を提示できます。つまり、ユーザーの既存の関心を拡大するモデルは限られています。

## [Collaborative Filtering(CF) Recommendation Engine](https://ja.wikipedia.org/wiki/%E5%8D%94%E8%AA%BF%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%B0)

### メリット
- ドメインに関する知識は必要ありません
    - エンベディングは自動的に学習されるため、ドメイン知識は必要ありません。
- セレンディピティ
    - このモデルは、ユーザーが新しい興味や関心の対象を見つけるのに役立ちます。単独では、ML システムは、ユーザーが特定のアイテムに関心があることを認識できませんが、モデルは同様のユーザーがそのアイテムに関心があるため、引き続きそのアイテムを推奨する可能性があります。
- 最適な出発点
    - 行列分解モデルをトレーニングする場合、システムではフィードバック マトリックスのみが必要になります。特に、このシステムではコンテキスト機能は必要ありません。実際には、複数の候補生成ツールのいずれかとして使用できます。

### デメリット
- 新しいアイテムは処理できない
- クエリ/アイテムの副特徴を含めるのが難しい

## Combinative Filtering
存在しない

## [K-Nearest Neighbors (k-NN) Algorithm (K 最近傍)](https://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/k-nearest-neighbors.html)
**インデックスベース**のアルゴリズムです。
このアルゴリズムは、分類または回帰に**ノンパラメトリック手法**を使用します。分類問題の場合、アルゴリズムはサンプルポイントに最も近い k ポイントに対してクエリを実行し、そのクラスで最も頻繁に使用されるラベルを予測ラベルとして返します。回帰問題の場合、アルゴリズムはサンプルポイントに最も近い k ポイントに対してクエリを実行し、それらの特徴値の平均を予測値として返します。

### メリット
- 事前に学習する必要がない
- アルゴリズムがシンプルなのであらゆる問題に適用しやすい
- 予測結果がブラックボックス化されていないので理解しやすい

### デメリット
- データ量が多い場合、結果の計算に時間がかかってしまう
- 大量のデータをメモリに保持する必要がある
- 次元の高いデータではうまく機能しない

## Linear Learner algorithm (線形学習アルゴリズム)
分類や回帰の問題を解決するために使用される、**教師あり**学習アルゴリズムです

## Random Cut Forest (RCF) - ランダムカットフォレスト
データセット内の異常な**データポイントを検出**するための**教師なし**アルゴリズムです

## Latent Dirichlet Allocation (LDA) - 潜在的ディリクレ配分
教師なし学習アルゴリズムで、一連の観測値を異なるカテゴリの組み合わせとして記述しようとします。
LDA は、テキストコーパス内のドキュメントによって共有されるトピックの、ユーザー指定数を検出するために最もよく使用されます。
**LDA is for topic modeling, sentiment analysis**

## Additive Model
```
y(t) = Base Level + Trend + Seasonality + Noise
```

## Naive Bayesian
ベイズの定理をもとにしたのがNaive Bayesアルゴリズムであり、以下のような特徴を持ちます。
- データが与えられたときの全ての推定の確率を計算し、最も確率の高いものを推定結果として出力
- 非常にシンプルだが、現実世界の多くの複雑な問題に対してうまく機能
- CPUとメモリに関してリソースが限られている場合に使用でき、さらにトレーニング時間が重要である場合、非常に迅速にトレーニングできて便利
- データの特徴量は独立で、互いに相関がないと仮定しており、各特徴量が独立に推定結果に影響するため、とても強い仮定において実データでは成り立たないこともある
- 強い仮定(制約)にもかかわらず、仮定が成り立たないであろう実データでも、驚くほどよい結果を出す
- その結果が、他のより複雑なアルゴリズムを越えることも多々ある

### メリット
- 単純(実装も簡単)かつ強力
- とても大きなデータセットに対しても有効
- 高速で計算資源も少なくてよい
- 少ないトレーニングデータでも性能が出る
- 重要でない特徴量の影響を受けにくい
### デメリット
- 各特徴量が独立であると仮定しなければならない(実データでは成り立たないことも多い)

## Support Vector Machine (SVM)
機械学習モデルの一種で、非常に強力なアルゴリズムです。
教師あり学習で、分類と回帰を扱うことができますが、主に分類のタスクで使われます。

- メリット
    - データの次元が大きくなっても識別精度が良い
    - 最適化すべきパラメータが少ない

- デメリット
    - 学習データが増えると計算量が膨大になる
    - 基本的に２クラス分類に特化している
    - スケーリングが必要

## Receiver Operating Characteristic (ROC) curve - ROC 曲線
すべての分類しきい値で分類モデルのパフォーマンスを示すグラフです。この曲線では、次の 2 つのパラメータがプロットされます。
- 真陽性率
- 偽陽性率

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/160072/ada6e6a2-6f6a-faf5-15e0-fa161d8dfc8b.png)

## Convolutional Neural Network (CNN) - 畳み込みニューラルネットワーク
層間を共通重みの局所結合で繋いだニューラルネットワークの総称・クラスである。機械学習、特に画像や動画認識に広く使われる

- Dropout
    - Not really a function, but rather a method to avoid overfitting. It consists of dropping some neurons during the training process, so that the performance of our algorithm does not become very dependent on any single neuron.
- Smooth L1 loss
    - It's a loss function, thus a function to be minimized by the entire neural network. It's not an activation function.
- Softmax
    - This is the traditional function used for multi-class classification problems (such as classifying an animal into one of 10 categories)
- Rectified linear units (ReLU)
    - This activation function is often used on the first and intermediate (hidden) layers, not on the final layer. In any case, it wouldn't make sense to use it for classification because its values can exceed 1 (and probabilities can't)

## Activation Function
活性化関数もしくは伝達関数です。ニューラルネットワークのニューロンにおける、入力のなんらかの合計（しばしば、線形な重み付け総和）から、出力を決定するための関数で、非線形な関数とすることが多い。

## Root Mean Square Error (RMSE) - 二乗平均平方根誤差
予測された数値ターゲットと実際の数値解の間の距離を測定することです (グランドトゥルース)。RMSE の値が小さいほど、モデルの予測の正確性が高くなります。完全に正しい予測モデルでは、RMSE は 0 です。以下の例は、N レコードが保存されている評価データを示します。
![image](https://docs.aws.amazon.com/ja_jp/machine-learning/latest/dg/images/image56.png)

## BLEU（BiLingual Evaluation Understudy）
機械翻訳されたテキストを自動的に評価するための指標です。

## Model Insights (Performance Visualization)
- Regression Model
    - residuals
- Multiclass Model
    - confusion matrix

## [Principal Component Analysis (PCA) - 主成分分析](https://ja.wikipedia.org/wiki/%E4%B8%BB%E6%88%90%E5%88%86%E5%88%86%E6%9E%90)
相関のある多数の変数から相関のない少数で全体のばらつきを最もよく表す主成分と呼ばれる変数を合成する多変量解析の一手法。**データの次元を削減するために用いられる**。
モデルトレーニングのスピードアップに有効


## 機械学習問題に適したモデルの選択
### Topic modeling
単語グループを通じてテキスト・データを要約するための教師なしNLP手法です。これらは、テキストの分類と情報検索タスクを支援します

### Prescriptive ML models
Use machine learning and statistical models to analyze data and recommend actions

### BERT-based models
A family of natural language processing (NLP) models that use the BERT language model as a base

### Extreme Gradient Boosting (XGBoost)
この手法は、決定木に基づき、ランダム フォレストや勾配ブーストなどの他の手法を改善したものです。 さまざまな最適化の方法を使用することにより、<font color="blue">**大規模で複雑なデータセットの処理で性能を発揮します**。</font>

### Logistic Regression
製造業における**故障の発生有無**やオンラインサービスにおける**顧客の離脱の発生有無**など「0」か「1」を予測する<font color="blue">**「2値分類**</font>」のタスクで活用される分析手法の一つです。 <font color="blue">**特定の事象が発生する確率**</font>を推計する手法なので、ビジネスシーンでも活用しやすい分析手法といえます

### Linear Regression
### K-means - k平均法
非階層型クラスタリングのアルゴリズム。クラスタの平均を用い、与えられたクラスタ数k個に分類することから、MacQueen がこのように命名した。k-平均法（k-means）、c-平均法（c-means）とも呼ばれる

### Decision Tree
### Random Forest
### Recurrent Neural Network (RNN) - 回帰型ニューラルネットワーク
時系列データまたはシーケンシャルデータを用いた予測を行うディープラーニングのネットワーク アーキテクチャです。さまざまな長さのシーケンシャルデータを使用して、<font color="blue">**自然信号の分類、言語処理、動画解析**</font>などの問題を解く場合に特に効果的です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/160072/aebad0fc-1fb2-0c8a-aba6-c0226d7cdb5a.png)


### Convolutional Neural Network (CNN) - 畳み込みニューラルネットワーク
数十から数百の層があり、各層が画像のさまざまな特徴の検出を学習します。それぞれの学習画像に解像度が異なるフィルターが適用され、各畳み込み画像の出力が次の層の入力として使用されます。フィルターは、明るさやエッジなどの非常に単純な特徴から始まり、オブジェクトを一意に定義する特徴へと複雑化していきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/160072/21607290-d716-ecf9-a03a-a688a4af8ee2.png)

- 医用画像処理
    - 何千もの病理報告書を調べて、画像中のがん細胞の有無を視覚的に検出することができます。
- 音声処理
    - キーワード検出は、マイクを備えたあらゆる機器で使用でき、特定の単語やフレーズが話されたときにそれを検出することができます (たとえば「Hey Siri!」)。
- オブジェクト検出
    - 自動運転では、CNN を用いて標識などの存在を正確に検出し、その出力に基づいて判断を行います。
- 合成データの生成
    - 敵対的生成ネットワーク (GAN) を用いて、顔認識や自動運転などのディープラーニング アプリケーションに使用する新しい画像を生成することができます。

### アンサンブル学習
複数のモデルを組み合わせて学習器を生成する機械学習の手法です。 各学習器の予測結果から多数決を取ることで予測結果を出力します。 アンサンブル学習に用いられる各学習機は弱学習器とよばれ、単体では精度のよいものではありませんが、複数組み合わせることで、精度の高いモデルを構成することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/160072/7b7c4c83-6981-1516-13f8-0de422a6af68.png)

### 転移学習
ある問題を解決する際に得た知識を蓄積し、関連する別の問題にそれを適用することに焦点を当てた機械学習の研究領域である。たとえば、大量の犬の画像データと少量の猫の画像データがあり、犬・猫それぞれの種類判別モデルを作成するとしましょう。 この場合、通常の機械学習では、犬・猫それぞれ別にモデルを作成することになります。

## 機械学習トレーニングの最適化手法
### Gradient Descent - 最急降下法

### 損失関数

### 収束

## Algorithms
### Multiple Imputation
日本語：多重代入法
**不完全データ**を用いた統計分析が、 完全データによる統計分析と同様に、統計的に妥当になる欠測値対処法である

### Last Observation Carried Forward (LOCF)
1つの欠測に対して1つの値を補完する

### Mean substitution

### Listwise Deletion - リストワイズ除去
データとして扱う変数のいずれかに欠損があるケースをすべての計算から除去し，残りのケースで解析を行う

### Factorization Machines (FM) algorithm - 因数分解機
分類タスクと回帰タスクの両方に使用できる汎用的な教師あり学習アルゴリズムです。これは、高次元スパースデータセット内の特徴間の相互作用を経済的にキャプチャするように設計された線形モデルの拡張です。例えばクリック予測システムでは、因数分解機モデルは、特定の広告カテゴリの広告が特定のページカテゴリのページに配置されたときに確認されたクリック率パターンをキャプチャできます

## 用語集

### epoch - エポック数
エポック数とは、「一つの訓練データを何回繰り返して学習させるか」の数のことです。

### Mean absolute percentage error (MAPE) - 平均絶対パーセント誤差
各データに対して「予測値と正解値との差を、正解値で割った値（＝パーセント誤差）」の絶対値を計算し、その総和をデータ数で割った値（＝平均値）を出力する関数である

### Area Under the ROC Curve (AUC)
主に二値分類タスク（問題）に対する評価指標の一つで、「ROC曲線の下の面積」を意味する

### t-distributed stochastic neighbor embedding (t-SNE)
**t分布型確率的近傍埋め込み法**は、高次元データの個々のデータ点に2次元または3次元マップ中の位置を与えることによって**可視化のための統計学的手法**である
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/160072/88cbd981-aebb-9fe1-b955-e542425bc635.png)

### Logarithmic transformation
対数正規分布に従う変数の対数をとり，正規分布に従う変数を作ること。 対数正規分布においては，標準偏差は平均値に比例するので正規分布と等分散性を仮定する 一元配置分散分析などにおいては対数変換を行った変数を使用したほうがよい。

### L1 Regularization, L2 Regularization
Overfitting を解消する方法である

### Object-Detection single-shot multibox detector (SSD) algorithm

### Synthetic Minority Oversampling Technique (SMOTE)

### Sum of Squared Errors (SSE)

### Stemming
Merge similar words

### Term frequency-inverse document frequency (TF-IDF)
Remove not important words like "the, is, a"

### Univariate selection
This technique can be used to select the features that have the strongest relationship with the target variable. It involves analyzing each feature independently and selecting the ones that have the highest correlation with the target variable.

### Feature importance with a tree-based classifier
This technique can be used to determine the most important features that contribute to the target variable. By using a tree-based classifier such as Random Forest or Gradient Boosting, the company can rank the importance of each feature and select the ones that have the highest importance.

### Autoregressive Integrated Moving Average (AIRMA)
**ARIMA is a classical time series algorithm that can model complex patterns** in data. However, it may be difficult to use in cases where there are many different inputs and the relationships between the inputs and outputs are complex.

### Exponential Smoothing (ETS)
**ETS is a classical time series algorithm that is often used for forecasting**. It can be effective for simple time series data that have regular patterns, but may not be sufficient to handle the complexity of the given data.

### Convolutional Neural Network - Quantile Regression (CNN-QR)
CNN-QR is a deep learning algorithm that can **model complex relationships between the inputs and outputs**, such as the weather and public holidays, with historical power consumption data. CNN-QR has been shown to be effective in generating accurate predictions in many different types of forecasting use cases, including demand forecasting.

### Supervised learning
教師あり学習

### Unsupervised learning
教師なし学習

### Semi-supervised learning
半教師あり学習

### Reinforcement learning
It can learn over time what are the good and bad decisions

### Factorization Machines Algorithm
- Factorization Machines are versatile for recommendation tasks, but their performance might vary depending on the characteristics of the data.
- Ensure that Factorization Machines are suitable for your specific use case and that they provide the desired level of accuracy.


### Neural Collaborative Filtering Algorithm
- Neural Collaborative Filtering (NCF) is generally used for recommendation tasks, but its complexity and computational requirements might be overkill for certain scenarios.
- Depending on the size and nature of the dataset, a simpler algorithm might provide similar or even better results with less computational cost.

### Recursive Feature Elimination (RFE)
Recursive feature elimination could eliminate the least important features

### Quantile binning
Quantile binning is a data transformation technique that can be used to handle skewed and non-linear relationships in the data. By dividing the numerical feature (duration in this case) into quantiles or bins, you can create a categorical variable that captures non-linear patterns more effectively. This can be especially useful when dealing with skewed data, as it helps to normalize the distribution and may improve the performance of linear regression models.

## How to fix Overfitting Issue
- Simplifying The Model (reduce number of layers)
- Early Stopping
- Use Regularization (L1 + L2)
- Use Dropouts
- Use Data Augmentation

## How to fix Underfitting Issue
- **Complexifying the model** by including additional features, layers, and/or neurons.
- **Adding more information to the training set** so there are more instances for the model to draw from.
- **Lessening regularization** is decreasing the intensity of the regularization used on the model.

## Amazon SageMaker Topics

### Amazon SageMaker Neural Topic Model (NTM) - 文字のグルーピング
SageMaker NTM は教師なし学習アルゴリズムで、ドキュメントのコーパスをトピック統計的分布に基づく単語のグループが含まれています。たとえば、「自転車」、「車」、「電車」、「走行距離」、「スピード」などの単語が頻繁に含まれるドキュメントは、「交通」に関するトピックを共有する可能性があります。

### Amazon SageMaker Blazing Text - 感情分析
Word2VECとテキスト分類アルゴリズムの高度に最適化された実装を提供します。Word2vec アルゴリズムは、感情分析、名前付きエンティティ認識、機械翻訳など、多くの下流の自然言語処理 (NLP) タスクに役立ちます。テキスト分類は、ウェブ検索、情報検索、ランク付け、およびドキュメント分類を実行するアプリケーションにとって重要なタスクです。

### Amazon SageMaker DeepAR
時系列を予測するための教師あり機械学習アルゴリズムです。このアルゴリズムは、リカレントニューラルネットワーク (RNN) を使用して、ポイント予測と確率論的予測を生成します。DeepAR アルゴリズムを使用して、スカラー (1 次元) 時系列の単一の値を予測するか、モデルを作成することにより、関連する数百の時系列で同時に動作させることができます。また、モデルがトレーニングされる系列に関連する新しい時系列を予測することもできます。

### Amazon SageMaker Ground Truth
**セルフサービス**または **AWS が管理するサービス**を通じて、**データ生成**や**注釈付け**からモデルのレビュー、カスタマイズ、評価まで、さまざまなヒューマンインザループタスクを完了できます。

### [Amazon SageMaker Data Wrangler](https://aws.amazon.com/jp/sagemaker/data-wrangler/)
**表形式データや画像データの集約と準備に要する時間を短縮**します。
SageMaker Data Wrangler を使用すると、データ準備と特徴量エンジニアリングのプロセスを簡素化し、データ選択、クレンジング、探索、視覚化、大規模処理など、データ準備ワークフローの各ステップを単一のGUIから実行できます。SQL を使って、さまざまなデータソースから必要なデータを選択し、素早くインポートすることができます。データ品質とインサイトレポートを使用して、データ品質を自動的に検証し、重複した行やターゲットリークなどの異常を検出することができます。SageMaker Data Wrangler には 300 以上のデータ変換が組み込まれているので、コードを記述しなくても素早くデータを変換することができます。

### [Amazon SageMaker Canvas](https://aws.amazon.com/jp/sagemaker/canvas/)
コーディング不要のGUIを通じて、機械学習の経験やコードを 1 行も記述することなく、非常に正確な機械学習モデルを作成できます。独自のカスタム ML モデルを構築することもできます。SageMaker Canvas を使用すると、50 以上のソースから簡単にデータにアクセスしてインポートしたり、自然言語と 300 種類以上の組み込み変換を使用してデータを準備したり、高精度なモデルを構築してトレーニングしたり、予測を生成したり、モデルを本番環境にデプロイしたりすることができます。

### [Amazon SageMaker Clarify](https://aws.amazon.com/jp/sagemaker/clarify/)
機械学習開発者に、学習データとモデルに対するより優れた**インサイトを得るための専用ツール**を提供します。SageMaker Clarify では、潜在的なバイアスを様々な指標で検出、測定することで、ML デベロッパーは潜在的なバイアスに対処し、モデルの予測値を説明できるようにしています。

### SageMaker Autopilot

### SageMaker Automatic model tuning (AMT)

### SageMaker Experiments

### SageMaker Debugger

### SageMaker Model Monitor
SageMaker Model Monitor is for model performance