LoginSignup
2
1

More than 3 years have passed since last update.

教師あり/なし学習でおさえておくべきことを軽くまとめてみた

Last updated at Posted at 2020-09-27

備忘録も兼ねて、「教師あり学習」と「教師なし学習」について、概要・利用するクラス・事例・キーワードと、学習する上で参考になったサイトについてまとめておきます。

『教師あり学習』

めちゃザックリ:特徴を表すデータと対応する答えのデータを与えて学習させることで予測モデルを作る。予測には分類問題と回帰問題がある。

各手法

①線形回帰

あらゆる直線のうち、損失関数(誤差関数)の値が最も小さくなるパラメータを求める。

②ロジスティック回帰

二値分類のアルゴリズムで、分類問題に適用される。

③SVM(線形)

決定境界(直線)がデータから離れるように学習するアルゴリズムで、分類と回帰のどちらにでも使える。

④SVM(カーネル法)

カーネル関数により実空間のデータを超平面で分離できる空間に写像してから、データ集合を分離する。

⑤ナイーブベイズ

特徴量がそれぞれ独立であるという仮定のもとで、データがあるラベルである確率を計算する。

⑥ランダムフォレスト

多様性のある複数の決定木から出力を集め、多数決で分類の結果を出す。

⑦ニューラルネットワーク

入力と出力の間に中間層を挟むことで、複雑な決定境界を学習する。

⑧k近傍法

入力データの近傍k個の分類の多数決により判定を行う。

評価方法

  • a. 分類問題の場合
    • a-1. 混同行列
      利用するクラス:sklearn.metrics.confusion_matrix
    • a-2. 正解率
      利用するクラス:sklearn.metrics.accuracy_score
    • a-3. 適合率
      利用するクラス:sklearn.metrics.precision_score
    • a-4. 再現率
      利用するクラス:sklearn.metrics.recall_score
    • a-5. F値
      利用するクラス:sklearn.metrics.f1_score
    • a-6. ROC-AUC
      利用するクラス:sklearn.metrics.roc_curve

 参考サイト:
 scikit-learnで混同行列を生成、適合率・再現率・F1値などを算出
 scikit-learnでROC曲線とそのAUCを算出

  • b. 回帰問題の場合
    • b-1. 平均二乗誤差
      利用するクラス:sklearn.metrics.mean_squared_error
    • b-2. 平均絶対誤差
      利用するクラス:sklearn.metrics.mean_absolute_error
    • b-3. 決定係数
      利用するクラス:sklearn.metrics.r2_score

 参考サイト:scikit-learn で回帰モデルの結果を評価する

過学習を防ぐ方法

  • a. ハイパーパラメータ
    • a-1. グリッドサーチ
      利用するクラス:sklearn.grid_search.GridSearchCV
    • a-2. ランダムサーチ
      利用するクラス:sklearn.grid_search.RandomizedSearchCV

 参考サイト:scikit-learnでモデルのハイパーパラメータチューニングをしよう!

  • b. データ(学習データ&検証データ)の分割
    • b-1. ホールドアウト法
      利用するクラス:sklearn.model_selection.train_test_split
    • b-2. クロスバリデーション法
      利用するクラス:sklearn.model_selection.cross_val_score sklearn.model_selection.KFold
    • b-3. リーブワンアウト法
      利用するクラス:sklearn.model_selection.LeaveOneOut

 参考サイト:機械学習、ディープラーニングでの学習データとテストデータの分割手法について

  • c. 正則化
    • c-1. リッジ回帰
      利用するクラス:sklearn.linear_model.Ridge
    • c-2. ロッソ回帰
      利用するクラス:sklearn.linear_model.Lasso

 参考サイト:最短でリッジ回帰とラッソ回帰を説明(機械学習の学習 #3)

『教師なし学習』

めちゃザックリ:教師あり学習と異なり、目的変数は存在しない。ここでは特徴データに対し、別の形への変形や、部分集合を見つけることで、その構造を抽出する。手法に、次元削減とクラスタリングがある。

①主成分分析(PCA)

多数の量的説明変数を、より少ない指標や合成変数に要約し、データの変数を削減する。

  • 利用するクラス:sklearn.decomposition.PCA
  • キーワード:分散共分散行列、固有値問題、累積寄与率
  • 参考サイト:主成分分析と固有値問題

②K平均法(K-means法)

データを与えられたクラスタ数に分類し、似たもの同士グループに分ける。

  • 利用するクラス:sklearn.cluster.KMeans
  • 事例:マーケティングデータ分析、画像分類
  • キーワード:クラスタ内平方和、エルボー法、シルエット分析、k-means++、k-medoids法
  • 参考サイト:k-meansの最適なクラスター数を調べる方法

③潜在意味解析(LSA)

文章データで、特徴量を単語数から潜在トピック数に削減することで、単語と文章の類似度を求める。

④非負値行列因子分解(NMF)

入出力データの値が全て非負という性質をもつ次元削減手法。

⑤潜在的ディリクレ配分法(LDA)

文書内の単語からトピックを作成し、文書がどのトピックで構成されているかを求める。

⑥混合ガウス分布(GMM)

複数のガウス分布の線型結合によりクラスタリングを行う。

  • 利用するクラス:sklearn.mixture.GaussianMixture
  • キーワード:ガウス分布

⑦局所線形埋め込み(LLE)

非線形なデータに対して、次元削減を行う。

  • 利用するクラス:sklearn.manifold.LocallyLinearEmbedding

⑧t分布型確率的近傍埋め込み法(t-SNE)

高次元データを二次元か三次元に次元削減する方法で、データの可視化などに利用される。

  • 利用するクラス:sklearn.manifold.TSNE
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1