PassengerId——乘客编号。每个编号的形式都表示乘客与是否是组团旅行有关,比如家庭出游,集体出差等,因此编号中有部分是表示他们在团队中的号码。但有部分乘客是独自旅行。

HomePlanet——乘客离开的星球,通常是他们的永久居住星球。

CryoSleep——指示乘客是否选择在航行期间进入冷冻睡眠状态。处于冷冻睡眠状态的乘客所在的冷冻睡眠舱位于对应的客舱内。

Cabin——乘客所住的舱号。

Destination——乘客将要前往的星球。

Age——乘客的年龄。

VIP——旅客在航程中是否支付了特殊VIP服务费用。

RoomService,FoodCourt,ShoppingMall,Spa,VRDeck——乘客在泰坦尼克号宇宙飞船的许多豪华设施中所消费的金额。

Name——乘客的名字和姓氏。

Transported——乘客是否被运送到另一个维度。这是我们所需预测的列。

放一个单纯随机森林的版本

import pandas as pd
from sklearn.ensemble import RandomForestClassifier

def tongJi(f):
    tmp={}
    for i in range(len(f)):
        tmp[f[i]]=tmp.get(f[i],0)+1
    for key,val in tmp.items():
        print(key,val)
train_data = pd.read_csv("train.csv",encoding='gb18030')
test_data = pd.read_csv("test.csv",encoding='gb18030')
y = train_data["Transported"]

train_data['Age']=train_data['Age'].fillna(train_data['Age'].mean())
train_data['Name'] = train_data['Name'].fillna('Unknown')
train_data['HomePlanet'] = train_data['HomePlanet'].fillna('Earth')
train_data['CryoSleep'] = train_data['CryoSleep'].fillna('False')
train_data['Destination'] = train_data['Destination'].fillna('TRAPPIST-1e')
train_data['VIP'] = train_data['VIP'].fillna('False')
features = ["HomePlanet", "CryoSleep", "Destination", "Age", "VIP"]#利用这些特征来做决策树
x = pd.get_dummies(train_data[features])

model = RandomForestClassifier(n_estimators=100, max_depth=5, random_state=233)
model.fit(x, y)#训练模型



test_data['Age']=test_data['Age'].fillna(test_data['Age'].mean())
test_data['Name'] = test_data['Name'].fillna('Unknown')
test_data['HomePlanet'] = test_data['HomePlanet'].fillna('Earth')
test_data['CryoSleep'] = test_data['CryoSleep'].fillna('False')
test_data['Destination'] = test_data['Destination'].fillna('TRAPPIST-1e')
test_data['VIP'] = test_data['VIP'].fillna('False')
myIn = pd.get_dummies(test_data[features])
Transported = model.predict(myIn)

myAns = pd.DataFrame({'PassengerId': test_data.PassengerId, 'Transported': Transported})
myAns.to_csv('myAns.csv', index=False)