Posts

Showing posts from February, 2017

You Jump, I Jump? (下)

Image
接著上一篇鐡達尼的文章(link),上回我們利用已知的數據描繪出當時的情況,終於來到劇肉了,可以建立Classification Model去估計生存的機會了。原諒筆者中英夾雜的,始終有些專業名詞翻釋中文有點怪怪的。 Data Visualization 由於數據的維度已超過三維,很難用來一幅圖顯示每一位乘客的分佈,所以我先把所有Input Variables找出兩條Principle Components,然後把每一個乘客(data points)投影在這兩條PCs,而PCs包含了99.87%的Variablility,即是有很少的資訊留失,有一定可信性。從下圖可見,X-axis為PC1,Y-axis為PC2,可見有3點outlier右手邊,他們都買了最貴的船票,並存活下來的頭等乘客,至於需不需要剔走這些Outlier,那就要得看看你的模型因為它們會不會受到好大的影響。 Data Cleansing and Preparation Cleansing的方法有很多,剛才提到AGE有數個缺失值,來到這部分,我們的目的不再是計算Correlation,而是準備Training Data去訓練我們的模型,所以估算的方法跟剛才的不同。其實最簡單的方法可以把AGE整個attribute忽略,不用作為模型的input,但由於發現年齡跟艙位,親友的數目,船票費用和生存機會,這幾個因素有顯住的正反比關係,即是說:如果我知道某人坐的艙位,陪同他的親友數目,船票費用和是否倖存下來,我便可以估計其年齡,所以在這個程況下我會選擇把沒有年齡的人估算出來,在這裡假設年齡的缺失是因為隨機且正態分怖的,以致我們能夠用Linear Regression Model去推算缺失的年齡,令我們可以把更多的training data去訓練用作分類的模型,同時,儘管一些testing data沒有age值,也能被分類為生存或否。 準備好Data後,終於來到戲肉,建立和訓練我們的模型,筆者一共建立了四個Classification Model,每一個模型的參數首先會先被調好,在Bias和Variance取得一個平衡,以發揮其最大功用,完成後這四個模型會用一些Metrics去評估它們的Performance,使我們能選擇一個最好的模型,然後預測乘客的存活機會。 1. Decisi...