イントロダクション【P01】
機械学習とは
データから機械自身に振る舞いを学習させる技術研究領域
-
教師あり学習
原因系Xと結果yの関係性を学習 -
教師なし学習
データのパターン化や新しい表現形式を獲得する
データパターンの見える化
いずれにも該当しない場合に以上と判断(異常検知) -
強化学習
報酬を最大化する行動ルールの獲得を目指す
深層学習と伝統的機械学習の違い
特徴量エンジニアリングがアルゴリズム側に吸収された
民主化の波
-
DataRobot
https://www.datarobot.com/jp/ -
Amazon SageMaker
https://aws.amazon.com/jp/sagemaker/ -
Featuretools | An open source framework for automated feature engineering Quick Start
https://www.featuretools.com/ -
pandasで使うもの
- dataframe, series
- join, merge
- iloc,loc
- map, apply, applymap
(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
コア点、ボーダー点、ノイズ点に分類。近いコアをクラスタ化し、ボーダー点は近傍のコア点にクラスタ化
サンプル間の密度が高いと類似性が高いと判断
- K-means(K平均法)
-
次元削減
- 主成分分析
ゼロからわかる教師なし学習!やさしく学ぶ主成分分析・PCAの基本 | AIZINE(エーアイジン)
https://aizine.ai/unsupervised-learning0531/
- 主成分分析
-
ハードクラスタリング:サンプル1個を1個のクラスタに割り当てる
-
ソフトクラスタリング:サンプルそれぞれを複数のクラスタに割り当てる
追加予定
- ロジスティック回帰
- Ridge回帰/Lasso回帰
- 残差
- 回帰係数
- ROC曲線
- アンサンブル学習