Titanic预测

本周学习任务是写 Titanic 预测,以下是我的部分代码,留作以后改善:

  • 对于缺失值的处理:用了scikit-learn中的RandomForest来拟合
def set_ages(df):
    age_df = df[['Age', 'Fare', 'Parch', 'SibSp', 'Pclass']]
    known_age = age_df[age_df.Age.notnull()].as_matrix()
    unknown_age = age_df[age_df.Age.isnull()].as_matrix()
    y = known_age[:, 0]
    x = known_age[:, 1:]
    fr = RandomForestRegressor(random_state=0, n_estimators=2000, n_jobs=-1)
    fr.fit(x, y)
    predicted_ages = fr.predict(unknown_age[:, 1::])

    df.loc[(df.Age.isnull()), 'Age'] = predicted_ages

    return df, fr
def set_Cabin_type(df):
   df.loc[ (df.Cabin.notnull()), 'Cabin' ] = "Yes"
   df.loc[ (df.Cabin.isnull()), 'Cabin' ] = "No"
   return df
  • 类目型的特征因子化
dummies_Cabin = pd.get_dummies(data_train['Cabin'], prefix= 'Cabin')
dummies_Embarked = pd.get_dummies(data_train['Embarked'], prefix= 'Embarked')
dummies_Sex = pd.get_dummies(data_train['Sex'], prefix= 'Sex')
dummies_Pclass = pd.get_dummies(data_train['Pclass'], prefix= 'Pclass')
df = pd.concat([data_train, dummies_Cabin, dummies_Embarked, dummies_Sex, dummies_Pclass], axis=1)
df.drop(['Pclass', 'Name', 'Sex', 'Ticket', 'Cabin', 'Embarked'], axis=1, inplace=True)
``
* 数值处理--scaling
```python
import sklearn.preprocessing as preprocessing
scaler = preprocessing.StandardScaler()
age_scale_param = scaler.fit(df['Age'])
df['Age_scaled'] = scaler.fit_transform(df['Age'], age_scale_param)
fare_scale_param = scaler.fit(df['Fare'])
df['Fare_scaled'] = scaler.fit_transform(df['Fare'], fare_scale_param)

最后结果0.73,留待以后改善。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值