题目
认识数据
导入训练集和训练集,使用SparkSQL探索数据集,发现数据的大致分布和规律
1 | import org.apache.spark.sql.SparkSession |

1
2// 舱位对存活率的影响
spark.sql("WITH t AS(SELECT count(*) as c,Survived,Pclass FROM global_temp.people group by Survived,Pclass order by Pclass) select Pclass,sum(case Survived when 1 then c else 0 end) survive_num, sum(c) total_num, round((sum(case Survived when 1 then c else 0 end)/sum(c)),4) survive_ratio from t group by Pclass").show()
1 | // 年龄对存活率的影响 |
1 | // 性别对存活率的影响 |

1 | // 兄弟姐妹/配偶对存活率的影响 |
1 | // 父母/孩子的数量对存活率的影响 |
1 | // 登船港口对存活率的影响 |
1 | // 年龄对存活率的影响 |
1 | // 姓名对存活率的影响 |
特征工程
根据之前对数据的探索,我们可以发现性别、年龄、家庭人数对存活率的影响,我们将其他特征做以下处理:
| 特征 | 描述 | 处理方式 |
|---|---|---|
| survival | 生存 | 当作label |
| pclass | 票类别 | onehot |
| Name | 姓名 | 第一次不使用用,第二次用中间名做onehot |
| sex | 性别 | onehot |
| Age | 年龄 | 用均值补全 |
| sibsp | 兄弟姐妹/配偶 | 直接使用 |
| parch | 父母/孩子的数量 | 直接使用 |
| ticket | 票号 | 不使用 |
| fare | 乘客票价 | 直接使用 |
| cabin | 客舱号码 | 不使用 |
| embarked | 登船港口 | onehot |
