実装演習レポート(機械学習) - owadatk/cautious-octo-bassoon Wiki

Original URL: https://github.com/owadatk/cautious-octo-bassoon/wiki/実装演習レポート(機械学習)

実装演習レポート(機械学習)

線形回帰モデル

要点のまとめ

全体像

線形回帰モデル

実装演習結果

image

* pyplotのscatterを使用
* y軸は y_train_pred - y_train と残差を計算している

非線形回帰モデル

要点のまとめ

実装演習結果

image image

image image

image

ロジスティック回帰モデル

要点のまとめ

実装演習結果

image image

* 変数w0, w1を初期化
* シグモイド関数の定義:ネイピア数の肩に乗っている部分が w0 + w1*x という線形式になっている
* -1 から 500 までの間で3000個の数を生成する
* plot(data1, np.zeros(len(data1)),'o') # チケット価格をxとし、y=0にプロット
* plot(data1, model.predict_proba(data1), 'o') # モデルから予測される確率をプロット
* plot(x_range, sigmoid(x_range), '-') # 上で定義したシグモイド関数をプロット。モデルの確率値と重なっている。

image image

* index_survived = titanic_df[titanic_df["Survived"==0].index # Survivedの値が0であるデータのインデックスをindex_survivedに格納する
* matplotlibでは100種類以上のカラーマップが利用できる。ListedColormpaは円グラフや棒グラフのように数種類の色分けを行いたい場合に使用するカラーマップのクラス
* subplots()は返り値figとaxes。中身はfig = figure()した後fig.add_subplot(111)と同じ
* scatterの引数:xはAgeFill、yはPclass_Gender(階級と性別の組合せ。上流階級女性は生存しやすく、下層階級男性は死亡しやすい傾向を仮定。)
* (np.random.rand(len(index_survived))-0.5)*0.1 を付け加えることでy軸方向に適度なばらつきをもたせている
* alphaは透明度を指定する引数(0 < alpha < 1)
* Pclass_Genderという特徴量を作ることによって、特徴空間上でうまく線形分離できるようになるケース(※feature engineering:ドメイン知識を使った特徴量探索)

image image

* seabornを使っての描画はコードがシンプル
* lmplotの引数:hueは色分け出力、colで表示枠を分ける、y_jitterはy軸方向のランダムノイズ
* logistic=Trueでロジスティック回帰モデルを適用している。デフォルトで信頼区間95%の範囲を併せて表示。

主成分分析

要点のまとめ

実装演習結果

アルゴリズム

要点のまとめ

実装演習結果

image

サポートベクターマシーン

要点のまとめ

実装演習結果

線形分離可能な場合

線形分離不可能な場合

ソフトマージンSVM