0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

機械学習講座メモ

Last updated at Posted at 2020-08-07

イントロダクション【P01】

機械学習とは

データから機械自身に振る舞いを学習させる技術研究領域

  • 教師あり学習
    原因系Xと結果yの関係性を学習

  • 教師なし学習
    データのパターン化や新しい表現形式を獲得する
    データパターンの見える化
    いずれにも該当しない場合に以上と判断(異常検知)

  • 強化学習
    報酬を最大化する行動ルールの獲得を目指す

深層学習と伝統的機械学習の違い

特徴量エンジニアリングがアルゴリズム側に吸収された

民主化の波

(2)

フリーランチ定理
データによって最適なアルゴリズムは変わる

ペナルティ項=害

PCA:主成分??

アルゴリズムの中
正則化:holdout
アルゴリズムの前
次元削減(特徴抽出、特徴選択)
アルゴリズムの後
交叉検証:kfold

StandardScaler()
平均値を引いて標準偏差で割る

    from sklearn.model_selection import cross_val_score, KFold
# build models
kf = KFold(n_splits=3, shuffle=True, random_state=0)
for pipe_name, est in pipelines.items():
  cv_results = cross_val_score(est,
                                  X, y,
                                 cv=kf,
                                 scoring='r2')
    print('----------')
    print('algorithm:', pipe_name)
    print('cv_results:', cv_results)
    print('avg +- std_dev', cv_results.mean(),'+-', cv_results.std())

教師あり学習(回帰)【P02】

  • 回帰:正解データが連続量
  • 分類:正解データが2値

フェーズ

  • モデリングフェーズ
  • スコアリングフェーズ

汎化能力を高めるには

  • データ量
  • 業務知識を反映した特徴量設計
  • データの前処理とアルゴリズム評価

回帰アルゴリズム

  • 最小2乗回帰
  • リッジ回帰:L2正則化項を入れる
    正則化パラメータが大きいと、回帰係数は0に近づく

過学習への対処

  • 正則化
    • L1正則化(Lasso回帰):スパース性がある(特徴選択)
    • L2正則化(Ridge回帰):解析的に解が求まる
  • 次元削減(特徴量抽出)
  • 次元削減(特徴選択)
  • ホールドアウト・交叉検証
    • ホールドアウト法
    • k-fold(Cross validation)

アルゴリズム

  • 決定木
  • ランダムフォレスト
  • 勾配ブースティング

回帰モデルの評価

  • 絶対平均誤差(MAE):実測値と予測値の差の絶対値の平均
  • 平均2乗誤差(MSE):実測値と予測値の差の2乗値の平均
  • 中央絶対誤差:実測値と予測値の差の絶対値の中央値  
    外れ値の影響を受けにくい
  • R2値:誤差0で1.0平均値予測同等で0.0。悪いとマイナス

教師あり学習(分類)【P03】

分類のアルゴリズム

  • K近傍法(K-Nearest Neighbors)
  • ロジスティック回帰
  • 最尤法
  • ニューラルネットワーク
    • 形式ニューロン
    • 単純パーセプトロン:重み学習を追加
      → 線形分離不可能な問題は解けない
    • 多層パーセプトロン:入力層と出力層の間に中間層を挿入
      誤差逆伝搬法による重み学習
    • サポートベクターマシン(SVM)

分類モデル評価方法

  • 混同行列(Confusion Matrix)
    • 偽陰性(FN):PをNと誤判定
    • 偽陽性(FP):NをPと誤判定
  • 正解率(Accuracy):全体のうち正解の割合(TP+TN/ALL)
  • 適合率(Precision):正の中での正解率(TP/TP+FP)
  • 再現率(Recall):正と判定した中での正解率((TP/TP+FN)
  • AUC-ROC
  • F値(F-measure):適合率と再現率の調和平均

データ前処理と次元削減【P04】

データ前処理

  • One-hotエンコーディング
  • 欠損値補完
  • 標準化
  • 日時は経過時間に置き換え

次元削減

  • 次元の呪い:次元数が大きくなると汎化誤差が大きくなる
  • 特徴選択:重要な変数を選択する
    • ルールによる選択:欠損、分散
    • 基礎統計量に応じた選択:分類、回帰に応じた選択
    • モデルによる選択(RFE):
    from sklearn.feature_selection import RFE
    selector = RFE(RandomForestRegressor(n_estimators=100, random_state=42), n_features_to_select=5)
    
    • 特徴抽出:投入前に特徴量の次元を落とす
    • PCA(主成分分析)

教師なし学習【P06】

クラスタリング

正解のないデータから、類似性の高いものをまとめる

k-means

  • クラスタリング:教師なし学習
    ※回帰、分類:教師あり学習

    • K-means(K平均法)
      ランダムに重心を設定してはクラスタリングし、重心を再設定を繰り返す
      サンプル間の距離が高いと類似性が高いと判断
    • DBSCAN
      コア点、ボーダー点、ノイズ点に分類。近いコアをクラスタ化し、ボーダー点は近傍のコア点にクラスタ化
      サンプル間の密度が高いと類似性が高いと判断
  • 次元削減

  • ハードクラスタリング:サンプル1個を1個のクラスタに割り当てる

  • ソフトクラスタリング:サンプルそれぞれを複数のクラスタに割り当てる

追加予定

  • ロジスティック回帰
  • Ridge回帰/Lasso回帰
  • 残差
  • 回帰係数
  • ROC曲線
  • アンサンブル学習
0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?