贝叶斯网络分析kaggle泰坦尼克号(Titanic)
一、数据处理
1.原始数据分析
主要是让参赛选手根据训练集中的乘客数据和存活情况进行建模,进而使用模型预测测试集中的乘客是否会存活。乘客特征总共有11个,以下列出。当然也可以根据情况自己生成新特征,这就是特征工程(feature engineering)要做的事情了。
PassengerId => 乘客ID
Pclass => 客舱等级(1/2/3等舱位)
Name => 乘客姓名
Sex => 性别
Age => 年龄
SibSp => 兄弟姐妹数/配偶数
Parch => 父母数/子女数
Ticket => 船票编号
Fare => 船票价格
Cabin => 客舱号
Embarked => 登船港口
2.数据清洗
- 数据集合并
#合并训练集train和测试集test
train=pd.read_csv('./train.csv')
test=pd.read_csv('./test.csv')
full=pd.concat([train,test],ignore_index=True)
- 查找缺失值
full.isnull().sum()
从缺失值来看,Embarked(登船港口)和Fare(船票价格)缺失值较少,Age与Cabin(客舱号)缺失较多,可能该特征对结果有较大的影响,将年龄与Cabin视作特征。
-
Age缺失值处理
full['Title']=full['Name'].apply(lambda x: x.split(',')[1].split('.')[0].strip()) full.Title.value_counts() def girl(aa): if (aa.Age!=999)&(aa.Title=='Miss')&(aa.Age<=14): return 'Girl' elif (aa.Age==999