朴素贝叶斯模型预测 Titanic 遇难人员

kaggle 数据竞赛:Titanic: Machine Learning from Disaster

https://www.kaggle.com/c/titanic

背景分析

沉没的泰坦尼克号是历史上最臭名昭著的沉船。1912年4月15日,泰坦尼克号撞上冰山后沉没,2224名乘客和机组人员1502人死亡。一个海难导致生命损失的原因是没有足够的救生艇的乘客和船员。除过有一些因素的影响,在沉船事故中,一些群体的人更可能生存其他群体更容易生还,比如妇女,儿童和上层阶级等。

问题概述

要求完成对具备什么特征的人可能生存的分析,使用机器学习算法来预测乘客是否能在悲剧中幸存下来。

数据处理

spass 基于临近点的线性趋势补全缺失数据:

基于年龄,性别,票价的贝叶斯模型

  • 朴素贝叶斯分类器的公式:
    假设某个体有n项特征(Feature),分别为F1、F2、…、Fn。现有m个类别(Category),分别为C1、C2、…、Cm。贝叶斯分类器就是计算出概率最大的那个分类,也就是求下面这个算式的最大值:P(C|F1F2…Fn) = P(F1F2…Fn|C)P(C) / P(F1F2…Fn)
  • 朴素贝叶斯分类器:
    P(F1F2…Fn|C)P(C) = P(F1|C)P(F2|C) … P(Fn|C)P(C),上式等号右边的每一项,都可以从统计资料中得到,由此就可以计算出每个类别对应的概率,从而找出最大概率的那个类。
  • 应用到 Titanic 模型中:
    • 在训练集上根据统计资料计算 P(survived) = survived num / total num
    • 在训练集上分别计算:P(survived|sex),P(survived|age),P(survived|fare)
      • P(survived|sex)
        • sex : male , female
          P(survived|male) = survived male num / total male num
          P(survived|female) = survived female num / total female num
      • P(survived|age)
        • 年龄分为以下5个区间:child:0——9; juvenile:10——17 youth:18——34 middle-age:35—59 old-people:60以上
          P(survived|child) = survived child num / total child num
          P(survived|juvenile)…P(survived|old-people)以此类推
      • P(survived|fare)
        • 船票价格分为以下3个区间:三等舱 0–12;二等舱 13–29;一等舱 30以上
          P(survived|third_class) = survived third_class num / total third_class num
          P(survived|first_class),P(survived|second_class)以此类推
    • 在测试集上计算P(survived|sex,age,fare) = P(survived|sex)*P(survived|age)*P(survived|fare)
      • 1.把根据训练集计算出的P(survived|sex),P(survived|age),P(survived|fare)跟据对应区间分别赋予测试集的数据
        例如:只考虑性别特征:训练集上P(survived|male) = 0.188908145581 ; P(survived|female) = 0.742038216561, 那么训练集上性别为女的记录被赋予0.742038216561的概率值,男士则被赋予0.188908145581的概率值
      • 2.计算P(survived|sex,age,fare) = P(survived|sex)*P(survived|age)*P(survived|fare)
      • 3.计算测试集 survived num = total num[测试集数据长度]*P(survived)[训练集计算出的幸存概率]
      • 4.数据根据P(survived|sex,age,fare)排序,取概率值最大的前 survived num 个

你可能感兴趣的:(机器学习)