目前预测准确度达到77.511%, 会持续优化并且更新。
一、特征工程:
1、先对缺失值进行填充,先找到缺失值的位置,数值型数据填充众数,字符数据或者是离散型数据则填充出现最多的数据。
2、标准化数值型数据, 根据标准化数据公式:
x standardized = x − mean ( x ) std ( x ) x_{\text{standardized}} = \frac{x - \text{mean}(x)}{\text{std}(x)} xstandardized=std(x)x−mean(x)
3、增加特征值:
(1) 票价等级:将票价大于均值的记为1,将票价小于等于均值的记为0,分别表示票价高者和票价低者。
(2) 是否存在亲属:将有亲属的标记位1,无亲属的标记为0。
(3) 同船亲属的数量,将同船的有关系的人数加起来,并且初始化这一列数据。
(4) 同船亲属的数量等级:求出同船亲属数量大于同船亲属数量的均值,记为1,小于等于同船亲属数量,记为0。
(5) 通过对字符型数据也就是"name"那一列的观察与处理,发现会有三种不同的称呼: “Mrs”, “Miss”, “Mr”,分别记为0, 1, -1。
(6) 年龄级别: 将大于平均年龄的记为1,小于等于平均年龄的记为0
(7) 还在思考,后续会进行补充…
特征工程代码实现:
from sklearn.preprocessing import StandardScaler
us_list = ['舱位等级', '性别', '年龄', '同船的兄弟姐妹/配偶数量', '同船的父母/孩子数量', '船票号码', '票价', '船舱号码', '登船港口']
#处理数据
def Work_Data(df):
List1 = []
for i in df.index:
# print(df.loc[i, '姓名'])
ustr = str(df.loc[i, '姓名'])
if ustr