# 教師あり機械学習
Created: October 9, 2020 11:48 AM
> 入力と出力のペア群から学習する機械学習アルゴリズムは、**教師あり学習**と呼ばれる。これは、 学習のために与えられる入出力ペア群が、望ましい出力と言うかたちで「教師」となるからである。
[[📖Pythonではじめる機械学習]] p.2
- ラベル付けされたデータ
- 直接のフィードバック
- 成果予測と未来予測
> 教師あり機械学習問題は2つに大別することができる。クラス分類(classification)と回帰 (regression)だ。
- [[分類]]
- [[回帰]]
---
scikit-learnを用いた教師あり学習例の最小手順。 [[📖Pythonではじめる機械学習]]
```python
# 1. モデル構築に用いる訓練セットとモデルを評価に用いるテストセットに分割する。
X_train, X_test, y_train, y_test = train_test_split(
iris_dataset['data'], iris_dataset['target'], random_state=0)
# 2. 訓練セットを用いて、k-最近傍法でモデルを構築する。
knn = KNeighborsClassifier(n_neighbors=1)
knn.fit(X_train, y_train)
# 3. 構築したモデルに対して、テストセットを用いて、予測と評価を行う。
print("Test set score: {:.2f}".format(knn.score(X_test, y_test)))
```
## アルゴリズム
[[k-最近傍法 [[(k-NN)]]]]
小さいデータに関しては良いベースラインとなる。説明が容易。
[[線形モデル]]
最初に試してみるべきアルゴリズム。非常に大きいデータセットに適する。非常に高次元の
データに適する。
[[ナイーブベイズ]]
クラス分類にしか使えない。線形モデルよりもさらに高速。非常に大きいデータセット、高
次元データに適する。線形モデルより精度が劣ることが多い。
[[決定木]]
非常に高速。データのスケールを考慮する必要がない。可視化が可能で説明しやすい。
[[ランダムフォレスト]]
ほとんどの場合単一の決定木よりも高速で、頑健で、強力。データのスケールを考慮する必
要がない。高次元の疎なデータには適さない。
[[勾配ブースティング決定木]]
多くの場合ランダムフォレストよりも少し精度が高い。ランダムフォレストよりも訓練に時
間がかかるが、予測はこちらのほうが速く、メモリ使用量も小さい。ランダムフォレストよ
りもパラメータに敏感。
[[[サポートベクタマシン(SVM)]]]]
同じような意味を持つ特徴量からなる中規模なデータセットに対しては強力。データのス
ケールを調整する必要がある。パラメータに敏感。
[[notes/machine-learning/ニューラルネットワーク]]
非常に複雑なモデルを構築できる。特に大きなデータセットに有効。データのスケールを調
整する必要がある。パラメータに敏感。大きいモデルは訓練に時間がかかる。
[[📖Pythonではじめる機械学習]] p.125