【Kaggle】Titanic
数据处理
列数有这些:
看看不同特征与结果的相关性
1.性别(Sex):0.74的女性活下来了
2.舱位(PClass):一等舱0.62,二等舱0.47,三等舱0.24
3.一起登船的家人数量(SibSp):0人0.35,1人0.53,2人0.46,3人0.25,4人0.16,5人0
4.老人孩子数量(Parch):0人0.34,1人0.55,2人0.5,3人0.6,4人0,5人0.2
5.登船位置(Embarked)
想法
明显,这几个变量都有关系,但并不是正相关,不适合线性回归模型
基本思路
1.用Sex、Pclass、SibSp做个模型,我觉得这是个概率模型
然后用随机森林试了一下,正确率0.77
逻辑回归正确率0.772
2.换了SVM,核心为rbf
性能提高了一些。正确率0.775
3.逻辑回归问题应该把类别变量做One-Hot映射,而非直接作为数值型表示,否则会被模型理解为连续性数值变量而非类别变量
性能又提高了一些,正确率0.777
反思
1.其他特征
实际上,船员名称也有价值,不同称谓的死亡概率是不同的。实际上,Mr和Officer前缀的死亡率高达0.8,而Dr的死亡率只有0.5
同时,也没有把FamilySize单独做出来一个新特征
2.缺失值处理
缺失值只用了平均值和中位数填充,实际上应该使用随机森林填充缺失值
总结
1.逻辑回归和线性回归问题用的模型不一样
2.做题的时候要多试几个模型,SVM、随机森林、LR都要试一试,用accuracy_score函数预测性能,把最好的交上去评测
3.类别变量要做One-Hot处理
4.做题要自己做一些特征,只用给的特征很难拿高分。难处理的特征反而要考虑一下。