機械学習の勉強(Kaggle)#1
いろいろと調べたことや気になったことを残していきます。
今回は機械学習を身につけていこう、です。今回はKaggleで調べたことをメモして行きます。Kaggleとは、投稿されたデータの最適モデルを競いあう分析手法関連のプラットフォーム及びその運営会社(from Wikipedia)です。最近Googleに買収されたことでも有名になりました。
はじめに次のnotebookを参考にしました。このnotebookでは、これらデータを見ようとした時に、そもそもどんなデータなのかを調べる流れと手順がまとめてあります。Pythonを使って理解する流れを、手順な具体的で、コマンドベースで説明してくれていて大変わかりやすいです。
Comprehensive data exploration with Python | Kaggle
どんなデータなのかを調べる流れは以下の通りです。
- 問題を理解する
- 単変量解析(univariable)データを理解する(この項目は何か)
- 多変量解析(multivariable)各変数は依存しているか独立しているか相関を把握
- 基本的なクリーニング
- テスト
具体的な手順を次に説明する。コマンドはリンク先を参照してほしい。
1、変数を把握する前に次のような列を持つ表を用意しておく(Excelとかで)
- 変数名
- 数字は数値かカテゴリ値か
- 各項目のセグメント
- 高・中・低のカテゴリを出すなど期待する出力
- コメント
2、目的変数を把握する。
- 平均(mean)
- 標準偏差(std)
- Skewness(歪度)
- Kurtosis(尖度)、通常は3の値をとる。
私は、歪度、尖度はよくわからなかったので以下HatenaBlogを見て把握しました。
目的変数が数値データとの相関があるのかを確認。
x軸、y軸のプロットで確認する。
目的変数がカテゴリカルデータと相関があるかを確認する。
箱ひげ図で確認する。
3、分析
超外観を把握する。
線形関係なのか?強い線形関係なのか?
- 相関図(heatmapで全部?)
- 目的変数に特化した相関図
- シュガー?からの移動が心配
4、欠損値のあつかいを考える
説明変数間の相関を確認する。
- ヒートマップ(heatmap)
- 箱ひげ図(boxplot)
外れ値を確認
- Unvariate(単変量)で分析して外れ値を除外する。
- Bivariate(二変量相関)で分析して外れ値を除外する。
5、さらにモデル
想定される分布
- Normality(正規性)
- Homoscedasticity(等分散性)
- Linearity(線形性)
- Absence of correlated errors
正規性なのかを確認、等分散性なのかの確認
最悪はダミー値にする
A study on Regression applied to the Ames dataset | Kaggle
- 線形回帰
- 目的変数と説明変数のグラフにして外れ値を確認
- NAをダミー値で埋める
- 数値からカテゴリ値に変換
- corr(相関係数)で寄与度を確認
- 数値の特徴量の個数、カテゴリの特徴量の個数を確認
- 数値の特徴量に含まれるNAの個数を確認
- skewedな数値の特徴量はlogを取る
- カテゴリ値の特徴量に含まれるNAの個数を確認
2、モデリング
- 正規化無しの線形回帰
- Ridge回帰付きの線形回帰
- Lasso回帰付きの線形回帰
- ElasticNet回帰付きの線形回帰
Stacked Regressions : Top 4% on LeaderBoard | Kaggle
- xgboost
- Box Cox Transformation of (highly) skewed features
- Stacking models
- Ensembling
機械学習を使うこと
いろいろと調べたことや気づいたことをメモしていこう。
機械学習を使って何かしたい、と思ってもいろいろと未知語ばかり出てきてうんざりしてしまう。私はうんざりです。調べたことを記録しておこうと思います。
次元圧縮
GPLVM
ロジスティック回帰
教師ありの分類
テキストの分類
weight、biasesの初期化
畳み込み(conv2d)、プーリング(max_pool)
最適化関数
ReLU
ステップ関数
http://kaeken.hatenablog.com/entry/2016/11/03/232414
Stanford University CS231n: Convolutional Neural Networks for Visual Recognition