机器学习日志 泰坦尼克飞船 Spaceship Titanic
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)