0
0

前回までの内容

ここからbiplotを使ってどういうデータ構造になっているか生存の色付けとともに確認します。

from sklearn.decomposition import PCA
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
def biplot_spv(df, y):
    for col in df.columns:
        df[col] = (df[col] - df[col].mean()) / df[col].std()
    model = PCA()
    model.fit(df)
    df_pc = model.transform(df)
    com = model.components_
    evr = model.explained_variance_ratio_
    fac = []
    for i in range(len(evr)):
        fac.append(np.sqrt(model.explained_variance_ratio_)[i] * model.components_[i])
    fig, ax1 = plt.subplots()
    ax2 = ax1.twinx()
    ax2.scatter(df_pc[:, 0], df_pc[:, 1], cmap="brg", c=y, marker="x")
    ax3 = ax1.twiny()
    ylim = [abs(max(fac[1])), abs(min(fac[1]))]
    xlim = [abs(max(fac[0])), abs(min(fac[0]))]
    for i in range(len(df.columns)):
        ax3.plot([0, fac[0][i]], [0, fac[1][i]], color="#FF0000")
        ax3.text(fac[0][i], fac[1][i], df.columns[i])
    ax3.set_xlim(-max(xlim), max(xlim))
    ax3.set_ylim(-max(ylim), max(ylim))
    plt.show()
biplot_spv(x2, y)

image.png

この結果から分かることとして男性より女性の方が生き残りやすく、年齢は低い方が男性でも生き残りやすい(家族の子供か?)。また、敬称ではMrsの方がMissよりベクトルからは生き残り安いことがわかる(既婚者だから家族持ち?)。
そのほかにも解釈は色々あると思いますが簡単にわかる解釈ではこのくらいは簡単に見つかるのではないかと考えます。
あとEmbarkedがCの人は生き残値やすいみたいですね。
いずれにしても映画のタイタニック未視聴者だと前情報よくわからないので見てからだと何か違うかもしれませんね。

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