AWS Certified Machine Learning - Specialty(MLS)を受験することになりました。全然馴染みがなかった分野なので、用語も何もわからず。日本語での参考書っぽいものも見当たらなかったので、個人的に勉強した内容のことを以下にまとめます。
この記事では機械学習の各種用語について。
分類/回帰
- 分類は、データが属するクラスを予測する。
- 回帰は、連続する数値から今後の数値の変化を予測する。
学習率
パラメータ(重みやバイアス)をどれぐらい変化させるかを表すハイパーパラメータ。
- 学習率の値が大きすぎると学習のスピードは上がるが最適解に収束しない(振動する or 発散する)
- 学習率の値が小さすぎると収束しやすいが、収束までに時間がかかる
オーバーフィッティングとその対処
学習データに対して絵記号しすぎてしまい、未知のデータに対しては期待する精度が出ない状態になること。対処方法として、以下のことを実施する。
歪んだデータへの対処方法
- 対数変換
- ビニング
- 1つの特徴量を一定間隔に分割して、それぞれの区間を違う特徴量とみなして重回帰をする
混合行列
| - | 実データ・正 | 実データ・負 |
|---|---|---|
| 予測・正 | 真陽性(TP) | 偽陽性(FP) |
| 予測・負 | 偽陰性(FN) | 真陰性(TN) |
正や負がそれぞれ正解/不正解を常に表現しているとは限らないことに注意。モデルにより検出したいほうを陽性と表現することが多い。
評価指標として、以下のものを認識しておく
- リコール(再現性、真陽性率)= TP / (TP + FN)
- 実際に陽性のデータのうち、どれだけ正しく陽性と判定されたか
- 病気検出やスパム検出など検出漏れを減らす場合に活用
- 適合率(精度) = TP/(TP + FP)
- 陽性と予測した中で、本当に陽性の割合
- 詐欺検出など誤検知を減らす場合に活用
リコールと適合率の調和平均を表すF1値を活用することが多い(リコールと精度はトレードオフになるため)
オーバーサンプリング/アンダーサンプリング
- オーバーサンプリングは、件数が少ないデータを増やすこと
- 手法の一つにSMOTE(Synthetic Minority Over-sampling TEchnique)がある。k-NNアルゴリズムを用いる
- アンダーサンプリングは、件数が多いデータを減らすこと
アルゴリズムの整理
| アルゴリズム | 教師あり/なし | 分類/回帰 | 簡単な説明 | ユースケース |
|---|---|---|---|---|
| 因数分解機(Factorization Machines) | 教師あり | 分類・回帰 | 疎なデータを扱える線形モデルで、行列分解を用いて特徴間の相互作用を学習 | 推薦システム、広告クリック予測 |
| K最近傍(K-Nearest Neighbors, KNN) | 教師あり | 分類・回帰 | 新しいデータポイントが既存データのどの近隣グループに属するかを判定 | 画像認識、異常検知 |
| 線形学習(Linear Learner) | 教師あり | 分類・回帰 | 線形回帰・ロジスティック回帰を並列最適化で高速に学習 | 売上予測、顧客離脱予測 |
| XGBoost | 教師あり | 分類・回帰 | 勾配ブースティング決定木(GBDT)を用いた高精度なモデル | クレジットスコアリング、詐欺検出 |
| Object2Vec | 教師あり | - | 単語やアイテムを埋め込みベクトルに変換し、類似度を学習 | 文書分類、ユーザー行動予測 |
| DeepAR | 教師あり | 回帰 | 時系列予測のためのRNNベースのアルゴリズム | 需要予測、売上予測 |
| PCA(主成分分析) | 教師なし | - | 高次元データを低次元に圧縮し、データの特徴を保持 | 異常検知、データ可視化 |
| K-Means | 教師なし | - | データをK個のクラスタに分類 | 顧客セグメンテーション、画像圧縮 |
| ランダムカットフォレスト(Random Cut Forest, RCF) | 教師なし | - | 異常スコアを算出し、異常検知を行う | ネットワーク侵入検知、不正検知 |
| BlazingText | 教師あり | 分類 | Word2Vecを活用した自然言語処理モデル | テキスト分類、チャットボット |
| seq2seq(Sequence to Sequence) | 教師あり | - | エンコーダ・デコーダを使った系列変換モデル | 機械翻訳、要約生成 |
| 潜在的ディリクレ配分(LDA) | 教師なし | - | 文書をトピックに分類する手法 | ニュース記事分類、トピックモデリング |
| ランダムフォレスト(Random Forest) | 教師あり | 分類・回帰 | 複数の決定木を用いたアンサンブル学習 | 医療診断、金融リスク分析 |
| ロジスティック回帰(Logistic Regression) | 教師あり | 分類 | 2値または多値分類に適した線形モデル | スパムメール分類、マーケティング分析 |
| CNN(畳み込みニューラルネットワーク) | 教師あり | 分類 | 画像データを解析する畳み込み構造を持つニューラルネットワーク | 画像認識、医療画像解析 |
| RNN(再帰型ニューラルネットワーク) | 教師あり | 分類・回帰 | 時系列データや文章のパターンを学習 | 音声認識、感情分析 |
| T-SNE | 教師なし | - | 高次元データを2次元・3次元に可視化する手法 | データクラスタリングの可視化 |
| サポートベクターマシン(SVM) | 教師あり | 分類・回帰 | 超平面を用いてデータを分類する手法 | 画像分類、バイオインフォマティクス |
Kinesisシリーズのまとめ
| サービス名 | 特徴 | 主なユースケース |
|---|---|---|
| Amazon Kinesis Data Streams | 高スループットのリアルタイムデータストリーム処理を提供する | ログ分析、IoTデータ処理、リアルタイム分析 |
| Amazon Kinesis Data Firehose | ストリーミングデータをS3、Redshift、Elasticsearch、Splunkにバッチ処理で自動送信 | ログ収集、データレイク統合、ETL処理 |
| Amazon Managed Service for Apache Flink(旧Amazon Kinesis Data Analytics) | SQLを使用してKinesis Data StreamsやFirehoseのストリーミングデータをリアルタイムに分析 | ストリーミングデータの集約、異常検知、ダッシュボード作成 |
| Amazon Kinesis Video Streams | ライブ動画ストリーミングデータを処理・保存できる | 監視カメラ映像のストリーミング、機械学習を用いた画像解析 |