kaggle - 泰坦尼克号

这是我参与11月更文挑战的第15天,活动详情查看:2021最后一次更文挑战

决策树算法 -

DecisionTreeClassifier(criterion='entropy')
criterion - 标准 entropy:基于信息熵 - 即ID3算法,实际结果与C4.5相差不大
gini:基尼系数 - 即CART算法

生存预测的关键流程

image.png

  1. 准备阶段

    1. 数据探索 - 分析数据质量
      1. info - 数据表的基本情况:行数、列数、每列的数据类型、数据完整度
      2. describe - 数据表的统计情况:总数、平均数、标准差、最小值、最大值
      3. describe(include = [ 'O' ] 字符串类型(非数字)的整体情况
      4. head - 前几行数据
      5. tail - 后几行数据
    2. 清洗数据
      1. 填充缺失值 - 均值/最高频值
        df.fillna(df['XX'].mean(), inplace = True)
        df.fillna(df['XX'].value_counts(), inplace = True)
    3. 特征选择 - 数据降维,方便后续分类运算
      1. 筛选掉无意义的列
      2. 筛选掉缺失值较多的列
      3. 将剩下的特征放入特征向量
      4. 数据转换 - 字符型列转换成数值列,方便后续操作 - DictVectorizer类来转换
        DictVectorizer:符号转化数字0/1进行表示
        1. 实例化一个转换器
          devc = DictVectorizer(sparse = False) - sparse=False意味着不使用稀疏矩阵,稀疏矩阵是指将非0值按照位置表示出来
          one-hot 是为了让类别更公平一些,相互之间没有优先级
        2. 调用fit_transform()方法
          to_dict(orient='record') - 转换成list形式
  2. 分类阶段

    1. 决策树模型
      1.导入决策树模型
      1. 生成决策树
      2. 拟合生成决策树
    2. 模型评估&预测
      1. 预测 - 决策树输出预测结果
      2. 评估 已知预测值和真实结果 - clf.score(特征, 结果标签) 不知道真实预测结果 - K折交叉验证 - cross_val_score
    3. 决策树可视化
  3. 绘图阶段 - GraphViz

    1. 先安装graphviz
    2. 导入graphviz包 - import graphviz
    3. sklearn中导入 export_graphviz
    4. 先用export_graphviz 到处决策树模型中要展示的数据
    5. 再用graphviz获取数据源
    6. 数据展示

K折交叉验证
拿出大部分样本进行训练,少量用于分类器的验证 - 做K次交叉验证,每次选取K分之一的数据进行验证,其余作为训练,轮流K次,取平均值

  • 将数据集平均分割成K个等份

  • 使用1份数据作为测试数据,其余为训练数据

  • 计算测试准确率

  • 使用不同的测试集,重复2、3步骤

猜你喜欢

转载自juejin.im/post/7031181834385883143